diff --git a/docs/plans/QUEUE.md b/docs/plans/QUEUE.md index d10596ce4..b1c1abb14 100644 --- a/docs/plans/QUEUE.md +++ b/docs/plans/QUEUE.md @@ -33,7 +33,7 @@ Gaps found while working go to `docs/plans/DEFERRED.md`, not here. -Generated from `docs/plans/queue.json` revision 2539 by `queue render`. Do not edit between the markers; change the queue with `scripts/mosaic queue`. +Generated from `docs/plans/queue.json` revision 2603 by `queue render`. Do not edit between the markers; change the queue with `scripts/mosaic queue`. | # | Piece | Owner | Issues | State | After | Gate | Brief | Note | |---|---|---|---|---|---|---|---|---| @@ -230,23 +230,23 @@ Generated from `docs/plans/queue.json` revision 2539 by `queue render`. Do not e | 191 | one kill switch for the bus, every run, Discord and new launches, from the CLI and the Console (MVP T1.4, mos-0974, Vikunja #414) | rocko; reviewers dewey | #1689 | in-progress | — | Dewey approves DESIGN.md then the manifest; cli, bus, discord and webui suites and every scripts/test-*.sh green on Sage's gate; the mutants killed (sage) | `docs/plans/2026-10-20_kill-switch.md` § Brief: one kill switch for the bus, every run, Discord and new launches | — | | 192 | Q175 phase 1: the Console verifies SSO itself (--sso), OIDC RP with oauth4webapi 3.8.8, no live change (MVP T1.2, #412) | launchpad; reviewers webby | #1690 | done | — | Webby approves the manifest; webui and cli suites, scripts/test-config.sh and every scripts/test-*.sh green on Sage's gate; design section 9 mutants killed (sage) | `docs/plans/2026-10-20_sso-phase1.md` § Brief: Q175 phase 1, the Console verifies SSO itself (--sso) | Landed 4429a104f on refactor (squash of launchpad/row192 53bb59462..37582e820, round 2 manifest 6f8cee14...7787). patch-id 4a4869026 matches the reviewed diff on all 18 paths. Gate on 088087ac9: package suites 2758/0, scripts 429/0, mutants 22 of 23 killed (#23 equivalent, sage-1407). npm ci in canonical, oauth4webapi 3.8.8. Live re-pin is a window with Mos (mos-1099 item 3). | | 193 | many humans per business, human roles, private and shared threads, one access.json store (MVP T1.3, Vikunja #414/#415) | morgana; reviewers duckworth | #1691 | in-progress | — | Duckworth approves DESIGN.md then the manifest; bus, business, cli and webui suites and every scripts/test-*.sh green on Sage's gate; the mutants killed (sage) | `docs/plans/2026-10-20_human-users.md` § Brief: many humans per business, human roles, private and shared threads | — | -| 194 | agent lifecycle from the Console and the CLI (create, launch, terminate, regenerate, delete) with a per-agent hire/fire veto (MVP T1.5, Vikunja #414/#415) | honker; reviewers webby | #1692 | in-progress | — | Webby approves DESIGN.md then the manifest; bus, cli, business and webui suites and every scripts/test-*.sh green on Sage's gate; the mutants killed (sage) | `docs/plans/2026-10-20_agent-lifecycle.md` § Brief: agent lifecycle from the Console and the CLI, with a per-agent hire/fire veto | — | +| 194 | agent lifecycle from the Console and the CLI (create, launch, terminate, regenerate, delete) with a per-agent hire/fire veto (MVP T1.5, Vikunja #414/#415) | honker; reviewers webby | #1692 | in-progress | — | Webby approves DESIGN.md then the manifest; bus, cli, business and webui suites and every scripts/test-*.sh green on Sage's gate; the mutants killed (sage) | `docs/plans/2026-10-20_agent-lifecycle.md` § Brief: agent lifecycle from the Console and the CLI, with a per-agent hire/fire veto | sage-1610 (honker-0049): a human add takes tracker {bot, botId}, required for a vikunja definition, refused otherwise, checked by checkBot and bot uniqueness; CLI and API only. Delete accepts a tracker bot when all credentials are store refs, and its result names the bot for removal by hand in Vikunja. No Vikunja account is created (Q188 untouched). Mutants: drop the requirement, refuse the bot on delete, skip checkBot on add. | | 195 | row 195: the Case 1 install on 10.1.1.53 as mosaic under /srv/mosaic, reusing C2-13's scripts by input under row 190's canon (Q181, Q182/Q183, Q185; ops-01 root steps under #423 step 1) | darkwing; reviewers duckworth | #1693 | briefed | 190 done, 233 done | Duckworth approves DESIGN.md then the manifest; cli suite and every scripts/test-*.sh green on Sage's gate; the mutants killed (sage) | `docs/plans/2026-10-20_hub-own-uid.md` § Brief: the Case 1 install on 10.1.1.53 (row 195) | sage-1439: rewritten to Case 1 on .53 (f24f2cd40). Chains on C2-13's candidate too once C2-13 is queued. Darkwing starts DESIGN.md after row 190's mutants. | | 196 | the human boundary across uids and humans: Console, tester listener, broker.sock and the path-bound human proof (P19 333, before federation R3, mos-0989) | gander; reviewers duckworth | #1694 | in-progress | — | Duckworth approves DESIGN.md then the manifest; bus, webui and cli suites and every scripts/test-*.sh green on Sage's gate; the mutants killed (sage) | `docs/plans/2026-10-20_human-boundary.md` § Brief: the human boundary across uids and humans (P19 333) | — | | 197 | a second gate lane: two full gates at once on dragon-lin, design first (mos-0977 item 6) | herb; reviewers webby | #1695 | in-review, round 1, request posted | — | Webby approves DESIGN.md then the manifest; cli suite and every scripts/test-*.sh green on Sage's gate, singly and in the two-lane proof (sage) | `docs/plans/2026-10-20_second-gate-lane.md` § Brief: a second gate lane, two full gates at once on dragon-lin | Order with row 198 (Sage, mos-1040 N1): 197 lands first. After B1 the shared tests are packages/webui/tests/serve.test.mjs:100 and preview.test.mjs:208. Row 198 rebases onto 197's landing before its manifest review. | | 198 | retire the control board writer on 7331 (unauthenticated loopback writer, Q175; mos-1008) | bushroot; reviewers webby | #1696 | in-progress | 192 done, 197 done | Webby approves INVENTORY.md then the manifest; control-board, webui and cli suites and every scripts/test-*.sh green on Sage's gate; the mutants killed (sage) | `docs/plans/2026-10-20_retire-control-board.md` § Brief: retire the control board writer on 7331 | Order with row 197 (Sage, mos-1040 N1): 197 lands first. Row 198 rebases onto 197's landing before its manifest review; shared tests are packages/webui/tests/serve.test.mjs:100 and preview.test.mjs:208. | -| 199 | MVP T1 item 6: a credential store per agent, own git identity, pushes to a remote (G11, G13; mos-0974) | megavolt; reviewers duckworth | #1697 | in-review, round 1, request posted | — | Duckworth approves DESIGN.md; Mos rules on the authority model; Duckworth approves the manifest; bus, business, cli and tasks suites and every scripts/test-*.sh green on Sage's gate; the mutants killed (sage) | `docs/plans/2026-10-20_agent-credentials.md` § Brief: a credential store per agent, own git identity, pushes to a remote | — | -| 200 | stack-release.sh activate --sso for the Q175 phase 2 window (row 192 F3; chained on 192) | launchpad; reviewers webby | #1698 | in-review, round 3, request posted | — | Webby approves the manifest; cli suite and every scripts/test-*.sh green on Sage's gate; the mutants killed (sage) | `docs/plans/2026-10-20_stack-release-sso.md` § Brief: stack-release.sh activates a Console with --sso (Q175 phase 2 prerequisite) | — | +| 199 | MVP T1 item 6: a credential store per agent, own git identity, pushes to a remote (G11, G13; mos-0974) | megavolt; reviewers duckworth | #1697 | done | — | Duckworth approves DESIGN.md; Mos rules on the authority model; Duckworth approves the manifest; bus, business, cli and tasks suites and every scripts/test-*.sh green on Sage's gate; the mutants killed (sage) | `docs/plans/2026-10-20_agent-credentials.md` § Brief: a credential store per agent, own git identity, pushes to a remote | Landed cb5fdb064 on refactor (base 76134dfde), pushed. Patch-id 828fa21a matches git diff 00d4cc1f6..86963d281 on the 37 manifest paths; docs/TOOLS.md 3-way with row 200, hunk unchanged. Manifest 35f900fd, Duckworth approve r1 29779. Gate on 9e1085816+patch: packages 2735/0, scripts 429/0; landed blobs equal the gate tree. | +| 200 | stack-release.sh activate --sso for the Q175 phase 2 window (row 192 F3; chained on 192) | launchpad; reviewers webby | #1698 | done | — | Webby approves the manifest; cli suite and every scripts/test-*.sh green on Sage's gate; the mutants killed (sage) | `docs/plans/2026-10-20_stack-release-sso.md` § Brief: stack-release.sh activates a Console with --sso (Q175 phase 2 prerequisite) | Landed 9e1085816 on refactor (base 722136772), pushed. Patch-id 7ebfa6a5 matches git diff 00d4cc1f6..9df40878f on the 3 manifest paths. Manifest b3ead55c, Webby approve r3 29772. Gate on 9df40878f: packages 2675/0, scripts 429/0. Mutants 13/14, M12 ruled equivalent (sage-1446). | | 201 | FED R1: access.json loader and validator, and covers (#414) | gizmoduck; reviewers duckworth | #1699 | done | — | Duckworth approves the manifest; business suite and every scripts/test-*.sh green on Sage's gate; the mutants killed (sage) | `docs/plans/2026-10-20_federation-r1-r2-r5.md` § Brief: FED R1, the access.json loader and validator | Landed afad4993f on refactor (squash of gizmoduck ae3c36f24..44e36fc4c, manifest 225597146daf...0c520). patch-id ba604ad5e matches the reviewed diff on all 3 paths. Gate on 44e36fc4c in the slot (gizmoduck-0060): business 173/0, 10 scripts 422/0, mutants 44/44. Duckworth approve 29581. | | 202 | FED R5: mosaic access list, grant and revoke (#414) | quackerjack; reviewers duckworth | #1700 | in-review, round 1, request posted | — | Duckworth approves the manifest; cli suite and every scripts/test-*.sh green on Sage's gate; the mutants killed (sage) | `docs/plans/2026-10-20_federation-r1-r2-r5.md` § Brief: FED R5, mosaic access list, grant and revoke | Chained on row 201's candidate (Q177), not its done: claimable now, lands after 201 and rebases onto its landing (Sage) | | 203 | FED R2: the federation key in the system config (#414) | quackerjack; reviewers webby | #1701 | briefed | — | Webby approves the manifest; cli suite and every scripts/test-*.sh green on Sage's gate; the mutants killed (sage) | `docs/plans/2026-10-20_federation-r1-r2-r5.md` § Brief: FED R2, the federation key in the system config | Chained on row 192's candidate (Q177): starts on 192's candidate, lands after 192 (Sage) | | 204 | 193a: access level check widened to viewer (#1691) | morgana; reviewers duckworth | #1702 | done | — | Duckworth approves the manifest; business suite and every scripts/test-*.sh green on Sage's gate; the mutants killed (sage) | `docs/plans/2026-10-20_human-users-build.md` § Brief: 193a, the access level check widened to viewer | Landed d0bbc5c1c on refactor (base c9f374284). Patch-id 92c18aea matches git diff 44e36fc4c..f869fd062 on the 3 manifest paths. Manifest d38de8c9, Duckworth approve 29595. Gate 2789/0 on 4385b9ec1, mutants 7/7. Unpushed. | | 205 | 193b1: viewer verbs, board refusals and the message filter (#1691; also after FED R3 and R4 when filed) | morgana; reviewers duckworth | #1703 | queued | 196 done | Duckworth approves the manifest; bus suite and every scripts/test-*.sh green on Sage's gate; the mutants killed (sage) | `docs/plans/2026-10-20_human-users-build.md` § Brief: 193b1, viewer verbs, board refusals and the message filter | — | -| 206 | 193b2: thread shares, schema 3j-3k after machine grant row a (#1691; live needs a --migrate window with Jason) | morgana; reviewers duckworth | #1704 | queued | 205 done, 234 done | Duckworth approves the manifest; bus suite, cli suite and every scripts/test-*.sh green on Sage's gate; the mutants killed (sage) | `docs/plans/2026-10-20_human-users-build.md` § Brief: 193b2, thread shares (schema 3k) | — | +| 206 | 193b2: thread shares, schema 3k-3l after the #436b build (#1691; live needs a --migrate window with Jason) | morgana; reviewers duckworth | #1704 | queued | 205 done, 234 done, 236 done | Duckworth approves the manifest; bus suite, cli suite and every scripts/test-*.sh green on Sage's gate; the mutants killed (sage) | `docs/plans/2026-10-20_human-users-build.md` § Brief: 193b2, thread shares (schema 3l) | — | | 207 | 193c: mosaic access user verbs and --level viewer (#1691) | morgana; reviewers duckworth | #1705 | queued | 202 done | Duckworth approves the manifest; cli suite and every scripts/test-*.sh green on Sage's gate; the mutants killed (sage) | `docs/plans/2026-10-20_human-users-build.md` § Brief: 193c, mosaic access user verbs and --level viewer | — | | 208 | 193d: Console shared list, share controls and viewer read-only (#1691; also after FED R6 when filed) | morgana; reviewers duckworth | #1706 | queued | 192 done, 206 done | Duckworth approves the manifest; webui suite and every scripts/test-*.sh green on Sage's gate; the mutants killed (sage) | `docs/plans/2026-10-20_human-users-build.md` § Brief: 193d, the Console's shared list, share controls and viewer read-only | — | | 209 | FED R8: the hub window on 10.1.1.54, a recorded acceptance (#414, r4.11 b93f098f0; live window run by Jason and Mos, after the Case 2 install #416, Bean and Chet live and both Hermes gateways stopped) | sage; reviewers duckworth | — | queued | — | Every entry check's output is in the R8 record with who ran it; Jason signs in to the hub and sends one message, Melanie revokes, his next request is refused; Duckworth checks the record (sage) | `docs/plans/2026-10-20_federation-r1-r2-r5.md` § Brief: FED R8, the hub window on 10.1.1.54 | Stays queued until its entry gates near: Case 2 install on .54 (#416, by 2026-10-27), Bean and Chet live, both Hermes gateways on .54 stopped, R7, #412 phase 2, #419 answer. Filed per mos-1073 after duckworth-0034 (Sage) | -| 210 | Agent host access with sudo through the credential store: grant per agent and host, the stack does ssh and sudo, the agent never sees the key (#1707, Vikunja #424, Q183/Q184, due 10-27; chained on row 199's candidate) | gizmoduck; reviewers duckworth | #1707 | in-review, round 1, request posted | — | Duckworth approves DESIGN.md, then the manifest; bus, business, cli suites and every scripts/test-*.sh green on Sage's gate; the mutants killed (sage) | `docs/plans/2026-10-20_host-credentials.md` § Brief: agent host access with sudo through the credential store (#424) | Design runs before 199 lands (Q177 chain on 199's candidate). after cleared so Gizmoduck can claim; lands only after 199 and rebases onto it. | +| 210 | Agent host access with sudo through the credential store: grant per agent and host, the stack does ssh and sudo, the agent never sees the key (#1707, Vikunja #424, Q183/Q184, due 10-27; chained on row 199's candidate) | gizmoduck; reviewers duckworth | #1707 | in-review, round 2, request posted | — | Duckworth approves DESIGN.md, then the manifest; bus, business, cli suites and every scripts/test-*.sh green on Sage's gate; the mutants killed (sage) | `docs/plans/2026-10-20_host-credentials.md` § Brief: agent host access with sudo through the credential store (#424) | Sage gate 2026-10-21 on 92fac9904 (c8bc5cf4c + 3cf63efb4): mutants 52/53, M22b equivalent (no await broker.mjs:1741 to credentials.mjs:358; coverage moves to row 235, gizmoduck-0088). Gate STOP pkg-bus 497/1: B1 broker.mjs:7 imports business/src/hosts.mjs (not in RUNNER_FILES, nor errors.mjs/util.mjs); project-runtime.test.mjs:12 pin fails; seat sandbox.test.mjs 6/4 vs base 10/0. r4 needed (sage-1617). | | 211 | Force-push guard: scripts/git-hooks/pre-push refuses non-fast-forward and delete pushes from every worktree, and scripts/slot-busy.sh exits 1 on BUSY (#1709, Vikunja #426, mos-1078/1083) | rocko; reviewers dewey | #1709 | briefed | — | Dewey approves the manifest; the new or changed scripts/test-*.sh and every other scripts/test-*.sh green on Sage's gate; the mutants killed; hook installed in the canonical checkout with a scripted refused force-push (sage) | `docs/plans/2026-10-20_force-push-guard.md` § Brief: a pre-push hook that refuses force-pushes, and a busy check that fails on BUSY (#426) | — | | 212 | Case 2 C2-01 packages/library: mapping, scope, reader, resolver, R-rules, renderItems, survey | gosalyn; reviewers webby | #1713 | in-review, round 1, request posted | — | Webby approves the manifest. The library tests and the cli suite are green on Sage's gate, along with every `scripts/test-*.sh`. (sage) | `docs/plans/2026-10-20_case2-rows.md` § C2-01 packages/library: mapping, scope, reader, resolver, R-rules, renderItems, survey | — | | 213 | Case 2 C2-08 creative roles, persona file and block, M1, M2, M6, M10, prompt passed by file | morgana; reviewers webby | #1714 | in-review, round 2, request posted | — | Webby approves the manifest. The business, bus and harness suites, `scripts/test-config.sh` and every `scripts/test-*.sh` are green on Sage's gate, and the `models` mutant is killed. (sage) | `docs/plans/2026-10-20_case2-rows.md` § C2-08 creative roles, persona file and block, M1, M2, M6, M10, prompt passed by file | — | @@ -258,7 +258,7 @@ Generated from `docs/plans/queue.json` revision 2539 by `queue render`. Do not e | 219 | Case 2 C2-09a one thread per creative instance | rocko; reviewers dewey | #1720 | briefed | — | Dewey approves the manifest. The bus, cli and webui suites are green on Sage's gate, along with every `scripts/test-*.sh`. Watch for hash pins on `bus.js` and `broker.mjs` (`packages/bus/tests/channel-proof.test.mjs` pins a webui file). (sage) | `docs/plans/2026-10-20_case2-rows.md` § C2-09a one thread per creative instance | — | | 220 | Case 2 C2-10a no raw session view (M7) and no raw Discord engine (M8) | researcher; reviewers filbert | #1721 | briefed | — | Filbert approves the manifest. The conversation and discord suites and `scripts/test-discord.sh` are green on Sage's gate, along with every `scripts/test-*.sh`. No test reaches a Discord server. (sage) | `docs/plans/2026-10-20_case2-rows.md` § C2-10a no raw session view (M7) and no raw Discord engine (M8) | — | | 221 | Case 2 C2-20 Bean and Chet persona import, with a count-only dry run | gosalyn; reviewers webby | #1722 | briefed | — | Webby approves the manifest. The test file runs green on its own and the cli suite is green on Sage's gate, along with every `scripts/test-*.sh`. (sage) | `docs/plans/2026-10-20_case2-rows.md` § C2-20 Bean and Chet persona import, with a count-only dry run | — | -| 222 | Case 2 C2-03a fetch-only sync | megavolt; reviewers dewey | #1723 | briefed | — | Dewey approves the manifest. The library and bus suites are green on Sage's gate, along with every `scripts/test-*.sh`, and the mutant is killed. A search of the test run's output for the fixture token finds nothing. (sage) | `docs/plans/2026-10-20_case2-rows.md` § C2-03a fetch-only sync | — | +| 222 | Case 2 C2-03a fetch-only sync | megavolt; reviewers dewey | #1723 | in-progress | — | Dewey approves the manifest. The library and bus suites are green on Sage's gate, along with every `scripts/test-*.sh`, and the mutant is killed. A search of the test run's output for the fixture token finds nothing. (sage) | `docs/plans/2026-10-20_case2-rows.md` § C2-03a fetch-only sync | — | | 223 | Case 2 C2-07 runner retry on a guard refusal, and the runner's notices | researcher; reviewers filbert | #1724 | briefed | — | Filbert approves the manifest. The harness suite is green on Sage's gate, along with every `scripts/test-*.sh`. (sage) | `docs/plans/2026-10-20_case2-rows.md` § C2-07 runner retry on a guard refusal, and the runner's notices | — | | 224 | Case 2 C2-05b broker lookup verbs and typed tools | rocko; reviewers dewey | #1725 | briefed | — | Dewey approves the manifest. The bus and harness suites are green on Sage's gate, along with every `scripts/test-*.sh`. (sage) | `docs/plans/2026-10-20_case2-rows.md` § C2-05b broker lookup verbs and typed tools | — | | 225 | Case 2 C2-10b Console chat: cited items and the status line | researcher; reviewers dewey | #1726 | briefed | — | Dewey approves the manifest. The webui suite is green on Sage's gate, along with every `scripts/test-*.sh`. Grep for hash pins on `bus.js` and `serve.mjs` before in-review. (sage) | `docs/plans/2026-10-20_case2-rows.md` § C2-10b Console chat: cited items and the status line | — | @@ -266,12 +266,17 @@ Generated from `docs/plans/queue.json` revision 2539 by `queue render`. Do not e | 227 | Case 2 C2-14 end-to-end acceptance on a scratch root | launchpad; reviewers dewey | #1728 | briefed | — | Dewey runs the script and approves. It is green on Sage's gate with every `scripts/test-*.sh`. (sage) | `docs/plans/2026-10-20_case2-rows.md` § C2-14 end-to-end acceptance on a scratch root | — | | 228 | Row A: ZAI_API_KEY passes through ENV_ALLOW to sessions, README line, pass-through test (XS, Haiku high) | researcher; reviewers webby | #1729 | in-review, round 1, request posted | — | Webby approves the manifest. The mutant is killed. The seat suite and the cli suite are green on Sage's gate with every scripts/test-*.sh. (sage) | `docs/plans/2026-10-20_case2-rows.md` § Brief: row A, ZAI_API_KEY in the session env allowlist | — | | 229 | Row B: per-instance pi agent dir for Chet's Codex login, design only, starts after 10-27 (#428) | gosalyn; reviewers webby | #1730 | queued | — | A live check, with Jason's or Mos's go, that two clients on one ChatGPT login don't revoke each other's refresh tokens. No build row starts before it passes. Held until after 10-27. (sage) | `docs/plans/2026-10-20_case2-rows.md` § Brief: row B, a per-instance pi agent dir for Chet's Codex login (#428) | — | -| 230 | Case 2 C2-13a unit render and host precheck (case2-unit.sh, case2-precheck.sh) | gosalyn; reviewers webby | #1732 | in-progress | — | Webby approves the manifest. The test file and the cli suite are green on Sage's gate, along with every scripts/test-*.sh. A run on a host is a separate window with Jason's go. (sage) | `docs/plans/2026-10-20_case2-rows.md` § C2-13a unit render and host precheck | — | +| 230 | Case 2 C2-13a unit render and host precheck (case2-unit.sh, case2-precheck.sh) | gosalyn; reviewers webby | #1732 | done | — | Webby approves the manifest. The test file and the cli suite are green on Sage's gate, along with every scripts/test-*.sh. A run on a host is a separate window with Jason's go. (sage) | `docs/plans/2026-10-20_case2-rows.md` § C2-13a unit render and host precheck | Landed c8bc5cf4c on refactor (base 390ea5261), pushed. Patch-id f4b49eb68997 matches git diff 722136772..96768766c on the 5 manifest paths (manifest fbb0d7e42c67, Webby approve r2 rev 2563). packages/cli/README.md 3-way with row 199, hunks apart. Gosalyn gate on 96768766c: cli 541/0, scripts 429/0, mutants 10/10. Merged tree check: case2-unit 30/0, host 42/0. | | 231 | Case 2 C2-01b survey escapes, list item lines and attachment embeds (row 212 N1-N3) | gosalyn; reviewers webby | #1733 | briefed | 212 done | Webby approves the manifest. The library tests are green on Sage's gate, along with every scripts/test-*.sh. (sage) | `docs/plans/2026-10-20_case2-rows.md` § C2-01b survey escapes, list item lines and attachment embeds | — | -| 232 | Installer I1: stack-release external units and stack-copy bundle copies (MVP, Q187, Vikunja #432) | darkwing; reviewers filbert | #1734 | in-progress | — | Filbert approves the manifest. The cli suite and every scripts/test-*.sh are green on Sage's gate, with the mutants killed. (sage) | `docs/plans/2026-10-20_installer-rows.md` § I1 stack-release external units and bundle copies | — | -| 233 | Installer I3: stack-upgrade.sh root driver and the ops-01 host run sheet (MVP, Q187, Vikunja #432) | darkwing; reviewers filbert | #1735 | queued | 232 done | Filbert approves the manifest. The test file, the cli suite and every scripts/test-*.sh are green on Sage's gate, with the mutants killed. (sage) | `docs/plans/2026-10-20_installer-rows.md` § I3 the upgrade command and the host run sheet | — | +| 232 | Installer I1: stack-release external units and stack-copy bundle copies (MVP, Q187, Vikunja #432) | darkwing; reviewers filbert | #1734 | in-review, round 1, request posted | — | Filbert approves the manifest. The cli suite and every scripts/test-*.sh are green on Sage's gate, with the mutants killed. (sage) | `docs/plans/2026-10-20_installer-rows.md` § I1 stack-release external units and bundle copies | — | +| 233 | Installer I3: stack-upgrade.sh root driver and the ops-01 host run sheet (MVP, Q187, Vikunja #432) | darkwing; reviewers filbert | #1735 | briefed | 232 done | Filbert approves the manifest. The test file, the cli suite and every scripts/test-*.sh are green on Sage's gate, with the mutants killed. (sage) | `docs/plans/2026-10-20_installer-rows.md` § I3 the upgrade command and the host run sheet | — | | 234 | Machine grant row a: host enrollment, store records and migration 3i-3j (#436a, design r6 f9039682e, lands by 10-25 before the .53/.54 installs) | gizmoduck; reviewers duckworth | #1740 | queued | 210 done | Duckworth approves the manifest. The bus, business and cli suites and every scripts/test-*.sh are green on Sage's gate. The design's section 10 row a tests and mutants pass, the migration test included. (sage) (sage) | `docs/plans/2026-10-20_host-credentials.md` § Machine grant row a: enrollment, store records and migration 3i-3j | — | | 235 | Machine grant row b: raise binding, executor, reconcile and revoke (#436, design r6 f9039682e, C1, N1, G27, G28) | gizmoduck; reviewers duckworth | #1741 | queued | 234 done | Duckworth approves the manifest. The bus, business and cli suites and every scripts/test-*.sh are green on Sage's gate. Section 10's row b tests and mutants pass, G27, G28 and the upsert mutant included. (sage) (sage) | `docs/plans/2026-10-20_host-credentials.md` § Machine grant row b: raise binding, executor, reconcile and revoke | — | +| 236 | #436b Gitea grant path build: seat accounts and tokens through an approved grant, schema 3j-3k (design r5 1be535aca, due 10-27 at risk; live waits for Jason's section 8 approval and bootstrap step) | megavolt; reviewers dewey | #1742 | queued | 210 done, 234 done | Dewey approves the manifest. The bus, business and cli suites and every scripts/test-*.sh are green on Sage's gate. Section 9's mutants are killed, N9's restart test included. (sage) (sage) | `docs/plans/2026-10-20_agent-credentials.md` § Brief: #436b Gitea grant path, build (schema 3j-3k) | — | +| 237 | Row 199 follow-up N1: one decision publishes once (publish-busy or #spent recheck) | megavolt; reviewers duckworth | #1743 | done | 199 done | Duckworth approves the manifest. The bus suite and every scripts/test-*.sh are green on Sage's gate, and the mutant is killed. (sage) (sage) | `docs/plans/2026-10-20_agent-credentials.md` § Brief: row 199 follow-up N1, one decision publishes once | Landed d7d943199 on refactor (local, push pending), patch-id c5f4beb4 = e42415935, manifest bb777cb0 blobs checked. Sage gate 01:31-01:44Z on 816d48b03+4 paths: M1 killed (bus 1/13, cli 1/8), every package suite and scripts/test-*.sh green (bus 478, cli 564). | +| 238 | row 200 follow-up N1: the sso-config hint carries --instance NAME (#1744) | launchpad; reviewers webby | #1744 | in-review, round 1, request posted | 200 done | Webby approves the manifest; stack-release.test.mjs whole, cli suite and every scripts/test-*.sh green on Sage's gate; the mutant killed (sage) | `docs/plans/2026-10-20_stack-release-sso.md` § Brief: row 200 follow-up N1, the sso-config hint names the instance | — | +| 239 | Row 194 follow-up: the credential revoke runs under the writer's lock, refusals after a revoke say so, and a stale-revision fire test (duckworth-0074, mos-1158) | honker; reviewers duckworth | #1745 | queued | 194 done | Duckworth approves the manifest. The bus, business, cli and webui suites and every scripts/test-*.sh are green on Sage's gate, and the mutants are killed. (sage) (sage) | `docs/plans/2026-10-20_agent-lifecycle.md` § Brief: row 194 follow-up, the revoke under the writer's lock and a fire test | — | +| 240 | Installer I4: hostcheck, the bwrap profile check, pins and boot unit, from r6 B2 (MVP, Q187, Vikunja #432; split from I3) | darkwing; reviewers filbert | #1746 | queued | 233 done | Filbert approves the manifest. The test file, the cli suite and every scripts/test-*.sh are green on Sage's gate, with the mutants killed. (sage) (sage) | `docs/plans/2026-10-20_installer-rows.md` § I4 hostcheck: the bwrap profile check, pins and boot unit | — | diff --git a/docs/plans/queue.json b/docs/plans/queue.json index 395769fd3..dca04a339 100644 --- a/docs/plans/queue.json +++ b/docs/plans/queue.json @@ -1,7 +1,7 @@ { "version": 1, "canonicalRoot": "/mnt/storage/src/mosaic-stack", - "revision": 2539, + "revision": 2603, "rows": [ { "id": 1, @@ -20353,7 +20353,7 @@ "brief": { "path": "docs/plans/2026-10-20_agent-lifecycle.md", "anchor": "Brief: agent lifecycle from the Console and the CLI, with a per-agent hire/fire veto", - "blob": "a907109409ac3e1d21fb9693f4be40af5f4aa11e" + "blob": "8fe6ddeddaf07439505f14e91b925e880fee1090" }, "after": [], "reviewers": [ @@ -20364,11 +20364,11 @@ "seat": "honker", "op": "honker-194-start" }, - "note": null, + "note": "sage-1610 (honker-0049): a human add takes tracker {bot, botId}, required for a vikunja definition, refused otherwise, checked by checkBot and bot uniqueness; CLI and API only. Delete accepts a tracker bot when all credentials are store refs, and its result names the bot for removal by hand in Vikunja. No Vikunja account is created (Q188 untouched). Mutants: drop the requirement, refuse the bot on delete, skip checkBot on add.", "blockedReason": null, "createdAt": "2026-10-20T18:53:21.163Z", - "updatedAt": "2026-10-20T18:57:06.132Z", - "updatedBy": "honker" + "updatedAt": "2026-10-21T00:35:16.354Z", + "updatedBy": "sage" }, { "id": 195, @@ -20596,7 +20596,7 @@ "closes": [ 1697 ], - "state": "in-review", + "state": "done", "previousState": null, "required": false, "requiredSince": null, @@ -20656,18 +20656,24 @@ } ], "duplicateRisk": false, - "receipts": [] + "receipts": [ + { + "reviewer": "duckworth", + "op": "duckworth-r199-record-1", + "at": "2026-10-20T23:36:51.397Z", + "verdict": "approve", + "comment": 29779, + "candidate": "35f900fdff846f8fc9c879d7ac74b97981d890c2c2fa110242b06f0ad2236bee" + } + ] } ] }, - "claim": { - "seat": "megavolt", - "op": "megavolt-199-start" - }, - "note": null, + "claim": null, + "note": "Landed cb5fdb064 on refactor (base 76134dfde), pushed. Patch-id 828fa21a matches git diff 00d4cc1f6..86963d281 on the 37 manifest paths; docs/TOOLS.md 3-way with row 200, hunk unchanged. Manifest 35f900fd, Duckworth approve r1 29779. Gate on 9e1085816+patch: packages 2735/0, scripts 429/0; landed blobs equal the gate tree.", "blockedReason": null, "createdAt": "2026-10-20T19:14:43.726Z", - "updatedAt": "2026-10-20T23:29:58.441Z", + "updatedAt": "2026-10-21T00:24:02.457Z", "updatedBy": "sage" }, { @@ -20680,7 +20686,7 @@ "closes": [ 1698 ], - "state": "in-review", + "state": "done", "previousState": null, "required": false, "requiredSince": null, @@ -20861,15 +20867,12 @@ } ] }, - "claim": { - "seat": "launchpad", - "op": "launchpad-200-start" - }, - "note": null, + "claim": null, + "note": "Landed 9e1085816 on refactor (base 722136772), pushed. Patch-id 7ebfa6a5 matches git diff 00d4cc1f6..9df40878f on the 3 manifest paths. Manifest b3ead55c, Webby approve r3 29772. Gate on 9df40878f: packages 2675/0, scripts 429/0. Mutants 13/14, M12 ruled equivalent (sage-1446).", "blockedReason": null, "createdAt": "2026-10-20T19:18:18.006Z", - "updatedAt": "2026-10-20T23:30:35.300Z", - "updatedBy": "webby" + "updatedAt": "2026-10-21T00:10:44.860Z", + "updatedBy": "sage" }, { "id": 201, @@ -21217,7 +21220,7 @@ }, { "id": 206, - "piece": "193b2: thread shares, schema 3j-3k after machine grant row a (#1691; live needs a --migrate window with Jason)", + "piece": "193b2: thread shares, schema 3k-3l after the #436b build (#1691; live needs a --migrate window with Jason)", "owner": "morgana", "issues": [ 1704 @@ -21233,8 +21236,8 @@ "gateOwner": "sage", "brief": { "path": "docs/plans/2026-10-20_human-users-build.md", - "anchor": "Brief: 193b2, thread shares (schema 3k)", - "blob": "1ce884c7ccbe9f5d374f6e20c66c00e951735e13" + "anchor": "Brief: 193b2, thread shares (schema 3l)", + "blob": "a73e1bba0957e39f8a998efb7df69a36e3fb2914" }, "after": [ { @@ -21244,6 +21247,10 @@ { "id": 234, "when": "done" + }, + { + "id": 236, + "when": "done" } ], "reviewers": [ @@ -21254,7 +21261,7 @@ "note": null, "blockedReason": null, "createdAt": "2026-10-20T19:44:46.533Z", - "updatedAt": "2026-10-20T23:26:35.398Z", + "updatedAt": "2026-10-20T23:41:30.826Z", "updatedBy": "sage" }, { @@ -21446,6 +21453,60 @@ "candidate": "455964f23d69397b196b9f1feb54e8d333b532df" } ] + }, + { + "n": 2, + "op": "gizmoduck-210-inreview-2", + "by": "gizmoduck", + "at": "2026-10-21T01:14:40.777Z", + "issue": 1707, + "candidate": { + "kind": "manifest", + "digest": "0ed4d5350a163003b0a0662e83e99f7e7f75ab000f31035159e676d5577bb3ef", + "text": "8fa8a321933e75315babe21f49ba434a61dbeffbfcfded6933ebfaf6c73d3aee packages/business/src/business.mjs\ne72f0898b5f373c5a76d4c41fbe504904f55e18b183768260a6423510625683e packages/business/src/credentials.mjs\n6339bf85c946a41a5cbe8e94d51b264e298a9d16900e5dfe46b01b803e76ca41 packages/business/src/hosts.mjs\nab5f7dc38a2ca5978b02d257068f4f82706db847cf0d6400f7cd548f8f6abe43 packages/business/src/resolve.mjs\n636916b9868b3a3e7f962894cbfa1e91629b5713a568f55f4716f942dbcd4910 packages/business/src/role.mjs\n77c432e879f8611a077feb2fb7c9b67e826ade558e41dcf01433fc2cdab2e0fa packages/business/src/vocabulary.mjs\n6a2c9b371fc9236bb0730ed108cbd770e9487b8ba733dbebccd11891ccba6f17 packages/business/tests/hard-waits.test.mjs\n9ef8b8be3c290f072e7c943b176a1ec688fda03fab4ba114d31213caf2216e42 packages/business/tests/hosts.test.mjs\nfcaf50728e4599e5f10875f01c22b03610044b634c999830ef9684ef74cc62f3 packages/bus/src/broker.mjs\nff927da3cf22fbacc9ace77b2e8b803bffc2953fb58cf7ab4e5f6f6493732996 packages/bus/src/business.mjs\n27d2ae155a2919788d7ad02da10a7056c23f5b71228e9af406b1b8aa0de55efc packages/bus/src/credentials.mjs\n86b4321dd436b97e389101873197dbab95b3d2202e5ef7da712c4978f4f9159f packages/bus/src/credential-verbs.mjs\n5d227edec1d33cb58607fae4e43784a0decc8aaf55cad6bc4318cec4eda6fbea packages/bus/src/host-run.mjs\n3721190045a4f114d67c9c7d32a448cf3d5dbbc6d4554dbc348e9f6fd428b5dc packages/bus/src/runtime.mjs\n3ef86e4f0b77cc513bdd58ec7eb984ceb02af6625f39d1be5254f2c0b0e99734 packages/bus/src/server.mjs\n58e45b7a0d0118be8827bd71d1a427ff84d0ecac46c22adece36dec36e6d521d packages/bus/tests/hard-waits.test.mjs\n28ad8ce2a29722768820ad916273f2100eb79281255c6a3689964cd24564237c packages/bus/tests/host-run.test.mjs\nbe4e1eb88b689e8e4f859de75218af151feae8dce2c1409b726cb9c3dcd5ffe9 packages/bus/tests/spec-fixtures.mjs\n19755f7bb002d8455990c5dc7c458e64aeb95252ec7231a2ed2fd9c638fcb511 packages/cli/src/credentials.mjs\n152a3e57f7241db45bf8262fbf86ee029cf3b98f0d75503990abd46ac151a4b2 packages/cli/tests/credentials.test.mjs\nbdf88833cdb0c5ef76acec50c3c983b55c6053987a5c427cbc400ebd5f3c7110 packages/bus/tests/project-runtime.test.mjs\ne222a5fc3c117f62dbc854ef7397f7b5589e6f5d52e45398db0deeb43c53a9d5 roles/chief-of-staff.md\nd1016f8c34ee04601ab751c7514a20dfbeec0359d46dba8f94c44538dcc16133 roles/pm.md\n" + }, + "request": "comment", + "attempts": [ + { + "op": "gizmoduck-210-inreview-2", + "by": "gizmoduck", + "at": "2026-10-21T01:14:40.777Z", + "state": "failed", + "comment": null, + "transport": { + "outcome": "failed", + "status": null, + "comment": null, + "detail": "pre-send: the credential or account check failed" + }, + "resolutions": [] + }, + { + "op": "sage-210-request-2", + "by": "sage", + "at": "2026-10-21T01:16:22.926Z", + "state": "posted", + "comment": 29819, + "transport": { + "outcome": "posted", + "status": 201, + "comment": 29819, + "detail": "created" + }, + "resolutions": [] + } + ], + "duplicateRisk": false, + "receipts": [ + { + "reviewer": "duckworth", + "op": "duckworth-r210-record-2", + "at": "2026-10-21T01:20:56.136Z", + "verdict": "approve", + "comment": 29821, + "candidate": "0ed4d5350a163003b0a0662e83e99f7e7f75ab000f31035159e676d5577bb3ef" + } + ] } ] }, @@ -21453,10 +21514,10 @@ "seat": "gizmoduck", "op": "gizmoduck-210-start" }, - "note": "Design runs before 199 lands (Q177 chain on 199's candidate). after cleared so Gizmoduck can claim; lands only after 199 and rebases onto it.", + "note": "Sage gate 2026-10-21 on 92fac9904 (c8bc5cf4c + 3cf63efb4): mutants 52/53, M22b equivalent (no await broker.mjs:1741 to credentials.mjs:358; coverage moves to row 235, gizmoduck-0088). Gate STOP pkg-bus 497/1: B1 broker.mjs:7 imports business/src/hosts.mjs (not in RUNNER_FILES, nor errors.mjs/util.mjs); project-runtime.test.mjs:12 pin fails; seat sandbox.test.mjs 6/4 vs base 10/0. r4 needed (sage-1617).", "blockedReason": null, "createdAt": "2026-10-20T20:13:12.208Z", - "updatedAt": "2026-10-20T21:44:51.169Z", + "updatedAt": "2026-10-21T01:20:56.136Z", "updatedBy": "duckworth" }, { @@ -21817,7 +21878,7 @@ "brief": { "path": "docs/plans/2026-10-20_case2-rows.md", "anchor": "C2-05a lookup index and queries", - "blob": "f0097cfd68abe7919dd89737b1cbccc77e74a520" + "blob": "16847e94ae1768881711318fe81cbb5e6c66b971" }, "after": [], "reviewers": [ @@ -21828,7 +21889,7 @@ "note": null, "blockedReason": null, "createdAt": "2026-10-20T20:47:02.474Z", - "updatedAt": "2026-10-20T21:54:55.669Z", + "updatedAt": "2026-10-21T00:14:12.904Z", "updatedBy": "sage" }, { @@ -21850,7 +21911,7 @@ "brief": { "path": "docs/plans/2026-10-20_case2-rows.md", "anchor": "C2-06 the cited-reply guard, the page store and the three notices", - "blob": "f0097cfd68abe7919dd89737b1cbccc77e74a520" + "blob": "16847e94ae1768881711318fe81cbb5e6c66b971" }, "after": [], "reviewers": [ @@ -21861,7 +21922,7 @@ "note": null, "blockedReason": null, "createdAt": "2026-10-20T20:47:47.889Z", - "updatedAt": "2026-10-20T21:55:19.003Z", + "updatedAt": "2026-10-21T00:13:47.216Z", "updatedBy": "sage" }, { @@ -22006,7 +22067,7 @@ "closes": [ 1723 ], - "state": "briefed", + "state": "in-progress", "previousState": null, "required": false, "requiredSince": null, @@ -22015,19 +22076,22 @@ "brief": { "path": "docs/plans/2026-10-20_case2-rows.md", "anchor": "C2-03a fetch-only sync", - "blob": "f0097cfd68abe7919dd89737b1cbccc77e74a520" + "blob": "16847e94ae1768881711318fe81cbb5e6c66b971" }, "after": [], "reviewers": [ "dewey" ], "review": null, - "claim": null, + "claim": { + "seat": "megavolt", + "op": "megavolt-222-start-1" + }, "note": null, "blockedReason": null, "createdAt": "2026-10-20T20:51:30.302Z", - "updatedAt": "2026-10-20T21:57:38.063Z", - "updatedBy": "sage" + "updatedAt": "2026-10-20T23:47:12.082Z", + "updatedBy": "megavolt" }, { "id": 223, @@ -22334,7 +22398,7 @@ "closes": [ 1732 ], - "state": "in-progress", + "state": "done", "previousState": null, "required": false, "requiredSince": null, @@ -22349,15 +22413,123 @@ "reviewers": [ "webby" ], - "review": null, - "claim": { - "seat": "gosalyn", - "op": "gosalyn-230-start" + "review": { + "rounds": [ + { + "n": 1, + "op": "gosalyn-230-inreview-r1", + "by": "gosalyn", + "at": "2026-10-20T23:44:09.854Z", + "issue": 1732, + "candidate": { + "kind": "manifest", + "digest": "8e9d1ef0c9c84e798a568921825804c5f6ae1e77ea96777bd1ddd782a2be830a", + "text": "9e5c9f4ef93cff0a525af61aa7f6d998d0ecb5d0eeae9415252ec52052931b2d agents/gosalyn/work/queue-230/BUILD.md\n4cbb1fbd5738db240f2ca6178712d885ba95a8ee675f0221926ada19b6194d8f packages/cli/README.md\nc99ed2be62938a5d37c4b4779ec1da2b8a466e8941051d7b55cdbc2c84a4e82b packages/cli/tests/case2-unit.test.mjs\n83e3dc96a34763be7f4681e4ad71e12f4bb91a3ddfd84e644a9da9ea2b1d0f31 scripts/case2-precheck.sh\n2856a770113debd0330e7fb44dfe242420cd2034643b3a5b3474066a99b73b4b scripts/case2-unit.sh\n" + }, + "request": "comment", + "attempts": [ + { + "op": "gosalyn-230-inreview-r1", + "by": "gosalyn", + "at": "2026-10-20T23:44:09.854Z", + "state": "failed", + "comment": null, + "transport": { + "outcome": "failed", + "status": null, + "comment": null, + "detail": "pre-send: the credential or account check failed" + }, + "resolutions": [] + }, + { + "op": "sage-230-request-r1-jarvis", + "by": "sage", + "at": "2026-10-20T23:45:31.612Z", + "state": "posted", + "comment": 29784, + "transport": { + "outcome": "posted", + "status": 201, + "comment": 29784, + "detail": "created" + }, + "resolutions": [] + } + ], + "duplicateRisk": false, + "receipts": [ + { + "reviewer": "webby", + "op": "webby-230-verdict-r1", + "at": "2026-10-20T23:52:49.435Z", + "verdict": "changes", + "comment": 29784, + "candidate": "8e9d1ef0c9c84e798a568921825804c5f6ae1e77ea96777bd1ddd782a2be830a" + } + ] + }, + { + "n": 2, + "op": "gosalyn-230-inreview-r2", + "by": "gosalyn", + "at": "2026-10-20T23:55:49.557Z", + "issue": 1732, + "candidate": { + "kind": "manifest", + "digest": "fbb0d7e42c67507519e03b5a2354fb82e760908fcfeecdf1f6c1da3e836a81da", + "text": "56b1450c933bf0f50c6c6307c1adc297b78331695704dc2931b28c7d2a0a6a0b agents/gosalyn/work/queue-230/BUILD.md\n064d3678a43e5615dde5f9637989bc1a418f975e63e5b345f7aca920893c45f4 packages/cli/README.md\nce2146433a02240131ff98d0eace8e14b7d7d0fc8673a0447e7dee64ebe51281 packages/cli/tests/case2-unit.test.mjs\n83e3dc96a34763be7f4681e4ad71e12f4bb91a3ddfd84e644a9da9ea2b1d0f31 scripts/case2-precheck.sh\nc56fe5493482f288901ae6bbb37bc04521dea34d62aea24d0306288b74982dd5 scripts/case2-unit.sh\n" + }, + "request": "comment", + "attempts": [ + { + "op": "gosalyn-230-inreview-r2", + "by": "gosalyn", + "at": "2026-10-20T23:55:49.557Z", + "state": "failed", + "comment": null, + "transport": { + "outcome": "failed", + "status": null, + "comment": null, + "detail": "pre-send: the credential or account check failed" + }, + "resolutions": [] + }, + { + "op": "sage-230-request-r2-jarvis", + "by": "sage", + "at": "2026-10-20T23:57:19.962Z", + "state": "posted", + "comment": 29788, + "transport": { + "outcome": "posted", + "status": 201, + "comment": 29788, + "detail": "created" + }, + "resolutions": [] + } + ], + "duplicateRisk": false, + "receipts": [ + { + "reviewer": "webby", + "op": "webby-230-verdict-r2", + "at": "2026-10-20T23:59:10.059Z", + "verdict": "approve", + "comment": 29788, + "candidate": "fbb0d7e42c67507519e03b5a2354fb82e760908fcfeecdf1f6c1da3e836a81da" + } + ] + } + ] }, - "note": null, + "claim": null, + "note": "Landed c8bc5cf4c on refactor (base 390ea5261), pushed. Patch-id f4b49eb68997 matches git diff 722136772..96768766c on the 5 manifest paths (manifest fbb0d7e42c67, Webby approve r2 rev 2563). packages/cli/README.md 3-way with row 199, hunks apart. Gosalyn gate on 96768766c: cli 541/0, scripts 429/0, mutants 10/10. Merged tree check: case2-unit 30/0, host 42/0.", "blockedReason": null, "createdAt": "2026-10-20T21:33:06.368Z", - "updatedAt": "2026-10-20T23:10:14.841Z", + "updatedAt": "2026-10-21T00:37:15.829Z", "updatedBy": "sage" }, { @@ -22408,7 +22580,7 @@ "closes": [ 1734 ], - "state": "in-progress", + "state": "in-review", "previousState": null, "required": false, "requiredSince": null, @@ -22423,7 +22595,50 @@ "reviewers": [ "filbert" ], - "review": null, + "review": { + "rounds": [ + { + "n": 1, + "op": "darkwing-232-inreview-r1", + "by": "darkwing", + "at": "2026-10-21T01:26:26.610Z", + "issue": 1734, + "candidate": { + "kind": "manifest", + "digest": "7a3b4ea133cc4ef7573cd05338a937523991c8aa838782bf525781f6b76bd9c4", + "text": "3d88cf8c4d285c0477f5fbe7c36fb0724f8626ff1622d760a0cba6e15784dd8d agents/darkwing/work/queue-232/BUILD.md\nea516da8a6ccd5fa13e371bce83066f7fc7a6bffe545f155b7d7b076682dd40d docs/TOOLS.md\nc189cfcdeaff591194a6d5824c61432ea6f43607d8374d806b824d36ac549390 packages/cli/README.md\n681ed534f6ee6188ba5b628e882b17b5a4d9e748d6a649be622a0777a2ee0e87 packages/cli/tests/stack-copy.test.mjs\ned72964534f2289996672b08bc3b75539ec891a62688cedf9ea18a436b7df103 packages/cli/tests/stack-release-external.test.mjs\n896399deb3d0dd07651f965a53ede6717629dcb574876d418184a02ba093ada0 packages/cli/tests/stack-release-fixture.mjs\n533a91460f249bf0f9458fe4269795b8438ab209be7c4e6290e1ea0e29dd98d8 packages/cli/tests/stack-release.test.mjs\nc111fb361bac4fda2d2fdb4c1304e818c79995653ec36f346e44a863846cedc3 scripts/stack-copy.sh\n61db23e9c1b49878f6edfa0c07805d770c20103f06947f0bfcf72da6568f94c7 scripts/stack-release.sh\n" + }, + "request": "comment", + "attempts": [ + { + "op": "darkwing-232-inreview-r1", + "by": "darkwing", + "at": "2026-10-21T01:26:26.610Z", + "state": "posted", + "comment": 29825, + "transport": { + "outcome": "posted", + "status": 201, + "comment": 29825, + "detail": "created" + }, + "resolutions": [] + } + ], + "duplicateRisk": false, + "receipts": [ + { + "reviewer": "filbert", + "op": "filbert-232-record-r1", + "at": "2026-10-21T01:33:53.697Z", + "verdict": "approve", + "comment": 29829, + "candidate": "7a3b4ea133cc4ef7573cd05338a937523991c8aa838782bf525781f6b76bd9c4" + } + ] + } + ] + }, "claim": { "seat": "darkwing", "op": "darkwing-232-inprogress-r1" @@ -22431,8 +22646,8 @@ "note": null, "blockedReason": null, "createdAt": "2026-10-20T22:56:29.929Z", - "updatedAt": "2026-10-20T23:05:35.078Z", - "updatedBy": "sage" + "updatedAt": "2026-10-21T01:33:53.697Z", + "updatedBy": "filbert" }, { "id": 233, @@ -22444,7 +22659,7 @@ "closes": [ 1735 ], - "state": "queued", + "state": "briefed", "previousState": null, "required": false, "requiredSince": null, @@ -22469,7 +22684,7 @@ "note": null, "blockedReason": null, "createdAt": "2026-10-20T22:56:59.719Z", - "updatedAt": "2026-10-20T23:05:59.469Z", + "updatedAt": "2026-10-21T01:30:41.511Z", "updatedBy": "sage" }, { @@ -22491,7 +22706,7 @@ "brief": { "path": "docs/plans/2026-10-20_host-credentials.md", "anchor": "Machine grant row a: enrollment, store records and migration 3i-3j", - "blob": "6e130504f41b68fe7ebdd480881ca81de559941b" + "blob": "64451be5364441c3b1348b5b08b05c4958a33d00" }, "after": [ { @@ -22507,7 +22722,7 @@ "note": null, "blockedReason": null, "createdAt": "2026-10-20T23:24:50.778Z", - "updatedAt": "2026-10-20T23:24:50.778Z", + "updatedAt": "2026-10-20T23:42:21.559Z", "updatedBy": "sage" }, { @@ -22529,7 +22744,7 @@ "brief": { "path": "docs/plans/2026-10-20_host-credentials.md", "anchor": "Machine grant row b: raise binding, executor, reconcile and revoke", - "blob": "6e130504f41b68fe7ebdd480881ca81de559941b" + "blob": "64451be5364441c3b1348b5b08b05c4958a33d00" }, "after": [ { @@ -22545,7 +22760,318 @@ "note": null, "blockedReason": null, "createdAt": "2026-10-20T23:25:21.336Z", - "updatedAt": "2026-10-20T23:25:21.336Z", + "updatedAt": "2026-10-20T23:42:45.541Z", + "updatedBy": "sage" + }, + { + "id": 236, + "piece": "#436b Gitea grant path build: seat accounts and tokens through an approved grant, schema 3j-3k (design r5 1be535aca, due 10-27 at risk; live waits for Jason's section 8 approval and bootstrap step)", + "owner": "megavolt", + "issues": [ + 1742 + ], + "closes": [ + 1742 + ], + "state": "queued", + "previousState": null, + "required": false, + "requiredSince": null, + "gate": "Dewey approves the manifest. The bus, business and cli suites and every scripts/test-*.sh are green on Sage's gate. Section 9's mutants are killed, N9's restart test included. (sage)", + "gateOwner": "sage", + "brief": { + "path": "docs/plans/2026-10-20_agent-credentials.md", + "anchor": "Brief: #436b Gitea grant path, build (schema 3j-3k)", + "blob": "dca67d310e1b78ca57b84a37f27c8c40122f10cf" + }, + "after": [ + { + "id": 210, + "when": "done" + }, + { + "id": 234, + "when": "done" + } + ], + "reviewers": [ + "dewey" + ], + "review": null, + "claim": null, + "note": null, + "blockedReason": null, + "createdAt": "2026-10-20T23:39:42.567Z", + "updatedAt": "2026-10-20T23:39:42.567Z", + "updatedBy": "sage" + }, + { + "id": 237, + "piece": "Row 199 follow-up N1: one decision publishes once (publish-busy or #spent recheck)", + "owner": "megavolt", + "issues": [ + 1743 + ], + "closes": [ + 1743 + ], + "state": "done", + "previousState": null, + "required": false, + "requiredSince": null, + "gate": "Duckworth approves the manifest. The bus suite and every scripts/test-*.sh are green on Sage's gate, and the mutant is killed. (sage)", + "gateOwner": "sage", + "brief": { + "path": "docs/plans/2026-10-20_agent-credentials.md", + "anchor": "Brief: row 199 follow-up N1, one decision publishes once", + "blob": "dca67d310e1b78ca57b84a37f27c8c40122f10cf" + }, + "after": [ + { + "id": 199, + "when": "done" + } + ], + "reviewers": [ + "duckworth" + ], + "review": { + "rounds": [ + { + "n": 1, + "op": "megavolt-237-inreview-r1", + "by": "megavolt", + "at": "2026-10-21T00:32:40.876Z", + "issue": 1743, + "candidate": { + "kind": "manifest", + "digest": "bb777cb0801bf6a4016c16757a1dafd3068cab747d31a3aca10f3d789e4a8b7e", + "text": "d302287a3ddf0f21de5cc41a5dcd16eed03775c1bbd64f40b1f570f0a425ef81 agents/megavolt/work/queue-237/BUILD.md\n0605ed77d065bcd3ea21a1fd5323cf4195c9392a850ad68dc614a890365c52f7 packages/bus/src/broker.mjs\n2fe38679da42bf473fe4bf9d66593072b2bdc049f7f0bdb448577a3db28cdfe6 packages/bus/tests/publish.test.mjs\n91618b4d0e2c3bf7f8c9df0525f7ce2c769326045ec32977c876dda4a8b56d41 packages/cli/tests/publish-socket.test.mjs\n" + }, + "request": "comment", + "attempts": [ + { + "op": "megavolt-237-inreview-r1", + "by": "megavolt", + "at": "2026-10-21T00:32:40.876Z", + "state": "failed", + "comment": null, + "transport": { + "outcome": "failed", + "status": null, + "comment": null, + "detail": "pre-send: the credential or account check failed" + }, + "resolutions": [] + }, + { + "op": "sage-237-request-r1", + "by": "sage", + "at": "2026-10-21T00:34:01.289Z", + "state": "posted", + "comment": 29809, + "transport": { + "outcome": "posted", + "status": 201, + "comment": 29809, + "detail": "created" + }, + "resolutions": [] + } + ], + "duplicateRisk": false, + "receipts": [ + { + "reviewer": "duckworth", + "op": "duckworth-r237-record-1", + "at": "2026-10-21T00:36:00.620Z", + "verdict": "approve", + "comment": 29810, + "candidate": "bb777cb0801bf6a4016c16757a1dafd3068cab747d31a3aca10f3d789e4a8b7e" + } + ] + } + ] + }, + "claim": null, + "note": "Landed d7d943199 on refactor (local, push pending), patch-id c5f4beb4 = e42415935, manifest bb777cb0 blobs checked. Sage gate 01:31-01:44Z on 816d48b03+4 paths: M1 killed (bus 1/13, cli 1/8), every package suite and scripts/test-*.sh green (bus 478, cli 564).", + "blockedReason": null, + "createdAt": "2026-10-20T23:40:07.451Z", + "updatedAt": "2026-10-21T01:45:57.887Z", + "updatedBy": "sage" + }, + { + "id": 238, + "piece": "row 200 follow-up N1: the sso-config hint carries --instance NAME (#1744)", + "owner": "launchpad", + "issues": [ + 1744 + ], + "closes": [ + 1744 + ], + "state": "in-review", + "previousState": null, + "required": false, + "requiredSince": null, + "gate": "Webby approves the manifest; stack-release.test.mjs whole, cli suite and every scripts/test-*.sh green on Sage's gate; the mutant killed", + "gateOwner": "sage", + "brief": { + "path": "docs/plans/2026-10-20_stack-release-sso.md", + "anchor": "Brief: row 200 follow-up N1, the sso-config hint names the instance", + "blob": "f09d84db67f9cba80acb8aa1bf8a228511c815f9" + }, + "after": [ + { + "id": 200, + "when": "done" + } + ], + "reviewers": [ + "webby" + ], + "review": { + "rounds": [ + { + "n": 1, + "op": "launchpad-238-inreview-1", + "by": "launchpad", + "at": "2026-10-21T01:20:00.295Z", + "issue": 1744, + "candidate": { + "kind": "manifest", + "digest": "7093c10e43be8d7b9b38a3d0d025c5e0f014befd77f17a9b70e6f2a06feacec4", + "text": "868dcf320abcd745aad33a15a3d2ae212902b4dd4f763f8d8fd23cca46c9da74 docs/TOOLS.md\nb169c6c0a8e6fe947669d3f4e161ff200d596fb0a7706ee4d3f81cd742e542ca packages/cli/tests/stack-release.test.mjs\n8b0193de39ac13c38e5c0e3e96df6d2204acb80c214f5c6d2eb240ae7bd3c33c scripts/stack-release.sh\n" + }, + "request": "comment", + "attempts": [ + { + "op": "launchpad-238-inreview-1", + "by": "launchpad", + "at": "2026-10-21T01:20:00.295Z", + "state": "failed", + "comment": null, + "transport": { + "outcome": "failed", + "status": null, + "comment": null, + "detail": "pre-send: the credential or account check failed" + }, + "resolutions": [] + }, + { + "op": "sage-238-request-1", + "by": "sage", + "at": "2026-10-21T01:21:30.395Z", + "state": "posted", + "comment": 29823, + "transport": { + "outcome": "posted", + "status": 201, + "comment": 29823, + "detail": "created" + }, + "resolutions": [] + } + ], + "duplicateRisk": false, + "receipts": [ + { + "reviewer": "webby", + "op": "webby-238-verdict-r1", + "at": "2026-10-21T01:32:25.084Z", + "verdict": "approve", + "comment": 29823, + "candidate": "7093c10e43be8d7b9b38a3d0d025c5e0f014befd77f17a9b70e6f2a06feacec4" + } + ] + } + ] + }, + "claim": { + "seat": "launchpad", + "op": "launchpad-238-claim" + }, + "note": null, + "blockedReason": null, + "createdAt": "2026-10-21T00:12:51.378Z", + "updatedAt": "2026-10-21T01:32:25.084Z", + "updatedBy": "webby" + }, + { + "id": 239, + "piece": "Row 194 follow-up: the credential revoke runs under the writer's lock, refusals after a revoke say so, and a stale-revision fire test (duckworth-0074, mos-1158)", + "owner": "honker", + "issues": [ + 1745 + ], + "closes": [ + 1745 + ], + "state": "queued", + "previousState": null, + "required": false, + "requiredSince": null, + "gate": "Duckworth approves the manifest. The bus, business, cli and webui suites and every scripts/test-*.sh are green on Sage's gate, and the mutants are killed. (sage)", + "gateOwner": "sage", + "brief": { + "path": "docs/plans/2026-10-20_agent-lifecycle.md", + "anchor": "Brief: row 194 follow-up, the revoke under the writer's lock and a fire test", + "blob": "3b3b3b2b938c7db0440eec92e2904974fbc56df7" + }, + "after": [ + { + "id": 194, + "when": "done" + } + ], + "reviewers": [ + "duckworth" + ], + "review": null, + "claim": null, + "note": null, + "blockedReason": null, + "createdAt": "2026-10-21T01:30:09.320Z", + "updatedAt": "2026-10-21T01:30:09.320Z", + "updatedBy": "sage" + }, + { + "id": 240, + "piece": "Installer I4: hostcheck, the bwrap profile check, pins and boot unit, from r6 B2 (MVP, Q187, Vikunja #432; split from I3)", + "owner": "darkwing", + "issues": [ + 1746 + ], + "closes": [ + 1746 + ], + "state": "queued", + "previousState": null, + "required": false, + "requiredSince": null, + "gate": "Filbert approves the manifest. The test file, the cli suite and every scripts/test-*.sh are green on Sage's gate, with the mutants killed. (sage)", + "gateOwner": "sage", + "brief": { + "path": "docs/plans/2026-10-20_installer-rows.md", + "anchor": "I4 hostcheck: the bwrap profile check, pins and boot unit", + "blob": "e61291bcf1c6e9f43f599ca94fe9c6eb0dce1383" + }, + "after": [ + { + "id": 233, + "when": "done" + } + ], + "reviewers": [ + "filbert" + ], + "review": null, + "claim": null, + "note": null, + "blockedReason": null, + "createdAt": "2026-10-21T01:39:04.213Z", + "updatedAt": "2026-10-21T01:39:04.213Z", "updatedBy": "sage" } ], @@ -89900,6 +90426,1688 @@ "receipt": "ok webby-200-verdict-r3 rev 2539 row 200 round 3 approve by webby (comment 29772)" }, "viewSha": "90f1f49ca1523a525ab9be55be555483fe6c0a27aca0eaf64b00ba06241e3c46" + }, + { + "rev": 2540, + "op": "duckworth-r199-record-1", + "verb": "review-record", + "args": { + "id": 199, + "verdict": "approve", + "comment": 29779, + "candidate": "35f900fdff846f8fc9c879d7ac74b97981d890c2c2fa110242b06f0ad2236bee" + }, + "by": "duckworth", + "at": "2026-10-20T23:36:51.397Z", + "semantics": 2, + "result": { + "row": 199, + "round": 1, + "verdict": "approve", + "receipt": "ok duckworth-r199-record-1 rev 2540 row 199 round 1 approve by duckworth (comment 29779)" + }, + "viewSha": "46be866cbb5d3c1cef9d4a8b82cc2964b5d0dc19a4a649c9684e7daeb185fb3a" + }, + { + "rev": 2541, + "op": "sage-222-repin-f6b4933f", + "verb": "set", + "args": { + "id": 222, + "field": "brief", + "value": "docs/plans/2026-10-20_case2-rows.md#C2-03a fetch-only sync", + "reason": null + }, + "by": "sage", + "at": "2026-10-20T23:37:57.059Z", + "semantics": 2, + "result": { + "row": 222, + "field": "brief", + "from": { + "path": "docs/plans/2026-10-20_case2-rows.md", + "anchor": "C2-03a fetch-only sync", + "blob": "f0097cfd68abe7919dd89737b1cbccc77e74a520" + }, + "to": { + "path": "docs/plans/2026-10-20_case2-rows.md", + "anchor": "C2-03a fetch-only sync", + "blob": "f6b4933f0f47c3389c594481a4f4f512dff699c2" + }, + "receipt": "ok sage-222-repin-f6b4933f rev 2541 row 222 brief: docs/plans/2026-10-20_case2-rows.md § C2-03a fetch-only sync @f0097cfd68ab→docs/plans/2026-10-20_case2-rows.md § C2-03a fetch-only sync @f6b4933f0f47" + }, + "viewSha": "9651d4895293e8b153a501aa1a065266af21a5dc9a1c1f805b6ef3e12a584ed8" + }, + { + "rev": 2542, + "op": "sage-add-436b-build-1742", + "verb": "add", + "args": { + "piece": "#436b Gitea grant path build: seat accounts and tokens through an approved grant, schema 3j-3k (design r5 1be535aca, due 10-27 at risk; live waits for Jason's section 8 approval and bootstrap step)", + "gate": "Dewey approves the manifest. The bus, business and cli suites and every scripts/test-*.sh are green on Sage's gate. Section 9's mutants are killed, N9's restart test included. (sage)", + "brief": "docs/plans/2026-10-20_agent-credentials.md#Brief: #436b Gitea grant path, build (schema 3j-3k)", + "issues": [ + 1742 + ], + "note": null, + "owner": "megavolt", + "gateOwner": "sage", + "after": [ + { + "id": 210, + "when": "done" + }, + { + "id": 234, + "when": "done" + } + ], + "reviewers": [ + "dewey" + ], + "required": null + }, + "by": "sage", + "at": "2026-10-20T23:39:42.567Z", + "semantics": 2, + "result": { + "row": 236, + "from": null, + "to": "queued", + "brief": { + "path": "docs/plans/2026-10-20_agent-credentials.md", + "anchor": "Brief: #436b Gitea grant path, build (schema 3j-3k)", + "blob": "dca67d310e1b78ca57b84a37f27c8c40122f10cf" + }, + "receipt": "ok sage-add-436b-build-1742 rev 2542 row 236 none→queued" + }, + "viewSha": "ab846c8dab263aaedf4fe13e15fc627da69097469887474e8812f1bcce072f81" + }, + { + "rev": 2543, + "op": "sage-add-199-n1-1743", + "verb": "add", + "args": { + "piece": "Row 199 follow-up N1: one decision publishes once (publish-busy or #spent recheck)", + "gate": "Duckworth approves the manifest. The bus suite and every scripts/test-*.sh are green on Sage's gate, and the mutant is killed. (sage)", + "brief": "docs/plans/2026-10-20_agent-credentials.md#Brief: row 199 follow-up N1, one decision publishes once", + "issues": [ + 1743 + ], + "note": null, + "owner": "megavolt", + "gateOwner": "sage", + "after": [ + { + "id": 199, + "when": "done" + } + ], + "reviewers": [ + "duckworth" + ], + "required": null + }, + "by": "sage", + "at": "2026-10-20T23:40:07.451Z", + "semantics": 2, + "result": { + "row": 237, + "from": null, + "to": "queued", + "brief": { + "path": "docs/plans/2026-10-20_agent-credentials.md", + "anchor": "Brief: row 199 follow-up N1, one decision publishes once", + "blob": "dca67d310e1b78ca57b84a37f27c8c40122f10cf" + }, + "receipt": "ok sage-add-199-n1-1743 rev 2543 row 237 none→queued" + }, + "viewSha": "d1d0bb81026b678cd64e09ef6386717cbb3657bea8873791ec3164255386ab0f" + }, + { + "rev": 2544, + "op": "sage-206-after-236", + "verb": "set", + "args": { + "id": 206, + "field": "after", + "value": [ + { + "id": 205, + "when": "done" + }, + { + "id": 234, + "when": "done" + }, + { + "id": 236, + "when": "done" + } + ], + "reason": null + }, + "by": "sage", + "at": "2026-10-20T23:40:38.303Z", + "semantics": 2, + "result": { + "row": 206, + "field": "after", + "from": [ + { + "id": 205, + "when": "done" + }, + { + "id": 234, + "when": "done" + } + ], + "to": [ + { + "id": 205, + "when": "done" + }, + { + "id": 234, + "when": "done" + }, + { + "id": 236, + "when": "done" + } + ], + "receipt": "ok sage-206-after-236 rev 2544 row 206 after: 205 done, 234 done→205 done, 234 done, 236 done" + }, + "viewSha": "18a39deb410669dd5d6f4419e6d94680d128191582e7e168f63c8be12268e3c5" + }, + { + "rev": 2545, + "op": "sage-206-brief-3l", + "verb": "set", + "args": { + "id": 206, + "field": "brief", + "value": "docs/plans/2026-10-20_human-users-build.md#Brief: 193b2, thread shares (schema 3l)", + "reason": null + }, + "by": "sage", + "at": "2026-10-20T23:41:04.157Z", + "semantics": 2, + "result": { + "row": 206, + "field": "brief", + "from": { + "path": "docs/plans/2026-10-20_human-users-build.md", + "anchor": "Brief: 193b2, thread shares (schema 3k)", + "blob": "1ce884c7ccbe9f5d374f6e20c66c00e951735e13" + }, + "to": { + "path": "docs/plans/2026-10-20_human-users-build.md", + "anchor": "Brief: 193b2, thread shares (schema 3l)", + "blob": "a73e1bba0957e39f8a998efb7df69a36e3fb2914" + }, + "receipt": "ok sage-206-brief-3l rev 2545 row 206 brief: docs/plans/2026-10-20_human-users-build.md § Brief: 193b2, thread shares (schema 3k) @1ce884c7ccbe→docs/plans/2026-10-20_human-users-build.md § Brief: 193b2, thread shares (schema 3l) @a73e1bba0957" + }, + "viewSha": "ba64d48703afd7f15dd1eec10fa7f8bb8dc71f9a44dc1c688a02a1b10b2cae94" + }, + { + "rev": 2546, + "op": "sage-206-piece-3l", + "verb": "set", + "args": { + "id": 206, + "field": "piece", + "value": "193b2: thread shares, schema 3k-3l after the #436b build (#1691; live needs a --migrate window with Jason)", + "reason": null + }, + "by": "sage", + "at": "2026-10-20T23:41:30.826Z", + "semantics": 2, + "result": { + "row": 206, + "field": "piece", + "from": "193b2: thread shares, schema 3j-3k after machine grant row a (#1691; live needs a --migrate window with Jason)", + "to": "193b2: thread shares, schema 3k-3l after the #436b build (#1691; live needs a --migrate window with Jason)", + "receipt": "ok sage-206-piece-3l rev 2546 row 206 piece: 193b2: thread shares, schema 3j-3k after machine grant row a (#1691; live needs a --migrate window with Jason)→193b2: thread shares, schema 3k-3l after the #436b build (#1691; live needs a --migrate window with Jason)" + }, + "viewSha": "a7e8b34c03542bc3e3bb9618e1b5b5d2e9d8e4fbd30100435a3dbbb517cbb0bb" + }, + { + "rev": 2547, + "op": "sage-194-repin-199n2", + "verb": "set", + "args": { + "id": 194, + "field": "brief", + "value": "docs/plans/2026-10-20_agent-lifecycle.md#Brief: agent lifecycle from the Console and the CLI, with a per-agent hire/fire veto", + "reason": null + }, + "by": "sage", + "at": "2026-10-20T23:41:56.748Z", + "semantics": 2, + "result": { + "row": 194, + "field": "brief", + "from": { + "path": "docs/plans/2026-10-20_agent-lifecycle.md", + "anchor": "Brief: agent lifecycle from the Console and the CLI, with a per-agent hire/fire veto", + "blob": "a907109409ac3e1d21fb9693f4be40af5f4aa11e" + }, + "to": { + "path": "docs/plans/2026-10-20_agent-lifecycle.md", + "anchor": "Brief: agent lifecycle from the Console and the CLI, with a per-agent hire/fire veto", + "blob": "845583e4ca67b9040998fde74c0fd722b8675326" + }, + "receipt": "ok sage-194-repin-199n2 rev 2547 row 194 brief: docs/plans/2026-10-20_agent-lifecycle.md § Brief: agent lifecycle from the Console and the CLI, with a per-agent hire/fire veto @a907109409ac→docs/plans/2026-10-20_agent-lifecycle.md § Brief: agent lifecycle from the Console and the CLI, with a per-agent hire/fire veto @845583e4ca67" + }, + "viewSha": "c46f11367a0b1472667349491374f02ef256b8804829a6a8e809ab4a26a60dff" + }, + { + "rev": 2548, + "op": "sage-234-repin-436b-order", + "verb": "set", + "args": { + "id": 234, + "field": "brief", + "value": "docs/plans/2026-10-20_host-credentials.md#Machine grant row a: enrollment, store records and migration 3i-3j", + "reason": null + }, + "by": "sage", + "at": "2026-10-20T23:42:21.559Z", + "semantics": 2, + "result": { + "row": 234, + "field": "brief", + "from": { + "path": "docs/plans/2026-10-20_host-credentials.md", + "anchor": "Machine grant row a: enrollment, store records and migration 3i-3j", + "blob": "6e130504f41b68fe7ebdd480881ca81de559941b" + }, + "to": { + "path": "docs/plans/2026-10-20_host-credentials.md", + "anchor": "Machine grant row a: enrollment, store records and migration 3i-3j", + "blob": "64451be5364441c3b1348b5b08b05c4958a33d00" + }, + "receipt": "ok sage-234-repin-436b-order rev 2548 row 234 brief: docs/plans/2026-10-20_host-credentials.md § Machine grant row a: enrollment, store records and migration 3i-3j @6e130504f41b→docs/plans/2026-10-20_host-credentials.md § Machine grant row a: enrollment, store records and migration 3i-3j @64451be53644" + }, + "viewSha": "4e2ea5ae4e18f25cbc0c0787c84434f396af352751e87e5429b48a980e0263bb" + }, + { + "rev": 2549, + "op": "sage-235-repin-436b-order", + "verb": "set", + "args": { + "id": 235, + "field": "brief", + "value": "docs/plans/2026-10-20_host-credentials.md#Machine grant row b: raise binding, executor, reconcile and revoke", + "reason": null + }, + "by": "sage", + "at": "2026-10-20T23:42:45.541Z", + "semantics": 2, + "result": { + "row": 235, + "field": "brief", + "from": { + "path": "docs/plans/2026-10-20_host-credentials.md", + "anchor": "Machine grant row b: raise binding, executor, reconcile and revoke", + "blob": "6e130504f41b68fe7ebdd480881ca81de559941b" + }, + "to": { + "path": "docs/plans/2026-10-20_host-credentials.md", + "anchor": "Machine grant row b: raise binding, executor, reconcile and revoke", + "blob": "64451be5364441c3b1348b5b08b05c4958a33d00" + }, + "receipt": "ok sage-235-repin-436b-order rev 2549 row 235 brief: docs/plans/2026-10-20_host-credentials.md § Machine grant row b: raise binding, executor, reconcile and revoke @6e130504f41b→docs/plans/2026-10-20_host-credentials.md § Machine grant row b: raise binding, executor, reconcile and revoke @64451be53644" + }, + "viewSha": "547bd0b74e3bd702f82568ddb9cc704e5c359899cebd66200b19673cd046b310" + }, + { + "rev": 2550, + "op": "gosalyn-230-inreview-r1", + "verb": "move", + "args": { + "id": 230, + "to": "in-review", + "reason": null, + "candidate": "/mnt/storage/scratch/gosalyn-r230/manifest.txt", + "evidence": null, + "issue": null + }, + "by": "gosalyn", + "at": "2026-10-20T23:44:09.854Z", + "semantics": 2, + "result": { + "row": 230, + "from": "in-progress", + "to": "in-review", + "round": 1, + "issue": 1732, + "candidate": { + "kind": "manifest", + "digest": "8e9d1ef0c9c84e798a568921825804c5f6ae1e77ea96777bd1ddd782a2be830a", + "text": "9e5c9f4ef93cff0a525af61aa7f6d998d0ecb5d0eeae9415252ec52052931b2d agents/gosalyn/work/queue-230/BUILD.md\n4cbb1fbd5738db240f2ca6178712d885ba95a8ee675f0221926ada19b6194d8f packages/cli/README.md\nc99ed2be62938a5d37c4b4779ec1da2b8a466e8941051d7b55cdbc2c84a4e82b packages/cli/tests/case2-unit.test.mjs\n83e3dc96a34763be7f4681e4ad71e12f4bb91a3ddfd84e644a9da9ea2b1d0f31 scripts/case2-precheck.sh\n2856a770113debd0330e7fb44dfe242420cd2034643b3a5b3474066a99b73b4b scripts/case2-unit.sh\n" + }, + "receipt": "ok gosalyn-230-inreview-r1 rev 2550 row 230 in-progress→in-review round 1 on #1732; request gosalyn-230-inreview-r1 requesting" + }, + "viewSha": "3a2c079ff4284b27e12b82a63c0cf41f2f8f0b79dd5af5dd510a09a82e664d5c" + }, + { + "rev": 2551, + "op": "gosalyn-230-inreview-r1.outcome", + "verb": "review-outcome", + "args": { + "id": 230, + "attempt": "gosalyn-230-inreview-r1", + "outcome": "failed", + "status": null, + "comment": null, + "detail": "pre-send: the credential or account check failed" + }, + "by": "gosalyn", + "at": "2026-10-20T23:44:33.229Z", + "semantics": 2, + "result": { + "row": 230, + "round": 1, + "attempt": "gosalyn-230-inreview-r1", + "state": "failed", + "receipt": "ok gosalyn-230-inreview-r1.outcome rev 2551 row 230 round 1 request gosalyn-230-inreview-r1 failed" + }, + "viewSha": "a62a9b38909f66e9fe6631d7949d6a106414e5aa64503811e0e7ebf615611515" + }, + { + "rev": 2552, + "op": "sage-222-repin-askpass", + "verb": "set", + "args": { + "id": 222, + "field": "brief", + "value": "docs/plans/2026-10-20_case2-rows.md#C2-03a fetch-only sync", + "reason": null + }, + "by": "sage", + "at": "2026-10-20T23:44:57.790Z", + "semantics": 2, + "result": { + "row": 222, + "field": "brief", + "from": { + "path": "docs/plans/2026-10-20_case2-rows.md", + "anchor": "C2-03a fetch-only sync", + "blob": "f6b4933f0f47c3389c594481a4f4f512dff699c2" + }, + "to": { + "path": "docs/plans/2026-10-20_case2-rows.md", + "anchor": "C2-03a fetch-only sync", + "blob": "16847e94ae1768881711318fe81cbb5e6c66b971" + }, + "receipt": "ok sage-222-repin-askpass rev 2552 row 222 brief: docs/plans/2026-10-20_case2-rows.md § C2-03a fetch-only sync @f6b4933f0f47→docs/plans/2026-10-20_case2-rows.md § C2-03a fetch-only sync @16847e94ae17" + }, + "viewSha": "6857f43afb9474d6a81edb3a17fab03bed4a297cc1096de254bd445f2e6ef3bd" + }, + { + "rev": 2553, + "op": "sage-230-request-r1-jarvis", + "verb": "review-request", + "args": { + "id": 230 + }, + "by": "sage", + "at": "2026-10-20T23:45:31.612Z", + "semantics": 2, + "result": { + "row": 230, + "round": 1, + "attempt": "sage-230-request-r1-jarvis", + "state": "requesting", + "receipt": "ok sage-230-request-r1-jarvis rev 2553 row 230 round 1 request sage-230-request-r1-jarvis requesting" + }, + "viewSha": "cd60b618e233d5b01a85d21933a13ed7303d357814e4972037953535a31a024b" + }, + { + "rev": 2554, + "op": "sage-230-request-r1-jarvis.outcome", + "verb": "review-outcome", + "args": { + "id": 230, + "attempt": "sage-230-request-r1-jarvis", + "outcome": "posted", + "status": 201, + "comment": 29784, + "detail": "created" + }, + "by": "sage", + "at": "2026-10-20T23:45:58.501Z", + "semantics": 2, + "result": { + "row": 230, + "round": 1, + "attempt": "sage-230-request-r1-jarvis", + "state": "posted", + "receipt": "ok sage-230-request-r1-jarvis.outcome rev 2554 row 230 round 1 request sage-230-request-r1-jarvis posted comment 29784" + }, + "viewSha": "3a0b88743322b2e27ad04e655628cb3c94ca515c9ac9878733874c95d44c233b" + }, + { + "rev": 2555, + "op": "megavolt-222-start-1", + "verb": "move", + "args": { + "id": 222, + "to": "in-progress", + "reason": null, + "candidate": null, + "evidence": null, + "issue": null + }, + "by": "megavolt", + "at": "2026-10-20T23:47:12.082Z", + "semantics": 2, + "result": { + "row": 222, + "from": "briefed", + "to": "in-progress", + "round": null, + "issue": null, + "candidate": null, + "receipt": "ok megavolt-222-start-1 rev 2555 row 222 briefed→in-progress" + }, + "viewSha": "caa000276e59b4ce9f24df8e566daa4640fffc631e30751c733701270f786f27" + }, + { + "rev": 2556, + "op": "sage-194-repin-item8", + "verb": "set", + "args": { + "id": 194, + "field": "brief", + "value": "docs/plans/2026-10-20_agent-lifecycle.md#Brief: agent lifecycle from the Console and the CLI, with a per-agent hire/fire veto", + "reason": null + }, + "by": "sage", + "at": "2026-10-20T23:52:06.945Z", + "semantics": 2, + "result": { + "row": 194, + "field": "brief", + "from": { + "path": "docs/plans/2026-10-20_agent-lifecycle.md", + "anchor": "Brief: agent lifecycle from the Console and the CLI, with a per-agent hire/fire veto", + "blob": "845583e4ca67b9040998fde74c0fd722b8675326" + }, + "to": { + "path": "docs/plans/2026-10-20_agent-lifecycle.md", + "anchor": "Brief: agent lifecycle from the Console and the CLI, with a per-agent hire/fire veto", + "blob": "8fe6ddeddaf07439505f14e91b925e880fee1090" + }, + "receipt": "ok sage-194-repin-item8 rev 2556 row 194 brief: docs/plans/2026-10-20_agent-lifecycle.md § Brief: agent lifecycle from the Console and the CLI, with a per-agent hire/fire veto @845583e4ca67→docs/plans/2026-10-20_agent-lifecycle.md § Brief: agent lifecycle from the Console and the CLI, with a per-agent hire/fire veto @8fe6ddeddaf0" + }, + "viewSha": "b99eec9b3e1d9d3b9d2c6302a85f498c5a504cce1c855f80c553a5a7ba929717" + }, + { + "rev": 2557, + "op": "webby-230-verdict-r1", + "verb": "review-record", + "args": { + "id": 230, + "verdict": "changes", + "comment": 29784, + "candidate": "8e9d1ef0c9c84e798a568921825804c5f6ae1e77ea96777bd1ddd782a2be830a" + }, + "by": "webby", + "at": "2026-10-20T23:52:49.435Z", + "semantics": 2, + "result": { + "row": 230, + "round": 1, + "verdict": "changes", + "receipt": "ok webby-230-verdict-r1 rev 2557 row 230 round 1 changes by webby (comment 29784)" + }, + "viewSha": "419f79c93e21c89b660df42629a670d00491a8a17d0b5799f56c4ba6cff94c26" + }, + { + "rev": 2558, + "op": "gosalyn-230-inprogress-r2", + "verb": "move", + "args": { + "id": 230, + "to": "in-progress", + "reason": null, + "candidate": null, + "evidence": null, + "issue": null + }, + "by": "gosalyn", + "at": "2026-10-20T23:55:24.290Z", + "semantics": 2, + "result": { + "row": 230, + "from": "in-review", + "to": "in-progress", + "round": null, + "issue": null, + "candidate": null, + "receipt": "ok gosalyn-230-inprogress-r2 rev 2558 row 230 in-review→in-progress" + }, + "viewSha": "6dc140e00e0a1d8c34ed24f9aee2399cc60c78d54be707d8d66380356742b776" + }, + { + "rev": 2559, + "op": "gosalyn-230-inreview-r2", + "verb": "move", + "args": { + "id": 230, + "to": "in-review", + "reason": null, + "candidate": "/mnt/storage/scratch/gosalyn-r230r2/manifest.txt", + "evidence": null, + "issue": null + }, + "by": "gosalyn", + "at": "2026-10-20T23:55:49.557Z", + "semantics": 2, + "result": { + "row": 230, + "from": "in-progress", + "to": "in-review", + "round": 2, + "issue": 1732, + "candidate": { + "kind": "manifest", + "digest": "fbb0d7e42c67507519e03b5a2354fb82e760908fcfeecdf1f6c1da3e836a81da", + "text": "56b1450c933bf0f50c6c6307c1adc297b78331695704dc2931b28c7d2a0a6a0b agents/gosalyn/work/queue-230/BUILD.md\n064d3678a43e5615dde5f9637989bc1a418f975e63e5b345f7aca920893c45f4 packages/cli/README.md\nce2146433a02240131ff98d0eace8e14b7d7d0fc8673a0447e7dee64ebe51281 packages/cli/tests/case2-unit.test.mjs\n83e3dc96a34763be7f4681e4ad71e12f4bb91a3ddfd84e644a9da9ea2b1d0f31 scripts/case2-precheck.sh\nc56fe5493482f288901ae6bbb37bc04521dea34d62aea24d0306288b74982dd5 scripts/case2-unit.sh\n" + }, + "receipt": "ok gosalyn-230-inreview-r2 rev 2559 row 230 in-progress→in-review round 2 on #1732; request gosalyn-230-inreview-r2 requesting" + }, + "viewSha": "108d2bde2035b843cff466b5367ec19608f354aa0a25bda196fea4d51e22feb1" + }, + { + "rev": 2560, + "op": "gosalyn-230-inreview-r2.outcome", + "verb": "review-outcome", + "args": { + "id": 230, + "attempt": "gosalyn-230-inreview-r2", + "outcome": "failed", + "status": null, + "comment": null, + "detail": "pre-send: the credential or account check failed" + }, + "by": "gosalyn", + "at": "2026-10-20T23:56:14.042Z", + "semantics": 2, + "result": { + "row": 230, + "round": 2, + "attempt": "gosalyn-230-inreview-r2", + "state": "failed", + "receipt": "ok gosalyn-230-inreview-r2.outcome rev 2560 row 230 round 2 request gosalyn-230-inreview-r2 failed" + }, + "viewSha": "d07a8754ec4e9f145bc9897e7b00b1f8da0726e77517cc18c8d8366e335f9d54" + }, + { + "rev": 2561, + "op": "sage-230-request-r2-jarvis", + "verb": "review-request", + "args": { + "id": 230 + }, + "by": "sage", + "at": "2026-10-20T23:57:19.962Z", + "semantics": 2, + "result": { + "row": 230, + "round": 2, + "attempt": "sage-230-request-r2-jarvis", + "state": "requesting", + "receipt": "ok sage-230-request-r2-jarvis rev 2561 row 230 round 2 request sage-230-request-r2-jarvis requesting" + }, + "viewSha": "df4d2f7570fe2f44859a64d1c83a75bec5569418fcfe41cca07a911fd56163e1" + }, + { + "rev": 2562, + "op": "sage-230-request-r2-jarvis.outcome", + "verb": "review-outcome", + "args": { + "id": 230, + "attempt": "sage-230-request-r2-jarvis", + "outcome": "posted", + "status": 201, + "comment": 29788, + "detail": "created" + }, + "by": "sage", + "at": "2026-10-20T23:57:45.741Z", + "semantics": 2, + "result": { + "row": 230, + "round": 2, + "attempt": "sage-230-request-r2-jarvis", + "state": "posted", + "receipt": "ok sage-230-request-r2-jarvis.outcome rev 2562 row 230 round 2 request sage-230-request-r2-jarvis posted comment 29788" + }, + "viewSha": "91e4b23d535eeca6b8d9ff4bdc6a482c3acffb42190f3256c3f39f077228cd5a" + }, + { + "rev": 2563, + "op": "webby-230-verdict-r2", + "verb": "review-record", + "args": { + "id": 230, + "verdict": "approve", + "comment": 29788, + "candidate": "fbb0d7e42c67507519e03b5a2354fb82e760908fcfeecdf1f6c1da3e836a81da" + }, + "by": "webby", + "at": "2026-10-20T23:59:10.059Z", + "semantics": 2, + "result": { + "row": 230, + "round": 2, + "verdict": "approve", + "receipt": "ok webby-230-verdict-r2 rev 2563 row 230 round 2 approve by webby (comment 29788)" + }, + "viewSha": "bfe183820ceccca8c1b95ad32ffe1fee22bd671d44d1916ef6b1af5d8f89611e" + }, + { + "rev": 2564, + "op": "sage-200-landing-note", + "verb": "note", + "args": { + "id": 200, + "text": "Landed 9e1085816 on refactor (base 722136772), pushed. Patch-id 7ebfa6a5 matches git diff 00d4cc1f6..9df40878f on the 3 manifest paths. Manifest b3ead55c, Webby approve r3 29772. Gate on 9df40878f: packages 2675/0, scripts 429/0. Mutants 13/14, M12 ruled equivalent (sage-1446)." + }, + "by": "sage", + "at": "2026-10-21T00:10:20.700Z", + "semantics": 2, + "result": { + "row": 200, + "field": "note", + "receipt": "ok sage-200-landing-note rev 2564 row 200 note" + }, + "viewSha": "7a47cde58e9e8e0317e1eddc7d812753e053eb7f929c8bdd12aeb66649f138dd" + }, + { + "rev": 2565, + "op": "sage-200-done", + "verb": "move", + "args": { + "id": 200, + "to": "done", + "reason": null, + "candidate": null, + "evidence": null, + "issue": null + }, + "by": "sage", + "at": "2026-10-21T00:10:44.860Z", + "semantics": 2, + "result": { + "row": 200, + "from": "in-review", + "to": "done", + "round": 3, + "issue": null, + "candidate": null, + "receipt": "ok sage-200-done rev 2565 row 200 in-review→done round 3" + }, + "viewSha": "8f473b28b1f5c66ff776d0027a1e3516d5fbcb0672889fa46ee9f5ae9705e60e" + }, + { + "rev": 2566, + "op": "sage-1744-add", + "verb": "add", + "args": { + "piece": "row 200 follow-up N1: the sso-config hint carries --instance NAME (#1744)", + "gate": "Webby approves the manifest; stack-release.test.mjs whole, cli suite and every scripts/test-*.sh green on Sage's gate; the mutant killed", + "brief": "docs/plans/2026-10-20_stack-release-sso.md#Brief: row 200 follow-up N1, the sso-config hint names the instance", + "issues": [ + 1744 + ], + "note": null, + "owner": "launchpad", + "gateOwner": "sage", + "after": [ + { + "id": 200, + "when": "done" + } + ], + "reviewers": [ + "webby" + ], + "required": null + }, + "by": "sage", + "at": "2026-10-21T00:12:51.378Z", + "semantics": 2, + "result": { + "row": 238, + "from": null, + "to": "queued", + "brief": { + "path": "docs/plans/2026-10-20_stack-release-sso.md", + "anchor": "Brief: row 200 follow-up N1, the sso-config hint names the instance", + "blob": "f09d84db67f9cba80acb8aa1bf8a228511c815f9" + }, + "receipt": "ok sage-1744-add rev 2566 row 238 none→queued" + }, + "viewSha": "4c3cf4feea8c75cc798c951bf176ff74a544e654faf5d84a4e62fc72bb54fda5" + }, + { + "rev": 2567, + "op": "sage-238-brief", + "verb": "move", + "args": { + "id": 238, + "to": "briefed", + "reason": null, + "candidate": null, + "evidence": null, + "issue": null + }, + "by": "sage", + "at": "2026-10-21T00:13:22.431Z", + "semantics": 2, + "result": { + "row": 238, + "from": "queued", + "to": "briefed", + "round": null, + "issue": null, + "candidate": null, + "receipt": "ok sage-238-brief rev 2567 row 238 queued→briefed" + }, + "viewSha": "00c1085db8a5a2202bc8125d67be166d22384fc7e011ae7181c6567213a59dad" + }, + { + "rev": 2568, + "op": "sage-217-repin-c203a", + "verb": "set", + "args": { + "id": 217, + "field": "brief", + "value": "docs/plans/2026-10-20_case2-rows.md#C2-06 the cited-reply guard, the page store and the three notices", + "reason": null + }, + "by": "sage", + "at": "2026-10-21T00:13:47.216Z", + "semantics": 2, + "result": { + "row": 217, + "field": "brief", + "from": { + "path": "docs/plans/2026-10-20_case2-rows.md", + "anchor": "C2-06 the cited-reply guard, the page store and the three notices", + "blob": "f0097cfd68abe7919dd89737b1cbccc77e74a520" + }, + "to": { + "path": "docs/plans/2026-10-20_case2-rows.md", + "anchor": "C2-06 the cited-reply guard, the page store and the three notices", + "blob": "16847e94ae1768881711318fe81cbb5e6c66b971" + }, + "receipt": "ok sage-217-repin-c203a rev 2568 row 217 brief: docs/plans/2026-10-20_case2-rows.md § C2-06 the cited-reply guard, the page store and the three notices @f0097cfd68ab→docs/plans/2026-10-20_case2-rows.md § C2-06 the cited-reply guard, the page store and the three notices @16847e94ae17" + }, + "viewSha": "4c6f6bbf758115378f84763393bc38ef77edcc3d002f652381d310d487d96846" + }, + { + "rev": 2569, + "op": "sage-216-repin-c203a", + "verb": "set", + "args": { + "id": 216, + "field": "brief", + "value": "docs/plans/2026-10-20_case2-rows.md#C2-05a lookup index and queries", + "reason": null + }, + "by": "sage", + "at": "2026-10-21T00:14:12.904Z", + "semantics": 2, + "result": { + "row": 216, + "field": "brief", + "from": { + "path": "docs/plans/2026-10-20_case2-rows.md", + "anchor": "C2-05a lookup index and queries", + "blob": "f0097cfd68abe7919dd89737b1cbccc77e74a520" + }, + "to": { + "path": "docs/plans/2026-10-20_case2-rows.md", + "anchor": "C2-05a lookup index and queries", + "blob": "16847e94ae1768881711318fe81cbb5e6c66b971" + }, + "receipt": "ok sage-216-repin-c203a rev 2569 row 216 brief: docs/plans/2026-10-20_case2-rows.md § C2-05a lookup index and queries @f0097cfd68ab→docs/plans/2026-10-20_case2-rows.md § C2-05a lookup index and queries @16847e94ae17" + }, + "viewSha": "fc73ed40114396dbbec83bd5e4fbca7eab0338d472747271f820d2086554093d" + }, + { + "rev": 2570, + "op": "launchpad-238-claim", + "verb": "move", + "args": { + "id": 238, + "to": "in-progress", + "reason": null, + "candidate": null, + "evidence": null, + "issue": null + }, + "by": "launchpad", + "at": "2026-10-21T00:15:07.625Z", + "semantics": 2, + "result": { + "row": 238, + "from": "briefed", + "to": "in-progress", + "round": null, + "issue": null, + "candidate": null, + "receipt": "ok launchpad-238-claim rev 2570 row 238 briefed→in-progress" + }, + "viewSha": "c80ae47c08855e178a26e23f6f88515c784735246b0cad2e8cbe6445ae1556eb" + }, + { + "rev": 2571, + "op": "sage-199-landing-note", + "verb": "note", + "args": { + "id": 199, + "text": "Landed cb5fdb064 on refactor (base 76134dfde), pushed. Patch-id 828fa21a matches git diff 00d4cc1f6..86963d281 on the 37 manifest paths; docs/TOOLS.md 3-way with row 200, hunk unchanged. Manifest 35f900fd, Duckworth approve r1 29779. Gate on 9e1085816+patch: packages 2735/0, scripts 429/0; landed blobs equal the gate tree." + }, + "by": "sage", + "at": "2026-10-21T00:23:38.426Z", + "semantics": 2, + "result": { + "row": 199, + "field": "note", + "receipt": "ok sage-199-landing-note rev 2571 row 199 note" + }, + "viewSha": "f56daf0b39115e485c49aec12b0d9971f200022494f283b423245bc376f6f7f4" + }, + { + "rev": 2572, + "op": "sage-199-done", + "verb": "move", + "args": { + "id": 199, + "to": "done", + "reason": null, + "candidate": null, + "evidence": null, + "issue": null + }, + "by": "sage", + "at": "2026-10-21T00:24:02.457Z", + "semantics": 2, + "result": { + "row": 199, + "from": "in-review", + "to": "done", + "round": 1, + "issue": null, + "candidate": null, + "receipt": "ok sage-199-done rev 2572 row 199 in-review→done round 1" + }, + "viewSha": "cd957edd3ea53af5ff540982f832ceb2d93dbe3d29965332362a25595e81d3eb" + }, + { + "rev": 2573, + "op": "sage-237-briefed", + "verb": "move", + "args": { + "id": 237, + "to": "briefed", + "reason": null, + "candidate": null, + "evidence": null, + "issue": null + }, + "by": "sage", + "at": "2026-10-21T00:28:51.324Z", + "semantics": 2, + "result": { + "row": 237, + "from": "queued", + "to": "briefed", + "round": null, + "issue": null, + "candidate": null, + "receipt": "ok sage-237-briefed rev 2573 row 237 queued→briefed" + }, + "viewSha": "e021bded7cc57424fb9cb725fe642c62c8380d610ccfe11ececf3e591c8ac8bd" + }, + { + "rev": 2574, + "op": "megavolt-237-start-1", + "verb": "move", + "args": { + "id": 237, + "to": "in-progress", + "reason": null, + "candidate": null, + "evidence": null, + "issue": null + }, + "by": "megavolt", + "at": "2026-10-21T00:30:32.685Z", + "semantics": 2, + "result": { + "row": 237, + "from": "briefed", + "to": "in-progress", + "round": null, + "issue": null, + "candidate": null, + "receipt": "ok megavolt-237-start-1 rev 2574 row 237 briefed→in-progress" + }, + "viewSha": "78bb7f49286f3104663ec1e8a9b66d3fde7b52c63c6dc401d43e0e07336fa07d" + }, + { + "rev": 2575, + "op": "sage-194-note-1605", + "verb": "note", + "args": { + "id": 194, + "text": "sage-1605 (honker-0048): create writes the UTC create day for rotateBy and expires; checkCredentialRef skips dates only for a store ref with no token file (test plus mutant). fixedRole compares kind and path, not dates (reload test plus mutant). Delete accepts store-only credentials without a tracker bot. Fire on a file or env ref revokes in memory and names the services left. Duckworth gives a scoped check of the row 199 code hunks before Webby's approve; no landing without it." + }, + "by": "sage", + "at": "2026-10-21T00:31:21.596Z", + "semantics": 2, + "result": { + "row": 194, + "field": "note", + "receipt": "ok sage-194-note-1605 rev 2575 row 194 note" + }, + "viewSha": "ab22031801d51457bcb1af32ca524b0bbc1ff4bc178d629cc2fc9cf8f7102918" + }, + { + "rev": 2576, + "op": "megavolt-237-inreview-r1", + "verb": "move", + "args": { + "id": 237, + "to": "in-review", + "reason": null, + "candidate": "/mnt/storage/scratch/megavolt-r237/manifest-r1-e42415935.txt", + "evidence": null, + "issue": null + }, + "by": "megavolt", + "at": "2026-10-21T00:32:40.876Z", + "semantics": 2, + "result": { + "row": 237, + "from": "in-progress", + "to": "in-review", + "round": 1, + "issue": 1743, + "candidate": { + "kind": "manifest", + "digest": "bb777cb0801bf6a4016c16757a1dafd3068cab747d31a3aca10f3d789e4a8b7e", + "text": "d302287a3ddf0f21de5cc41a5dcd16eed03775c1bbd64f40b1f570f0a425ef81 agents/megavolt/work/queue-237/BUILD.md\n0605ed77d065bcd3ea21a1fd5323cf4195c9392a850ad68dc614a890365c52f7 packages/bus/src/broker.mjs\n2fe38679da42bf473fe4bf9d66593072b2bdc049f7f0bdb448577a3db28cdfe6 packages/bus/tests/publish.test.mjs\n91618b4d0e2c3bf7f8c9df0525f7ce2c769326045ec32977c876dda4a8b56d41 packages/cli/tests/publish-socket.test.mjs\n" + }, + "receipt": "ok megavolt-237-inreview-r1 rev 2576 row 237 in-progress→in-review round 1 on #1743; request megavolt-237-inreview-r1 requesting" + }, + "viewSha": "f7b8eb62253e9f66a71b68913c0939d97c0f4d67d47905dda68fddcbe45610fc" + }, + { + "rev": 2577, + "op": "megavolt-237-inreview-r1.outcome", + "verb": "review-outcome", + "args": { + "id": 237, + "attempt": "megavolt-237-inreview-r1", + "outcome": "failed", + "status": null, + "comment": null, + "detail": "pre-send: the credential or account check failed" + }, + "by": "megavolt", + "at": "2026-10-21T00:33:08.105Z", + "semantics": 2, + "result": { + "row": 237, + "round": 1, + "attempt": "megavolt-237-inreview-r1", + "state": "failed", + "receipt": "ok megavolt-237-inreview-r1.outcome rev 2577 row 237 round 1 request megavolt-237-inreview-r1 failed" + }, + "viewSha": "b706098a9e18a6fafcf7fbe48e46a9e275792b46b4317465e10e629ba874c35a" + }, + { + "rev": 2578, + "op": "sage-237-request-r1", + "verb": "review-request", + "args": { + "id": 237 + }, + "by": "sage", + "at": "2026-10-21T00:34:01.289Z", + "semantics": 2, + "result": { + "row": 237, + "round": 1, + "attempt": "sage-237-request-r1", + "state": "requesting", + "receipt": "ok sage-237-request-r1 rev 2578 row 237 round 1 request sage-237-request-r1 requesting" + }, + "viewSha": "88597ba3bfb3ff421f33c45d6cc40db278f5d4327cef7f498844fa3606cc2ee8" + }, + { + "rev": 2579, + "op": "sage-237-request-r1.outcome", + "verb": "review-outcome", + "args": { + "id": 237, + "attempt": "sage-237-request-r1", + "outcome": "posted", + "status": 201, + "comment": 29809, + "detail": "created" + }, + "by": "sage", + "at": "2026-10-21T00:34:29.493Z", + "semantics": 2, + "result": { + "row": 237, + "round": 1, + "attempt": "sage-237-request-r1", + "state": "posted", + "receipt": "ok sage-237-request-r1.outcome rev 2579 row 237 round 1 request sage-237-request-r1 posted comment 29809" + }, + "viewSha": "a52d25755d40ab82ba92b998829ebcecd3151e9d9d9dfc3afb2ddef2598334ef" + }, + { + "rev": 2580, + "op": "sage-194-note-1610", + "verb": "note", + "args": { + "id": 194, + "text": "sage-1610 (honker-0049): a human add takes tracker {bot, botId}, required for a vikunja definition, refused otherwise, checked by checkBot and bot uniqueness; CLI and API only. Delete accepts a tracker bot when all credentials are store refs, and its result names the bot for removal by hand in Vikunja. No Vikunja account is created (Q188 untouched). Mutants: drop the requirement, refuse the bot on delete, skip checkBot on add." + }, + "by": "sage", + "at": "2026-10-21T00:35:16.354Z", + "semantics": 2, + "result": { + "row": 194, + "field": "note", + "receipt": "ok sage-194-note-1610 rev 2580 row 194 note" + }, + "viewSha": "23140eab419671b26e1d9417166b866eea8e215fb56ef1b959ff023db41a8c47" + }, + { + "rev": 2581, + "op": "duckworth-r237-record-1", + "verb": "review-record", + "args": { + "id": 237, + "verdict": "approve", + "comment": 29810, + "candidate": "bb777cb0801bf6a4016c16757a1dafd3068cab747d31a3aca10f3d789e4a8b7e" + }, + "by": "duckworth", + "at": "2026-10-21T00:36:00.620Z", + "semantics": 2, + "result": { + "row": 237, + "round": 1, + "verdict": "approve", + "receipt": "ok duckworth-r237-record-1 rev 2581 row 237 round 1 approve by duckworth (comment 29810)" + }, + "viewSha": "d6fa8910c401c833f7308b493d1c0cc0dc2231aa0e14435128f645793e7657a8" + }, + { + "rev": 2582, + "op": "sage-230-landing-note", + "verb": "note", + "args": { + "id": 230, + "text": "Landed c8bc5cf4c on refactor (base 390ea5261), pushed. Patch-id f4b49eb68997 matches git diff 722136772..96768766c on the 5 manifest paths (manifest fbb0d7e42c67, Webby approve r2 rev 2563). packages/cli/README.md 3-way with row 199, hunks apart. Gosalyn gate on 96768766c: cli 541/0, scripts 429/0, mutants 10/10. Merged tree check: case2-unit 30/0, host 42/0." + }, + "by": "sage", + "at": "2026-10-21T00:36:49.311Z", + "semantics": 2, + "result": { + "row": 230, + "field": "note", + "receipt": "ok sage-230-landing-note rev 2582 row 230 note" + }, + "viewSha": "3bfe59d3164cb3e1d356283e8a1dbc68214a3cbe403d0fc26862e613b8b99b5a" + }, + { + "rev": 2583, + "op": "sage-230-done", + "verb": "move", + "args": { + "id": 230, + "to": "done", + "reason": null, + "candidate": null, + "evidence": null, + "issue": null + }, + "by": "sage", + "at": "2026-10-21T00:37:15.829Z", + "semantics": 2, + "result": { + "row": 230, + "from": "in-review", + "to": "done", + "round": 2, + "issue": null, + "candidate": null, + "receipt": "ok sage-230-done rev 2583 row 230 in-review→done round 2" + }, + "viewSha": "6f346936453da3644a90078683e32015b9845daf8cfd3c7ee1f026ea8eff3134" + }, + { + "rev": 2584, + "op": "sage-210-gate-b1", + "verb": "note", + "args": { + "id": 210, + "text": "Sage gate 2026-10-21 on 92fac9904 (c8bc5cf4c + 3cf63efb4): mutants 52/53, M22b equivalent (no await broker.mjs:1741 to credentials.mjs:358; coverage moves to row 235, gizmoduck-0088). Gate STOP pkg-bus 497/1: B1 broker.mjs:7 imports business/src/hosts.mjs (not in RUNNER_FILES, nor errors.mjs/util.mjs); project-runtime.test.mjs:12 pin fails; seat sandbox.test.mjs 6/4 vs base 10/0. r4 needed (sage-1617)." + }, + "by": "sage", + "at": "2026-10-21T01:02:26.213Z", + "semantics": 2, + "result": { + "row": 210, + "field": "note", + "receipt": "ok sage-210-gate-b1 rev 2584 row 210 note" + }, + "viewSha": "e252f7e6e6a139e430497c432b974ad7ea8f0754e96c1c89d413820107460dfa" + }, + { + "rev": 2585, + "op": "gizmoduck-210-start-4", + "verb": "move", + "args": { + "id": 210, + "to": "in-progress", + "reason": null, + "candidate": null, + "evidence": null, + "issue": null + }, + "by": "gizmoduck", + "at": "2026-10-21T01:14:03.807Z", + "semantics": 2, + "result": { + "row": 210, + "from": "in-review", + "to": "in-progress", + "round": null, + "issue": null, + "candidate": null, + "receipt": "ok gizmoduck-210-start-4 rev 2585 row 210 in-review→in-progress" + }, + "viewSha": "09f0ee943133acb33212aff6845d4bc46ff97d1e0c56e0e09b7c2d200717c59a" + }, + { + "rev": 2586, + "op": "gizmoduck-210-inreview-2", + "verb": "move", + "args": { + "id": 210, + "to": "in-review", + "reason": null, + "candidate": "/mnt/storage/scratch/gizmo-210c/agents/gizmoduck/work/queue-210/candidate-manifest.sha256", + "evidence": null, + "issue": null + }, + "by": "gizmoduck", + "at": "2026-10-21T01:14:40.777Z", + "semantics": 2, + "result": { + "row": 210, + "from": "in-progress", + "to": "in-review", + "round": 2, + "issue": 1707, + "candidate": { + "kind": "manifest", + "digest": "0ed4d5350a163003b0a0662e83e99f7e7f75ab000f31035159e676d5577bb3ef", + "text": "8fa8a321933e75315babe21f49ba434a61dbeffbfcfded6933ebfaf6c73d3aee packages/business/src/business.mjs\ne72f0898b5f373c5a76d4c41fbe504904f55e18b183768260a6423510625683e packages/business/src/credentials.mjs\n6339bf85c946a41a5cbe8e94d51b264e298a9d16900e5dfe46b01b803e76ca41 packages/business/src/hosts.mjs\nab5f7dc38a2ca5978b02d257068f4f82706db847cf0d6400f7cd548f8f6abe43 packages/business/src/resolve.mjs\n636916b9868b3a3e7f962894cbfa1e91629b5713a568f55f4716f942dbcd4910 packages/business/src/role.mjs\n77c432e879f8611a077feb2fb7c9b67e826ade558e41dcf01433fc2cdab2e0fa packages/business/src/vocabulary.mjs\n6a2c9b371fc9236bb0730ed108cbd770e9487b8ba733dbebccd11891ccba6f17 packages/business/tests/hard-waits.test.mjs\n9ef8b8be3c290f072e7c943b176a1ec688fda03fab4ba114d31213caf2216e42 packages/business/tests/hosts.test.mjs\nfcaf50728e4599e5f10875f01c22b03610044b634c999830ef9684ef74cc62f3 packages/bus/src/broker.mjs\nff927da3cf22fbacc9ace77b2e8b803bffc2953fb58cf7ab4e5f6f6493732996 packages/bus/src/business.mjs\n27d2ae155a2919788d7ad02da10a7056c23f5b71228e9af406b1b8aa0de55efc packages/bus/src/credentials.mjs\n86b4321dd436b97e389101873197dbab95b3d2202e5ef7da712c4978f4f9159f packages/bus/src/credential-verbs.mjs\n5d227edec1d33cb58607fae4e43784a0decc8aaf55cad6bc4318cec4eda6fbea packages/bus/src/host-run.mjs\n3721190045a4f114d67c9c7d32a448cf3d5dbbc6d4554dbc348e9f6fd428b5dc packages/bus/src/runtime.mjs\n3ef86e4f0b77cc513bdd58ec7eb984ceb02af6625f39d1be5254f2c0b0e99734 packages/bus/src/server.mjs\n58e45b7a0d0118be8827bd71d1a427ff84d0ecac46c22adece36dec36e6d521d packages/bus/tests/hard-waits.test.mjs\n28ad8ce2a29722768820ad916273f2100eb79281255c6a3689964cd24564237c packages/bus/tests/host-run.test.mjs\nbe4e1eb88b689e8e4f859de75218af151feae8dce2c1409b726cb9c3dcd5ffe9 packages/bus/tests/spec-fixtures.mjs\n19755f7bb002d8455990c5dc7c458e64aeb95252ec7231a2ed2fd9c638fcb511 packages/cli/src/credentials.mjs\n152a3e57f7241db45bf8262fbf86ee029cf3b98f0d75503990abd46ac151a4b2 packages/cli/tests/credentials.test.mjs\nbdf88833cdb0c5ef76acec50c3c983b55c6053987a5c427cbc400ebd5f3c7110 packages/bus/tests/project-runtime.test.mjs\ne222a5fc3c117f62dbc854ef7397f7b5589e6f5d52e45398db0deeb43c53a9d5 roles/chief-of-staff.md\nd1016f8c34ee04601ab751c7514a20dfbeec0359d46dba8f94c44538dcc16133 roles/pm.md\n" + }, + "receipt": "ok gizmoduck-210-inreview-2 rev 2586 row 210 in-progress→in-review round 2 on #1707; request gizmoduck-210-inreview-2 requesting" + }, + "viewSha": "dde3631787b72e22faaefe9220906d703e858ab520921563260d590621f35660" + }, + { + "rev": 2587, + "op": "gizmoduck-210-inreview-2.outcome", + "verb": "review-outcome", + "args": { + "id": 210, + "attempt": "gizmoduck-210-inreview-2", + "outcome": "failed", + "status": null, + "comment": null, + "detail": "pre-send: the credential or account check failed" + }, + "by": "gizmoduck", + "at": "2026-10-21T01:15:11.972Z", + "semantics": 2, + "result": { + "row": 210, + "round": 2, + "attempt": "gizmoduck-210-inreview-2", + "state": "failed", + "receipt": "ok gizmoduck-210-inreview-2.outcome rev 2587 row 210 round 2 request gizmoduck-210-inreview-2 failed" + }, + "viewSha": "e735284b07d5fc83227f58401cc56efb88582bf7d6ea68b35382eaf38cb633c4" + }, + { + "rev": 2588, + "op": "sage-210-request-2", + "verb": "review-request", + "args": { + "id": 210 + }, + "by": "sage", + "at": "2026-10-21T01:16:22.926Z", + "semantics": 2, + "result": { + "row": 210, + "round": 2, + "attempt": "sage-210-request-2", + "state": "requesting", + "receipt": "ok sage-210-request-2 rev 2588 row 210 round 2 request sage-210-request-2 requesting" + }, + "viewSha": "1c39e54cd0716eaeb7f3e3f3aa08d63a0ff2a24ad60bdc704807abb35e7547d3" + }, + { + "rev": 2589, + "op": "sage-210-request-2.outcome", + "verb": "review-outcome", + "args": { + "id": 210, + "attempt": "sage-210-request-2", + "outcome": "posted", + "status": 201, + "comment": 29819, + "detail": "created" + }, + "by": "sage", + "at": "2026-10-21T01:16:53.558Z", + "semantics": 2, + "result": { + "row": 210, + "round": 2, + "attempt": "sage-210-request-2", + "state": "posted", + "receipt": "ok sage-210-request-2.outcome rev 2589 row 210 round 2 request sage-210-request-2 posted comment 29819" + }, + "viewSha": "f3371f952188c059f98e3de89d4219fc7923636f452f0085eb9130a0f4d0c22e" + }, + { + "rev": 2590, + "op": "launchpad-238-inreview-1", + "verb": "move", + "args": { + "id": 238, + "to": "in-review", + "reason": null, + "candidate": "/mnt/storage/scratch/launchpad-r238/wt/agents/launchpad/work/queue-238/candidate-manifest.sha256", + "evidence": null, + "issue": null + }, + "by": "launchpad", + "at": "2026-10-21T01:20:00.295Z", + "semantics": 2, + "result": { + "row": 238, + "from": "in-progress", + "to": "in-review", + "round": 1, + "issue": 1744, + "candidate": { + "kind": "manifest", + "digest": "7093c10e43be8d7b9b38a3d0d025c5e0f014befd77f17a9b70e6f2a06feacec4", + "text": "868dcf320abcd745aad33a15a3d2ae212902b4dd4f763f8d8fd23cca46c9da74 docs/TOOLS.md\nb169c6c0a8e6fe947669d3f4e161ff200d596fb0a7706ee4d3f81cd742e542ca packages/cli/tests/stack-release.test.mjs\n8b0193de39ac13c38e5c0e3e96df6d2204acb80c214f5c6d2eb240ae7bd3c33c scripts/stack-release.sh\n" + }, + "receipt": "ok launchpad-238-inreview-1 rev 2590 row 238 in-progress→in-review round 1 on #1744; request launchpad-238-inreview-1 requesting" + }, + "viewSha": "a9f1ddd1538c3bb725e21c5f92fa33afb15594707f28e6923deb8eae9b27be17" + }, + { + "rev": 2591, + "op": "launchpad-238-inreview-1.outcome", + "verb": "review-outcome", + "args": { + "id": 238, + "attempt": "launchpad-238-inreview-1", + "outcome": "failed", + "status": null, + "comment": null, + "detail": "pre-send: the credential or account check failed" + }, + "by": "launchpad", + "at": "2026-10-21T01:20:29.363Z", + "semantics": 2, + "result": { + "row": 238, + "round": 1, + "attempt": "launchpad-238-inreview-1", + "state": "failed", + "receipt": "ok launchpad-238-inreview-1.outcome rev 2591 row 238 round 1 request launchpad-238-inreview-1 failed" + }, + "viewSha": "6e328412b1aa34bb7de58ed0bc432d7d91cd3e5ab8ec39f769e5b04d516c7a92" + }, + { + "rev": 2592, + "op": "duckworth-r210-record-2", + "verb": "review-record", + "args": { + "id": 210, + "verdict": "approve", + "comment": 29821, + "candidate": "0ed4d5350a163003b0a0662e83e99f7e7f75ab000f31035159e676d5577bb3ef" + }, + "by": "duckworth", + "at": "2026-10-21T01:20:56.136Z", + "semantics": 2, + "result": { + "row": 210, + "round": 2, + "verdict": "approve", + "receipt": "ok duckworth-r210-record-2 rev 2592 row 210 round 2 approve by duckworth (comment 29821)" + }, + "viewSha": "034c7f14a44a0b8cf9d2269b92022e238a1898dac3f0d5f3755028847c265181" + }, + { + "rev": 2593, + "op": "sage-238-request-1", + "verb": "review-request", + "args": { + "id": 238 + }, + "by": "sage", + "at": "2026-10-21T01:21:30.395Z", + "semantics": 2, + "result": { + "row": 238, + "round": 1, + "attempt": "sage-238-request-1", + "state": "requesting", + "receipt": "ok sage-238-request-1 rev 2593 row 238 round 1 request sage-238-request-1 requesting" + }, + "viewSha": "dbebc4fece088a0754e99a3b05be74280d79d29f84efa3fc89945c11dbbdff61" + }, + { + "rev": 2594, + "op": "sage-238-request-1.outcome", + "verb": "review-outcome", + "args": { + "id": 238, + "attempt": "sage-238-request-1", + "outcome": "posted", + "status": 201, + "comment": 29823, + "detail": "created" + }, + "by": "sage", + "at": "2026-10-21T01:21:58.488Z", + "semantics": 2, + "result": { + "row": 238, + "round": 1, + "attempt": "sage-238-request-1", + "state": "posted", + "receipt": "ok sage-238-request-1.outcome rev 2594 row 238 round 1 request sage-238-request-1 posted comment 29823" + }, + "viewSha": "baafe6c2f44ec4a808d836cee93bbbe933164964383ea7d6f868944bdaf7fc2a" + }, + { + "rev": 2595, + "op": "darkwing-232-inreview-r1", + "verb": "move", + "args": { + "id": 232, + "to": "in-review", + "reason": null, + "candidate": "/home/jwoltje/darkwing-scratch/r232/candidate-manifest-84f1a91e6.sha256", + "evidence": null, + "issue": null + }, + "by": "darkwing", + "at": "2026-10-21T01:26:26.610Z", + "semantics": 2, + "result": { + "row": 232, + "from": "in-progress", + "to": "in-review", + "round": 1, + "issue": 1734, + "candidate": { + "kind": "manifest", + "digest": "7a3b4ea133cc4ef7573cd05338a937523991c8aa838782bf525781f6b76bd9c4", + "text": "3d88cf8c4d285c0477f5fbe7c36fb0724f8626ff1622d760a0cba6e15784dd8d agents/darkwing/work/queue-232/BUILD.md\nea516da8a6ccd5fa13e371bce83066f7fc7a6bffe545f155b7d7b076682dd40d docs/TOOLS.md\nc189cfcdeaff591194a6d5824c61432ea6f43607d8374d806b824d36ac549390 packages/cli/README.md\n681ed534f6ee6188ba5b628e882b17b5a4d9e748d6a649be622a0777a2ee0e87 packages/cli/tests/stack-copy.test.mjs\ned72964534f2289996672b08bc3b75539ec891a62688cedf9ea18a436b7df103 packages/cli/tests/stack-release-external.test.mjs\n896399deb3d0dd07651f965a53ede6717629dcb574876d418184a02ba093ada0 packages/cli/tests/stack-release-fixture.mjs\n533a91460f249bf0f9458fe4269795b8438ab209be7c4e6290e1ea0e29dd98d8 packages/cli/tests/stack-release.test.mjs\nc111fb361bac4fda2d2fdb4c1304e818c79995653ec36f346e44a863846cedc3 scripts/stack-copy.sh\n61db23e9c1b49878f6edfa0c07805d770c20103f06947f0bfcf72da6568f94c7 scripts/stack-release.sh\n" + }, + "receipt": "ok darkwing-232-inreview-r1 rev 2595 row 232 in-progress→in-review round 1 on #1734; request darkwing-232-inreview-r1 requesting" + }, + "viewSha": "0cb61e7d3932bcf692ee9547eb2f06352782dc4d45350e6d53d3ddbe8667edb8" + }, + { + "rev": 2596, + "op": "darkwing-232-inreview-r1.outcome", + "verb": "review-outcome", + "args": { + "id": 232, + "attempt": "darkwing-232-inreview-r1", + "outcome": "posted", + "status": 201, + "comment": 29825, + "detail": "created" + }, + "by": "darkwing", + "at": "2026-10-21T01:26:53.824Z", + "semantics": 2, + "result": { + "row": 232, + "round": 1, + "attempt": "darkwing-232-inreview-r1", + "state": "posted", + "receipt": "ok darkwing-232-inreview-r1.outcome rev 2596 row 232 round 1 request darkwing-232-inreview-r1 posted comment 29825" + }, + "viewSha": "1ad03f795e864395eb3e2a2e653f39fae06ae5e06bda2023a7647000e826226d" + }, + { + "rev": 2597, + "op": "sage-1745-add", + "verb": "add", + "args": { + "piece": "Row 194 follow-up: the credential revoke runs under the writer's lock, refusals after a revoke say so, and a stale-revision fire test (duckworth-0074, mos-1158)", + "gate": "Duckworth approves the manifest. The bus, business, cli and webui suites and every scripts/test-*.sh are green on Sage's gate, and the mutants are killed. (sage)", + "brief": "docs/plans/2026-10-20_agent-lifecycle.md#Brief: row 194 follow-up, the revoke under the writer's lock and a fire test", + "issues": [ + 1745 + ], + "note": null, + "owner": "honker", + "gateOwner": "sage", + "after": [ + { + "id": 194, + "when": "done" + } + ], + "reviewers": [ + "duckworth" + ], + "required": null + }, + "by": "sage", + "at": "2026-10-21T01:30:09.320Z", + "semantics": 2, + "result": { + "row": 239, + "from": null, + "to": "queued", + "brief": { + "path": "docs/plans/2026-10-20_agent-lifecycle.md", + "anchor": "Brief: row 194 follow-up, the revoke under the writer's lock and a fire test", + "blob": "3b3b3b2b938c7db0440eec92e2904974fbc56df7" + }, + "receipt": "ok sage-1745-add rev 2597 row 239 none→queued" + }, + "viewSha": "6065400ee01f667e421b6a8fec7c4c74c65ec47287a66af4bc319f4844cbef3d" + }, + { + "rev": 2598, + "op": "sage-233-briefed", + "verb": "move", + "args": { + "id": 233, + "to": "briefed", + "reason": null, + "candidate": null, + "evidence": null, + "issue": null + }, + "by": "sage", + "at": "2026-10-21T01:30:41.511Z", + "semantics": 2, + "result": { + "row": 233, + "from": "queued", + "to": "briefed", + "round": null, + "issue": null, + "candidate": null, + "receipt": "ok sage-233-briefed rev 2598 row 233 queued→briefed" + }, + "viewSha": "37717bda0b310196cbc6f590ad869ee0166b268e46a9a9466efc801954026766" + }, + { + "rev": 2599, + "op": "webby-238-verdict-r1", + "verb": "review-record", + "args": { + "id": 238, + "verdict": "approve", + "comment": 29823, + "candidate": "7093c10e43be8d7b9b38a3d0d025c5e0f014befd77f17a9b70e6f2a06feacec4" + }, + "by": "webby", + "at": "2026-10-21T01:32:25.084Z", + "semantics": 2, + "result": { + "row": 238, + "round": 1, + "verdict": "approve", + "receipt": "ok webby-238-verdict-r1 rev 2599 row 238 round 1 approve by webby (comment 29823)" + }, + "viewSha": "a911e0371eb7bcd61bbabd71cdfce1be78a0cfad452a1c36491810fb3125a84e" + }, + { + "rev": 2600, + "op": "filbert-232-record-r1", + "verb": "review-record", + "args": { + "id": 232, + "verdict": "approve", + "comment": 29829, + "candidate": "7a3b4ea133cc4ef7573cd05338a937523991c8aa838782bf525781f6b76bd9c4" + }, + "by": "filbert", + "at": "2026-10-21T01:33:53.697Z", + "semantics": 2, + "result": { + "row": 232, + "round": 1, + "verdict": "approve", + "receipt": "ok filbert-232-record-r1 rev 2600 row 232 round 1 approve by filbert (comment 29829)" + }, + "viewSha": "3588c6d07e4c41dd0b84bcc8c7d17a2f7b4262d908c5cd2d20a31cff4a202def" + }, + { + "rev": 2601, + "op": "sage-1746-add", + "verb": "add", + "args": { + "piece": "Installer I4: hostcheck, the bwrap profile check, pins and boot unit, from r6 B2 (MVP, Q187, Vikunja #432; split from I3)", + "gate": "Filbert approves the manifest. The test file, the cli suite and every scripts/test-*.sh are green on Sage's gate, with the mutants killed. (sage)", + "brief": "docs/plans/2026-10-20_installer-rows.md#I4 hostcheck: the bwrap profile check, pins and boot unit", + "issues": [ + 1746 + ], + "note": null, + "owner": "darkwing", + "gateOwner": "sage", + "after": [ + { + "id": 233, + "when": "done" + } + ], + "reviewers": [ + "filbert" + ], + "required": null + }, + "by": "sage", + "at": "2026-10-21T01:39:04.213Z", + "semantics": 2, + "result": { + "row": 240, + "from": null, + "to": "queued", + "brief": { + "path": "docs/plans/2026-10-20_installer-rows.md", + "anchor": "I4 hostcheck: the bwrap profile check, pins and boot unit", + "blob": "e61291bcf1c6e9f43f599ca94fe9c6eb0dce1383" + }, + "receipt": "ok sage-1746-add rev 2601 row 240 none→queued" + }, + "viewSha": "c0e675067151a8b71602b106d1741b6046e70f1903a9e0c4e467b5edc5414bb7" + }, + { + "rev": 2602, + "op": "sage-237-note-land", + "verb": "note", + "args": { + "id": 237, + "text": "Landed d7d943199 on refactor (local, push pending), patch-id c5f4beb4 = e42415935, manifest bb777cb0 blobs checked. Sage gate 01:31-01:44Z on 816d48b03+4 paths: M1 killed (bus 1/13, cli 1/8), every package suite and scripts/test-*.sh green (bus 478, cli 564)." + }, + "by": "sage", + "at": "2026-10-21T01:45:34.365Z", + "semantics": 2, + "result": { + "row": 237, + "field": "note", + "receipt": "ok sage-237-note-land rev 2602 row 237 note" + }, + "viewSha": "933cd626c18391915cd2d5e4287c714f15319f9755daeb4cc0cf865a1026ffa0" + }, + { + "rev": 2603, + "op": "sage-237-done", + "verb": "move", + "args": { + "id": 237, + "to": "done", + "reason": null, + "candidate": null, + "evidence": null, + "issue": null + }, + "by": "sage", + "at": "2026-10-21T01:45:57.887Z", + "semantics": 2, + "result": { + "row": 237, + "from": "in-review", + "to": "done", + "round": 1, + "issue": null, + "candidate": null, + "receipt": "ok sage-237-done rev 2603 row 237 in-review→done round 1" + }, + "viewSha": "6d9823b5944aef42d6c6e841b4a402e464217a61a061339b91c3422197173e34" } ] }