Coder grant stale text after row 73 #1573

Closed
opened 2026-10-11 23:20:15 +00:00 by jarvis · 4 comments
Contributor

Follow-up to row 73 (#1567). Rocko's packet (agents/rocko/work/queue-73/BUILD.md) names three places outside row 73's files that still show the coder's task.reassign grant after it lands:

  • packages/business/README.md, the version 2 example
  • packages/tasks/README.md, lines 193-196
  • packages/tasks/live/run.mjs, line 32 (not run by any suite)

Brief: docs/plans/2026-10-11_claude-pin-and-coder-grant.md, section "Coder grant stale text".

Owner Rocko, after row 73. Reviewer Dewey. Sage posts the review request as jarvis.

Follow-up to row 73 (#1567). Rocko's packet (`agents/rocko/work/queue-73/BUILD.md`) names three places outside row 73's files that still show the coder's `task.reassign` grant after it lands: - `packages/business/README.md`, the version 2 example - `packages/tasks/README.md`, lines 193-196 - `packages/tasks/live/run.mjs`, line 32 (not run by any suite) Brief: `docs/plans/2026-10-11_claude-pin-and-coder-grant.md`, section "Coder grant stale text". Owner Rocko, after row 73. Reviewer Dewey. Sage posts the review request as jarvis.
Author
Contributor

Review request for queue row 79, round 1: Coder grant stale text: row 73 packet follow-up

  • Owner: rocko
  • Reviewers: dewey
  • Gate: dewey approves on the issue naming the candidate manifest; tasks and business node suites and every scripts/test-*.sh green on Sage's gate rerun (sage)
  • Brief: docs/plans/2026-10-11_claude-pin-and-coder-grant.md § Coder grant stale text @4784ee65f940
  • Candidate: manifest 16b12387dce8d21f5cc5311b9fc44e9692867b983c4f561f779610cc61e2b349

The manifest:

8c9b45ad7bad35832a6a7f101fb1b21b07f8f95dbbc33216eab4bfc98fc5fc8c  agents/rocko/work/queue-79/mutants.sh
4e16bb3470adbfdd47ab7bcf1222baea01f8880895e8399b0cd398cfbeb8cab2  packages/business/README.md
c704e4bdf2d941198de041475c49973add743ea66fa60081fd36758b498dc2c3  packages/harness/tests/tools.test.mjs
3feefaa95a6864b2fda00cd2ca235e03989b3be0af1d3415f5f597c83d2a632f  packages/tasks/live/run.mjs
d2382d780c5532562af1a35a51e199a83ed911b18ca90dcbbc7540a7b14dc70a  packages/tasks/README.md

Check a tree against it with scripts/mosaic queue review verify-commit 79 REF.

Post your verdict as a comment here, then record it:

scripts/mosaic queue review record 79 --verdict approve|changes --comment COMMENT_ID --candidate 16b12387dce8d21f5cc5311b9fc44e9692867b983c4f561f779610cc61e2b349 --op OP --by SEAT
<!-- mosaic-queue-op: sage-79-review-request-1 --> <!-- mosaic-queue-round: row=79 round=1 candidate=16b12387dce8d21f5cc5311b9fc44e9692867b983c4f561f779610cc61e2b349 --> Review request for queue row 79, round 1: Coder grant stale text: row 73 packet follow-up - Owner: rocko - Reviewers: dewey - Gate: dewey approves on the issue naming the candidate manifest; tasks and business node suites and every scripts/test-*.sh green on Sage's gate rerun (sage) - Brief: `docs/plans/2026-10-11_claude-pin-and-coder-grant.md` § Coder grant stale text @4784ee65f940 - Candidate: manifest `16b12387dce8d21f5cc5311b9fc44e9692867b983c4f561f779610cc61e2b349` The manifest: ```text 8c9b45ad7bad35832a6a7f101fb1b21b07f8f95dbbc33216eab4bfc98fc5fc8c agents/rocko/work/queue-79/mutants.sh 4e16bb3470adbfdd47ab7bcf1222baea01f8880895e8399b0cd398cfbeb8cab2 packages/business/README.md c704e4bdf2d941198de041475c49973add743ea66fa60081fd36758b498dc2c3 packages/harness/tests/tools.test.mjs 3feefaa95a6864b2fda00cd2ca235e03989b3be0af1d3415f5f597c83d2a632f packages/tasks/live/run.mjs d2382d780c5532562af1a35a51e199a83ed911b18ca90dcbbc7540a7b14dc70a packages/tasks/README.md ``` Check a tree against it with `scripts/mosaic queue review verify-commit 79 REF`. Post your verdict as a comment here, then record it: ``` scripts/mosaic queue review record 79 --verdict approve|changes --comment COMMENT_ID --candidate 16b12387dce8d21f5cc5311b9fc44e9692867b983c4f561f779610cc61e2b349 --op OP --by SEAT ```
Member

Row 79 round 1 review (Dewey): approve

Candidate: agents/rocko/work/queue-79/candidate-manifest.sha256, sha256 16b12387dce8d21f5cc5311b9fc44e9692867b983c4f561f779610cc61e2b349, packet 1735f27d, request comment 27561. I applied build.patch with git apply --index to a detached worktree of 331d037c. All 5 manifest entries check OK, before and after my runs. Between 331d037c and the current refactor HEAD (729da72b) the only change on those paths is mutants.sh arriving with the packet commit, and its digest is the same as the manifest's. The four package paths haven't drifted.

The diff stays within the four spans the brief owns plus the packet. I have no blocking items.

What ships, checked against the brief

  • Business README example. The version 2 example now matches roles/coder.json field for field, including "crossRole": ["task.scope.change"].
  • Tasks README paragraph. It says the coder holds no task.reassign grant (row 73), and that the writer check refuses a non-pm task.reassign before authority is looked at. That matches the code: packages/tasks/src/verbs.mjs:120 fails field-writer for a non-pm caller on any PM_VERBS verb, and broker.authorize doesn't run until line 136.
  • live/run.mjs coder line. It is identical to the coder entry in packages/tasks/tests/world.mjs (lines 43-46). The pm and reviewer lines still differ from world.mjs (world.mjs adds role.launch for the pm and review.verdict for the reviewer). As BUILD.md says, they are outside the one owned line.
  • Harness test. One deepEqual pins the whole untyped list ["task.update.assigned", "git.push.working", "review.request", "task.scope.change"], as my row 73 N1 asked.
  • Grep table. I recounted git grep -c 'task\.reassign' on the candidate index outside agents/. All 23 paths and their counts match BUILD.md's table, and v1/ has no hits. None of the remaining hits shows the coder holding the grant.
  • Row 73 correction. BUILD.md records it as the brief asks, and the row 73 file is left unchanged.

Mutation run

I ran Rocko's mutants.sh (whose untyped-within-only is my row 73 mutant) on the candidate and on a clean worktree of the base, with output outside both trees:

Mutant Base Candidate
untyped-within-only SURVIVED killed
untyped-cross-first SURVIVED killed
untyped-keeps-typed killed killed

Each kill comes from "a coder gets no launch, no resolve_decision, and no task tools without a tracker". Both worktrees were clean afterwards. This matches BUILD.md.

Suites

The three node suites the gate names ran one after another in the review worktree, with TMPDIR in my scratch, from 2026-10-12T01:15:48Z to 01:16:10Z:

Suite Result
packages/tasks 71 pass, 0 fail
packages/business 60 pass, 0 fail
packages/harness 59 pass, 0 fail

The gate also names every scripts/test-*.sh. I left those to Sage's gate rerun, since this row changes no code they run.

Evidence (local to my scratch, ~/dewey-scratch/r79/): run.sh and out/ (run.txt, mut-cand/, mut-base/, suites/).

## Row 79 round 1 review (Dewey): approve Candidate: `agents/rocko/work/queue-79/candidate-manifest.sha256`, sha256 `16b12387dce8d21f5cc5311b9fc44e9692867b983c4f561f779610cc61e2b349`, packet `1735f27d`, request comment 27561. I applied `build.patch` with `git apply --index` to a detached worktree of `331d037c`. All 5 manifest entries check OK, before and after my runs. Between `331d037c` and the current `refactor` HEAD (`729da72b`) the only change on those paths is `mutants.sh` arriving with the packet commit, and its digest is the same as the manifest's. The four package paths haven't drifted. The diff stays within the four spans the brief owns plus the packet. I have no blocking items. ### What ships, checked against the brief - **Business README example.** The version 2 example now matches `roles/coder.json` field for field, including `"crossRole": ["task.scope.change"]`. - **Tasks README paragraph.** It says the coder holds no `task.reassign` grant (row 73), and that the writer check refuses a non-pm `task.reassign` before authority is looked at. That matches the code: `packages/tasks/src/verbs.mjs:120` fails `field-writer` for a non-pm caller on any `PM_VERBS` verb, and `broker.authorize` doesn't run until line 136. - **`live/run.mjs` coder line.** It is identical to the coder entry in `packages/tasks/tests/world.mjs` (lines 43-46). The pm and reviewer lines still differ from `world.mjs` (`world.mjs` adds `role.launch` for the pm and `review.verdict` for the reviewer). As BUILD.md says, they are outside the one owned line. - **Harness test.** One `deepEqual` pins the whole untyped list `["task.update.assigned", "git.push.working", "review.request", "task.scope.change"]`, as my row 73 N1 asked. - **Grep table.** I recounted `git grep -c 'task\.reassign'` on the candidate index outside `agents/`. All 23 paths and their counts match BUILD.md's table, and `v1/` has no hits. None of the remaining hits shows the coder holding the grant. - **Row 73 correction.** BUILD.md records it as the brief asks, and the row 73 file is left unchanged. ### Mutation run I ran Rocko's `mutants.sh` (whose `untyped-within-only` is my row 73 mutant) on the candidate and on a clean worktree of the base, with output outside both trees: | Mutant | Base | Candidate | |---|---|---| | `untyped-within-only` | SURVIVED | killed | | `untyped-cross-first` | SURVIVED | killed | | `untyped-keeps-typed` | killed | killed | Each kill comes from "a coder gets no launch, no resolve_decision, and no task tools without a tracker". Both worktrees were clean afterwards. This matches BUILD.md. ### Suites The three node suites the gate names ran one after another in the review worktree, with `TMPDIR` in my scratch, from 2026-10-12T01:15:48Z to 01:16:10Z: | Suite | Result | |---|---| | `packages/tasks` | 71 pass, 0 fail | | `packages/business` | 60 pass, 0 fail | | `packages/harness` | 59 pass, 0 fail | The gate also names every `scripts/test-*.sh`. I left those to Sage's gate rerun, since this row changes no code they run. Evidence (local to my scratch, `~/dewey-scratch/r79/`): `run.sh` and `out/` (`run.txt`, `mut-cand/`, `mut-base/`, `suites/`).
Author
Contributor

Landed in 3780e05d on refactor (row 79 done, queue rev 598).

  • Author Rocko. Round 1 approved by Dewey (27611) on candidate manifest 16b12387dce8d21f5cc5311b9fc44e9692867b983c4f561f779610cc61e2b349, base 331d037c. No drift on its 4 package paths to the landing.
  • Sage gate rerun on the candidate, 2026-10-12T01:18:24Z to 01:23:27Z: tasks 71, business 60, harness 59; test-auth 15, test-conductor 17, test-config 24, test-discord 66, test-extension-package 18, test-foundation 44, test-queue 27, test-release 14, test-task 98 (Docker), all 0 failed.
  • Out of scope and recorded in the packet's BUILD.md: packages/tasks/live/run.mjs's pm line lacks role.launch and its reviewer line lacks review.verdict compared with world.mjs. The live run uses neither, so no follow-up row.
Landed in 3780e05d on refactor (row 79 done, queue rev 598). - Author Rocko. Round 1 approved by Dewey (27611) on candidate manifest 16b12387dce8d21f5cc5311b9fc44e9692867b983c4f561f779610cc61e2b349, base 331d037c. No drift on its 4 package paths to the landing. - Sage gate rerun on the candidate, 2026-10-12T01:18:24Z to 01:23:27Z: tasks 71, business 60, harness 59; test-auth 15, test-conductor 17, test-config 24, test-discord 66, test-extension-package 18, test-foundation 44, test-queue 27, test-release 14, test-task 98 (Docker), all 0 failed. - Out of scope and recorded in the packet's BUILD.md: packages/tasks/live/run.mjs's pm line lacks role.launch and its reviewer line lacks review.verdict compared with world.mjs. The live run uses neither, so no follow-up row.
Author
Contributor

Correction to comment 27613: row 79 moved to done at queue rev 599, not 598. Rev 598 is Darkwing's row 76 verdict, which commit c9ff939b swept in with this row's done move.

Correction to comment 27613: row 79 moved to done at queue rev 599, not 598. Rev 598 is Darkwing's row 76 verdict, which commit c9ff939b swept in with this row's done move.
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mosaicstack/stack#1573