Repository navigation
Conversation
The controller ends an older version's deployment work with REVISION_SUPERSEDED (or REPOSITORY_REVISION_SUPERSEDED) when a newer version took over first. The API records that as failed, so the Agent detail page showed a red failed stage, a 'Failed' latest deployment and a 'live serving is unverified' banner while the Agent served the newer version. Render it as a neutral 'Superseded' outcome in the summary, stage list, deployment records, diagnostics hint and Agents list, without naming the newer version. Real failures render as before.
Pages/Agent detail gains 'Deployment superseded by a newer version': v7 ended with REVISION_SUPERSEDED while an unreadable v8 is selected. The console guide says a superseded result is neutral, not a failure.
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
Plainer copy, the guide names both superseded codes, the test scopes its negative check to the outcome panels and covers the diagnostics hint.
|
Codex review: needs maintainer review before merge. What this changesThis PR displays superseded deployments as neutral outcomes across the console’s Agent list, detail page, deployment records, and diagnostics. Example: Readable v7 has REVISION_SUPERSEDED while selected v8 is unreadable.
Review scores
ProductKind: Bug fix · Worth it: Yes · Fix scope: Complete Merge readiness✅ Ready for maintainer review Keep this PR open: current main still presents superseded deployments as failures, and this focused correction preserves genuine failure handling without changing the API or IAM. Priority: P2 Before mergeNone. FindingsNone. Tests
Agent review detailsHow this fits togetherThe controller records deployment results; authorized API reads supply those records to console modules that render deployment history separately from live runtime health. flowchart LR
Worker[Controller worker] --> Record[Deployment record]
Record --> API[Authorized deployment API]
API --> Outcome[Console outcome mapping]
Outcome --> List[Agent list]
Outcome --> Detail[Agent detail and diagnostics]
Technical reviewBest possible solution: Keep supersession neutral in the console while preserving raw deployment records, genuine failure guidance, and existing access boundaries. Do we have a high-confidence way to reproduce the issue? Current-main source maps both superseded codes to failed presentation, and inspected before screenshots show that result; no target code or tests were run during this review. Is this the best way to solve the issue? The narrow console mapping fits the reported problem and preserves the API contract, real failure rendering, and the distinction between recorded deployment outcomes and live health. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 3a65e931a305. Provenance checked
TestingProof path: in-process harness. SecurityNone. EvidenceWhat I checked:
LabelsLabel changes:
Label justifications:
Rating scale6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior. WorkflowClawSweeper edits this one comment on every review. Comment Reviewed October 14, 2026, 12:46 PM ET / 16:46 UTC. |
Problem
The controller ends an older version's deployment work with
REVISION_SUPERSEDED(orREPOSITORY_REVISION_SUPERSEDED) when a newer version took over before it became current. The deployment status API reports that asfailed, and the console had no case for it. A member who can read only older versions of a busy Agent saw "Latest visible deployment v2 · Failed", a red "Deployment work failed; check the recorded error and current version" stage, a warning banner "v2 deployment is recorded as failed … Live serving is unverified", and the code in red as an error, while the Agent was serving a newer version fine (dogfood finding 1353).Change
console/agents/list.mjs:supersededDeployment(record)(statusfailedwith one of the two superseded codes) anddeploymentOutcome(record)(supersededfor those, the API status otherwise). The Agents list showsvN · supersededwith "Superseded by a newer version." instead of the stored error.console/agents/detail.mjs:vN · Superseded, note "Superseded by a newer version." No "Probably down" and no status-line banner from a superseded result alone. A hidden requested version still gets its own line.Recorded status/outcome: superseded, neutral grey "Deployment work" and "Completion recorded" stages, and a muted note naming the code ("This version did not fail; no action is needed.") instead of a red error and Logs link.console.css: a neutral marker for the superseded stage.deploymentSuperseded): v7 superseded while an unreadable v8 is selected. The console guide says a superseded result is neutral.Verification
Agent detail and list show a superseded deployment as neutral, not failed(tests/browser/console-agent-state.test.mjs). It covers the Agents list row, the summary, the stages, the activity and record outcomes, no banner, no failure text and nov2for the unreadable newer version. It then turns the same record intoRUNTIME_AUTHENTICATION_FAILEDand checks that it still renders as failed with the banner. It fails on main (the list row times out onv1 · superseded) and passes on this branch, 20/20 at 2 CPUs (taskset -c 0,1).console-agent-state,console-agent-detail,console-agent-detail-2,console-agents,console-repository-dedicatedandconsole.test: 166/166 pass.tsc --build, eslint and prettier on the touched files: clean.console.cssandfixtures.mjsmatch too (1 each). No new conflicts.deploymentSupersededstory frame served fromprepare-assets.mjsoutput, headless Chromium, 1300×1000; not live backend proof):Risks
Low. Display only. Only a
failedrecord with one of the two superseded codes changes. If the controller ever used those codes for a real failure, the console would now understate it, but the worker sets them only when a newer or equal active version (or a successor) has taken over.