Filbert's n2 from the Piece D round 2 review, written as a queue brief. It is also the piece a fresh seat starts in Gate G. Co-Authored-By: Claude Opus 5.5 <[email protected]>
2.3 KiB
Queue: a row's owner can't be its reviewer
Brief for one queue row under #1508. Written by Sage on 2026-09-28 from
Filbert's n2 in the Piece D round 2 review
(agents/filbert/work/queue-d-review-r2-2026-09-27.md). It is also the
piece a fresh seat starts in Gate G.
Refuse the owner as a reviewer at add, set reviewers and assign
Problem
queue set ID reviewers, queue add --reviewer and queue assign accept
the row's owner as a reviewer. review record refuses the owner
(packages/queue/src/queue.mjs, the check near "only a listed reviewer
other than the owner"), but the approval check still waits for every listed
reviewer. So a row whose owner is on its reviewer list can't reach done
or waiting-on-jason until a privileged actor edits the list. The refusal
names the owner as a missing approval, which reads as a bug. Nothing is
unsafe today. It fails closed, but it can stall a row. The item is on
docs/plans/DEFERRED.md under "Queue: an owner listed as a reviewer blocks
the row".
Owner and reviewer
- Owner: rocko.
- Reviewer: filbert, who found it.
Files owned
packages/queue/src/queue.mjspackages/queue/tests/(new or changed test files)packages/queue/README.md(one sentence on the rule)
What ships
addrefuses a row whose--owneris also among its--reviewers.set ID reviewersrefuses a list that includes the row's owner.assign ID SEATrefuses a SEAT that is on the row's reviewer list.- Each refusal exits 2, names the seat and the row, and writes nothing (no log entry, no witness change).
- Do not fix it by dropping the owner from the required approvals. With
reviewers
[owner]that list would be empty and the row would pass with no review. - Tests for each refusal and for the unchanged accept paths.
node --test packages/queue/tests/andbash scripts/test-queue.shpass.
Out of scope
Rows already in queue.json: none has its owner as a reviewer today, so no
migration. The other DEFERRED queue items (the queue-commit message when
HEAD moves, calendar checks on dates) stay separate.
Gate
Filbert approves through the queue: the owner moves the row to in-review
with --candidate, and Filbert records an approval with queue review record. Sage then commits the candidate, and the suites above must pass
on it.