[verified] Preserve Details live state during compilation #31
Loading…
Reference in a new issue
No description provided.
Delete branch "astaranix/details-compilation-telemetry"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fix
Verification
nh os build --no-nom --log-format internal-jsonoutput from a C compilation with 750 builder-output lines through the incremental parser, bounded tail, and visible/semantic projection. Phase, package, and counts survived eviction of the counter-bearing log records.-D warningsremains non-green on those pre-existing diagnostics.Known check limitations
iced::advanced::clipboard::Nullin details.rs. The identical assertion and matching lines were reproduced on unchanged main and the candidate; this audit is not reported as green.Scope
Updater commands, privileges, dependencies, and the legacy C++ tray are unchanged. No system activation or installed-tray restart was performed. Progress remains indeterminate when a replay never observed the Nix aggregate start; missing totals are not inferred.
## Fix - Retain the last known phase, package item, and structured build counts per service invocation independently of the bounded output scrollback. - Treat compiler output and counter-only updates as partial observations: do not replace known phase with Unknown or erase the package name. Genuine phase transitions clear the previous phase's item. - Keep structured builder-log payloads as sanitized output rather than interpreting them as updater lifecycle markers. - Require valid shared invocation identity for live state; missing/invalid IDs remain output-only. Keep run retention bounded, include invocation identity in deduplication, and prevent older replays from regressing newer state. ## Verification - Red/green regressions cover phase loss, package-name loss, progress eviction, builder text impersonating phase markers, cross-invocation deduplication, and missing/invalid invocation isolation. - Final default-feature suite: 195 passed. Final no-default-feature suite: 80 passed. Both matrices also passed in the actual Nix release/sandbox builds. - Replayed real unprivileged `nh os build --no-nom --log-format internal-json` output from a C compilation with 750 builder-output lines through the incremental parser, bounded tail, and visible/semantic projection. Phase, package, and counts survived eviction of the counter-bearing log records. - Built the actual Rust tray, no-default package tests, lock check, Wayland/X11 desktop smoke, and X11 geometry smoke on aarch64-linux using nixpkgs eaad089433ca2bb662274377d33df3d0e51ef28b, without writing a flake lock. - Formatting and staged whitespace checks passed. Final Clippy diagnostics match all 24 distinct baseline diagnostics by code, message, source file, and source text; strict `-D warnings` remains non-green on those pre-existing diagnostics. ## Known check limitations - The package-audit source scan has a baseline false positive on test-only `iced::advanced:📋:Null` in details.rs. The identical assertion and matching lines were reproduced on unchanged main and the candidate; this audit is not reported as green. - The initial candidate's desktop smoke passed after an unchanged-artifact retry following a worker-update failure. The final geometry smoke passed after one unchanged-artifact retry following a 500-record fixture shutdown timeout. These are documented retries, not uninterrupted first-pass successes. ## Scope Updater commands, privileges, dependencies, and the legacy C++ tray are unchanged. No system activation or installed-tray restart was performed. Progress remains indeterminate when a replay never observed the Nix aggregate start; missing totals are not inferred.