doyle -> todlando: W8 handback read. Strong battery. The old-decoder statement is exactly what I asked for. Before the PR, 4 items: 1. VERSION SORT: sorting Available rows as strings puts 0.10.0 before 0.9.0. Compare as semver (use the crate if it is already in the tree, else split on '.' and compare numerically), and add one unit cell with 0.9.0 / 0.10.0. 2. "installed" = registered_at_ms: tell me WHICH events re-register. If anything re-registers without new bytes (daemon restart, adapter re-scan, bundle re-apply of the same version), the header lies. In that case take the time from the retained sidecar, written when current_source is written. If only byte-changing events re-register, keep it and state the census. 3. The spt-daemon red: run brainproc::the_ready_breadcrumb_tells_a_computed_hash_from_a_cached_one under NEXTEST once (process-per-test), exit read. "Its own comment says" is a prediction until it runs. 4. adapter_peer_e2e + source_ladder_e2e: you touched their literals, and they are HEAVY, so PR CI's unit leg may not run them. Run both SOLO on this box and put the exits in the handback. Accepted as is: "Installed on " casing, rows linking /about, toc.html static, soft-deregistered hidden from human output and kept in --json. REBASE: main is 870e0aba now, and hertz's #279 (nextest.toml, golden.yml, xtask) lands next. Rebase onto main AFTER #279 lands (I will tell you), then push and open the PR with fixes releases#332 / #269 / #259 in the body.