test(e2e): cover release channels end to end - #1023
Draft
rl-block wants to merge 1 commit into
Draft
Conversation
This was referenced Sep 4, 2026
🔐 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 | |
rl-block
force-pushed
the
rollout/03c-release-channels-e2e
branch
from
September 4, 2026 09:39
c267228 to
e7bc2ab
Compare
This was referenced Sep 4, 2026
rl-block
force-pushed
the
rollout/03c-release-channels-e2e
branch
from
September 4, 2026 10:10
e7bc2ab to
c1f0ef4
Compare
rl-block
force-pushed
the
rollout/03c-release-channels-e2e
branch
2 times, most recently
from
September 4, 2026 10:36
145d118 to
df2a72d
Compare
rl-block
force-pushed
the
rollout/03c-release-channels-e2e
branch
from
September 4, 2026 12:06
df2a72d to
9486cab
Compare
rl-block
force-pushed
the
rollout/03c-release-channels-e2e
branch
from
September 8, 2026 04:01
9486cab to
9fa900c
Compare
rl-block
force-pushed
the
rollout/03c-release-channels-e2e
branch
from
September 8, 2026 20:44
53ad816 to
4a00be8
Compare
rl-block
force-pushed
the
rollout/03c-release-channels-e2e
branch
from
September 8, 2026 21:11
4a00be8 to
0ec7efd
Compare
rl-block
force-pushed
the
rollout/03c-release-channels-e2e
branch
2 times, most recently
from
September 8, 2026 22:15
b66b26a to
767d1a5
Compare
rl-block
force-pushed
the
rollout/03c-release-channels-e2e
branch
from
September 9, 2026 14:28
767d1a5 to
7ba6c60
Compare
rl-block
force-pushed
the
rollout/03c-release-channels-e2e
branch
from
September 9, 2026 15:06
7ba6c60 to
214baad
Compare
rl-block
force-pushed
the
rollout/03c-release-channels-e2e
branch
2 times, most recently
from
September 9, 2026 17:37
7584dff to
e32aa3e
Compare
rl-block
force-pushed
the
rollout/03c-release-channels-e2e
branch
2 times, most recently
from
September 9, 2026 18:30
3f4eda5 to
018ae17
Compare
rl-block
force-pushed
the
rollout/03c-release-channels-e2e
branch
from
September 9, 2026 18:49
018ae17 to
7b27390
Compare
rl-block
force-pushed
the
rollout/03c-release-channels-e2e
branch
from
September 9, 2026 19:10
7b27390 to
89be4cf
Compare
rl-block
force-pushed
the
rollout/03c-release-channels-e2e
branch
from
September 9, 2026 23:41
89be4cf to
94b3179
Compare
rl-block
force-pushed
the
rollout/03c-release-channels-e2e
branch
from
September 11, 2026 16:17
94b3179 to
00e29c1
Compare
Channel creation, firmware enforcement and drift correction as miners move in and out of scope, rollback, pilot and batched updates with review gates and auto-continue, cancel remaining, and the header pill deep-link.
rl-block
force-pushed
the
rollout/03c-release-channels-e2e
branch
from
September 11, 2026 18:05
00e29c1 to
7a93daf
Compare
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
Adds five browser scenarios that exercise release-channel firmware updates through the complete stack against fake Proto rigs. The tests cover assignment and scope conflicts, rollback, pilot review, automatic batches, and canceling remaining work, including the global header indicator and its deep link.
Reviewable diff: +498/-1 across 1 file (excludes generated, test, and story files).
The counted file is the shared page object; the scenario spec is excluded by the repository's counting rules.
Stack and scope. Diff is relative to #1022. The tests use the channel/progress/header UI from #1020–#1022, API/runtime wiring from #1018, and the upstream engine, storage and artifact dispatch. The merged contract is #1014. Full chain:
#1014 contract → #1015 storage/dispatch → #1016 channel operations → #1017 engine → #1018 API/runtime → #1019 client data → #1020 channel UI → #1021 active updates → #1022 header/activity → #1023 E2E.
This is the top test slice. Real hardware, delegated control and the deferred rollout events feed are outside its coverage.
How it works
1. Exercise operator workflows
2. Observe completion through the UI
SettingsFirmwarePagecentralizes channel forms, miner selection, behavior controls, assignment, progress details, history and header interactions. Completion waits for miners to report the target version, the updating indicator to clear, and a completed history entry. This accommodates the engine's enforcement interval and persisted verification.3. Keep runs repeatable
Each run uses unique channel names, firmware versions and payload bytes, so firmware retained by fake rigs cannot turn the next assignment into a no-op. Setup clears uploaded firmware. Cleanup opens a fresh browser context, removes the run's channels and clears firmware uploads even if the original page is left inside a modal. The suite requires a disposable fake-rig environment and skips
E2E_TARGET=real.Diagrams
flowchart LR A["Playwright scenarios"] --> B["SettingsFirmwarePage"] B --> C["Channel UI and header"] C --> D["Rollout API and engine"] D --> E["Verified firmware dispatch"] E --> F["Fake rigs update and report"] F --> D D --> G["Progress and history"] G --> BAreas of the code involved
client/e2eTests/protoFleet/spec/firmwareRollout.spec.tsclient/e2eTests/protoFleet/pages/settingsFirmware.tsKey technical decisions & trade-offs
Testing & validation
The previously recorded Playwright
--listcheck verified scenario discovery only. Browser execution on the current stack has not been verified, and no tests were rerun for this description-only update. Upstream server/unit checks do not establish an E2E pass.Run this spec with
just _e2e protoFleet --project=desktop spec/firmwareRollout.spec.ts;just test-e2e-fleetruns the full desktop suite. Coverage is limited to the five fake-rig workflows above, rather than every server failure or concurrency race.