fix(queue): genesis owner-not-reviewer check, assign wording, queue-commit HEAD-moved message, calendar dates (row 33, #1508)
Built by filbert, approved by darkwing in round 1 (#1508 comment 26651). Manifest fe7da3ef, 10 paths. Suites green on an index export. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
@@ -53,9 +53,11 @@ becomes the new list. If it was narrowed (`set ID closes` with `--reason`,
|
||||
or genesis from the map), it keeps the part still among the new issues, and
|
||||
the receipt ends in `(kept narrowed)`.
|
||||
|
||||
A row's owner can't also be one of its reviewers: `add`, `set ID reviewers`
|
||||
and `assign ID SEAT` each refuse rather than create that shape, since a row
|
||||
can't collect its own owner's required approval.
|
||||
A row's owner can't also be one of its reviewers: `add`, `set ID reviewers`,
|
||||
`assign ID SEAT` and `genesis` (for a map row) each refuse rather than
|
||||
create that shape, since a row can't collect its own owner's required
|
||||
approval. Replay doesn't check it, so a log written before the rule still
|
||||
loads.
|
||||
|
||||
Exit codes: 0 ok; 1 the operation failed; 2 invalid data or refused;
|
||||
3 uncertain (visible or durable, not acknowledged; for a review request,
|
||||
@@ -145,7 +147,10 @@ semantics 2.
|
||||
- `docs/plans/queue.json`: `{version, canonicalRoot, revision, rows, log}`,
|
||||
serialized deterministically. A file that doesn't re-serialize byte for
|
||||
byte, or doesn't replay from genesis to its `rows`, is refused by every
|
||||
verb.
|
||||
verb. Times are ISO times in UTC to the millisecond; `requiredSince` and
|
||||
`createdAt` may also be a bare date. Each must be a real calendar day and
|
||||
time: a value that doesn't format back to itself, such as month 13 or
|
||||
2026-02-30, is refused.
|
||||
- `docs/plans/QUEUE.md`: hand-written header, generated body between the
|
||||
markers. Each log entry records the SHA-256 of the body it rendered, so a
|
||||
body is `current`, `stale` (an earlier render) or `unknown` (no render).
|
||||
@@ -212,8 +217,12 @@ is swept in:
|
||||
tests and `verify --snapshot` against the base.
|
||||
5. to 7. Blobs, a tree from a temporary index, `commit-tree`, the guard
|
||||
checks again, then `update-ref` with H as the expected old value. If the
|
||||
branch moved at any point after step 1, this fails and nothing is
|
||||
published.
|
||||
branch moved at any point after H was recorded, nothing is published.
|
||||
Each guard check compares HEAD with H before its canary and again if
|
||||
the clean run fails. A move found there exits 2 with `HEAD moved since
|
||||
H was recorded`, since the canary's index holds H's tree and the hook
|
||||
diffs it with the live HEAD. A move after the step-7 check fails
|
||||
`update-ref` (exit 1).
|
||||
8. Reconcile the shared index's two queue entries with `git reset -q --
|
||||
docs/plans/queue.json docs/plans/QUEUE.md`, only if HEAD is the new
|
||||
commit and those entries are still H's. Otherwise exit 3 and print the
|
||||
|
||||
Reference in New Issue
Block a user