feat(rollout): active firmware updates, history and header pill - #1011
Closed
rl-block wants to merge 1 commit into
Closed
feat(rollout): active firmware updates, history and header pill#1011rl-block wants to merge 1 commit into
rl-block wants to merge 1 commit into
Conversation
…r pill Completes the release channel operator experience from the rollout UX design (#881). Above the Settings > Firmware tabs, ActiveUpdatesMonitor stacks a banner per ongoing update and opens the full-screen detail: status lockup, plan stats, progress against plan, the telemetry evidence strip, and the lifecycle actions Continue / Pause / Resume / Retry failed / Cancel remaining / Roll back (the last two confirmed). A miners drill-down shows each targeted miner's phase and telemetry against baseline, with a Failed filter. The manage view gains an update history with View and Roll back per entry, and the app header a pill that leads with whatever needs attention and deep-links to the release channels view. Activity events get display labels on both sides: the client label maps and migration 000147, which layers the rollout labels over the 000142 function so the down migration restores it byte-for-byte. The E2E spec drives the whole flow against the fake rigs: channel creation with a miner scope, exclusive membership (overlap rejected, freed by editing the first channel), a pilot gate with evidence, pause/resume, continue, batches with auto-continue, cancel remaining, and roll back from history.
🔐 Codex Security Review
Review SummaryOverall Risk: HIGH Findings[HIGH] Automated review incomplete
NotesHuman review is required because the bounded automated review was incomplete. Generated by Codex Security Review | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Third of three stacked PRs porting the firmware rollout prototype to production (server API in #1008, channels UI in #1010; design note
docs/plans/2026-09-03-firmware-release-channels-design.md). This one lands the surfaces for updates in flight and their history.000147(layers over the000142function; down restores it byte-for-byte; round-trip test included).firmwareRollout.spec.ts): create channel with a miner scope; enforce per model; exclusive membership (overlap rejected, then freed by editing the first channel); header pill deep-link; pilot gate with evidence, pause/resume, continue; batches with auto-continue and no manual review; cancel remaining keeps updated miners and is not restarted; roll back from history (incl. roll-forward offer).Test plan
vitest: full client suite (405 files / 4,329 tests) incl. new banner-summary and status testsgo test ./migrations/—000147down/up round-trip;dbtesttemplate applies through 147tsc --noEmit, eslint (--max-warnings 0) on all touched filesfirmwareRollout.spec.tsscenarios pass against the fake proto rigs (desktop project, ~14 min)Proto Fleet/Firmware/Release Channels/{Update Detail, Active Updates, Header Pill}Follow-ups (deferred by design)
Scheduled start; pacing on the Fleet bulk "Update firmware" modal; caching the
ListRolloutsread path at fleet scale.