Repository navigation
Conversation
V3RON
added this pull request to stack #881
October 22, 2026 14:14
Contributor
Author
Review ledgerRound 1: e9c26f8 {
"findings": [
{
"id": "R1",
"role": "code",
"class": "relayed worker error not translated",
"outcome": "fixed",
"path": "src/gateway/dispatcher.ts",
"round": "1",
"fix": "1948466190bb01a0368984359de147cf44565170"
},
{
"id": "R2",
"role": "code",
"class": "false user-facing message",
"outcome": "fixed",
"path": "src/cli/commands/worker.ts",
"round": "1",
"fix": "1948466190bb01a0368984359de147cf44565170"
},
{
"id": "R3",
"role": "code",
"class": "testing 1 title promises removed assertion",
"outcome": "fixed",
"path": "src/http/app.test.ts",
"round": "1",
"fix": "1948466190bb01a0368984359de147cf44565170"
},
{
"id": "R4",
"role": "claims",
"class": "ADR section cite wrong",
"outcome": "fixed",
"path": "src/daemon/main.ts",
"round": "1",
"fix": "1948466190bb01a0368984359de147cf44565170"
},
{
"id": "R5",
"role": "spec",
"class": "assumption contradicts spec failure mode",
"outcome": "duplicate",
"canonicalId": "R1",
"path": "src/gateway/dispatcher.ts",
"round": "1"
},
{
"id": "R6",
"role": "code",
"class": "test passes without refusal translation",
"outcome": "fixed",
"path": "src/gateway/dispatcher.test.ts",
"round": "2",
"fix": "b59cebaf"
},
{
"id": "R7",
"role": "code",
"class": "wording parity omits worker version",
"outcome": "nonblocking",
"path": "src/cli/commands/worker.ts",
"round": "2"
}
]
}Written by an agent. |
Contributor
Author
Review notesThese do not block, and nobody has verified them. Each is one reviewer's claim.
Written by an agent. |
V3RON
marked this pull request as ready for review
October 22, 2026 15:47
10 of 11 tasks
V3RON
added a commit
that referenced
this pull request
Oct 22, 2026
Closes #839 ### Status Implement: done Review: passed, round 2 Hardware: n/a Gate: the stack gate (`merge-pr.sh 896`) Next: final stack sync, then the gate ### Done when - [x] `pnpm exec vitest run --project unit` on the changed `ui/src` test files passes with the lines above. - [x] `pnpm test:console --project=chromium e2e/console/update.spec.ts` passes. - [ ] CI's `pnpm check` is green, the dependency rules included. - [x] `console.mdx` documents the notice, the Update and Update now items, the `updating` state, the failure banner, the Inbox item and the footer notice. ### Completion conditions (#825) - [x] `simlock update` with no leases installs the latest and `simlock status` prints it: `e2e/update/update.e2e.test.ts` (real npm via verdaccio, #885). - [x] With a lease held the update waits, a new lease gets `DAEMON_UPDATING`, releasing it lets the update go on: `src/daemon/server.test.ts` `daemon.update` table (#885). - [x] A failed install leaves the old daemon serving and `simlock status` prints `Last update failed (installing)`: server.test.ts failed-line case and `src/cli/index.test.ts` (#885). - [x] A new version that does not start is rolled back and the failure shows with stage `restarting`: `src/updater/index.test.ts` (#878) and the server.test.ts result-file case (#885). - [x] `simlock worker update` updates a connected and an incompatible worker, routes around it, and keeps a drain: `src/gateway/service.test.ts`, `src/daemon/gateway-fleet.e2e.test.ts` (#888). - [x] `simlock status` and `simlock worker list` show the latest after the check, and nothing with `update.check: false`: `src/daemon/main.test.ts` version-check cases, CLI tables (#887, #888). - [x] The console shows `<latest> available`, Update…, `updating` with its stage, the failure banner and Inbox item, and the sidebar notice: `ui/src` model and screen tests and `e2e/console/update.spec.ts` (this PR). ## Assumptions - Assumption: Update now answers `upToDate` with `<name> already runs <version>` (the spec lists the toast for the answer; the force action had a fixed success title). - Assumption: the footer notice is a `UpdateNotice` in `shell.tsx` and `watchMode` takes a `clock`, so its 10-minute timer is testable with fake time. - Assumption: the row's stage line shows only while State reads `updating` — a red finding (disconnected, failed) hides it, as it hides the amber word. - Assumption: Update… and Update now sit after Drain/Undrain in the menu (the picked prototype's order), so the page's primary button stays Drain. - Assumption: the Inbox fact When reads `<duration> ago`, as the disconnected item's Last seen does. - Assumption: `isNewerVersion` is imported by `version-order.ts`'s own path (the spec's value import); the `past-index` rule allows that one file, because the index carries zod's `eval`, which breaks the console's CSP (maintainer-authorized 2026-10-22, #825 Decisions). ## Review Spec review: 1 blocking, 1 fixed, 0 notes. Code review: 1 blocking, 1 fixed, 1 notes. Claims review: 1 blocking, 1 fixed, 0 notes. Rounds: 2. Tokens: 45.0M. Runs: 11. Cost USD: 6.9344. Agent seconds: 3898. Assessment: complete *Written by an agent.*
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.
Closes #838
Status
Implement: done Review: passed, fix-check Hardware: n/a Gate: waiting for the stack
Next: joins the #825 stack
Done when
pnpm test:changedpasses (209 files, 6929 tests, at b499f6c)reference/cli.mdxandgateway/managing-workers.mdxdocumentsimlock worker updateand the new list fields;reference/errors.mdxthe 90 s message; the route is declared, so the OpenAPI reference lists itAssumptions
Assumption: the worker view fields
update,lastUpdateFailureandlatestVersionare.nullable().optional(), so a freshly connected worker's view has none until its first status read.Assumption: an updating worker counts as a taker in
routing/serviceability.ts, so a request only that worker can serve waits instead of endingNO_CAPACITY.Assumption:
simlock worker updatecallsupdateWorkerfirst and readsworker.listafter, so a stalelastUpdateFailurefrom an earlier run is already cleared by the answer; Ctrl-C ends the command by the process default.Assumption: the gateway's update coordinator reaches
DaemonServerthrough an optionalupdateon the gateway arm of its options, so the existing result-file read and announce serve both roles.startDaemongets two test-only options,updaterandprotocolVersion, for the gateway-update and incompatible-worker tests.Review
Spec review: 1 blocking, 1 fixed, 0 notes. Code review: 4 blocking, 4 fixed, 1 notes. Claims review: 1 blocking, 1 fixed, 0 notes.
Rounds: 2. Tokens: 39.6M.
Runs: 14. Cost USD: 12.8636. Agent seconds: 7541.
Assessment: complete
Written by an agent.