Repository navigation
Start work and administer Fleet machines from one Console - #1853
Merged
Merged
Conversation
Start options stay available to run and return repositories and startable Passes. The crontab and last-fired times stay on the read-scoped cronjobs API, including when a Cron jobs page forwards to another Fleet machine.
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
Start work, Run now, User config and Update can target a Fleet machine from one Console. The owner checks the signed-in person's effective scopes, executes the request and records its attribution. CLI
start,configandupdateaccept--machineand act as the token holder.Closes #1769
Test seams: CLI; authenticated Console/API; merged Inbox and Activity log; browser forms and confirmation at 1440×900 and 390×844.
Evidence
Execution evidence
PLAYWRIGHT_BROWSERS_PATH=/tmp/thirdshift-1769-browsers node --test console/tests/fleet-control.test.cjsfailed withUpdate errors fit the viewport: false !== true.After: the same command passed both Fleet tests (2 passed), including the hostname-collision Console/CLI regression.
cargo clippy --all-targets -- -D warnings: passed.thirdshift helpentry. After40c9fbd2,PATH=/tmp/thirdshift-1769-tools:$PATH cargo test --test command_surfacepassed: 20 passed, one ignored fixture entry point. The reference keeps its existing 68-line budget and all command forms.3 !== 5; after the fix, both Console and CLI writes change only the owning machine.9fc3c23e:PATH=/tmp/thirdshift-1769-tools:$PATH PLAYWRIGHT_BROWSERS_PATH=/tmp/thirdshift-1769-browsers NEXTEST_TEST_THREADS=8 RUST_TEST_THREADS=3 scripts/affected-tests origin/mainpassed: Rust 3,924 passed, 91 skipped; site 67 passed; Console 160 passed. The Rust command took 1,083.12 seconds with a warm build cache, including compilation (0.29 seconds); its test runner reported 1,081.918 seconds. The selector's separate locked build also passed.read.Visual evidence
Paired captures use the same two-Console fixture, viewport and flow. Before uses the unpatched base binary; After includes the reviewed controls and alert wrapping. Test data only; captures are hosted in a secret Gist.
Desktop and mobile Before / After pairs
Start work — 1440×900
Start work — 390×844
Run now — 1440×900
Run now — 390×844
User config — 1440×900
User config — 390×844
Update — 1440×900
Update — 390×844
Review
Main is pinned at
ed302922(origin/main; the localmainworktree is behind). Both independent axes inspected all 39 then-changed paths throughd0382523, including generated manual hunks. No generated output was excluded. Later validated changes were made after the skill's single follow-up; their final deltas remain unread by the independent reviewers:console/tests/fleet-control.test.cjs,docs/guide.md,site/docs/index.html,src/console/assets/console.css,src/console/fleet_control.rs,src/console/start_controls.rs,src/main.rs,tests/console/tokens.rs.Standards raised one P3 duplication finding, addressed by typed
Remote::identity(); Spec raised zero findings. Post-review lint-only cleanup insrc/console/fleet_control.rspassed Clippy; the existing compact-help test also led to a two-line reduction insrc/main.rshelp text, keeping its 68-line budget. The final hostname-collision regression also verifies that Console and CLI config writes stay on the owner when its Fleet name matches the caller's hostname. Reports and{"standards":1,"spec":0}are saved in the requested.thirdshift-review-ZBhvj9/directory.Unaddressed findings
Standards
None. The scope-decoding duplication finding was addressed in
d0382523.Spec
None.
Security
None.
Security review outcome
No unaddressed introduced findings.
Merge Danger
Door: two-way
No data migration; reverting restores local controls.
Blast Radius: Fleet
A
runoradmintoken can start work or administer its issuing machine. Owner-side token/person scope checks remain authoritative; the API cannot borrow the caller's Fleet credentials. Access settings remain shell-only.Built with codex codex-cli 0.166.0 · gpt-6.1-sol · xhigh