Skip to content

The watchman sees a review queue one lane deep, and names its cause - #4470

Merged
gHashTag merged 1 commit into
masterfrom
feat/review-watch
Sep 20, 2026
Merged

gHashTag merged 1 commit into
masterfrom
feat/review-watch

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

Closes #4469

dispatches.unreviewed sat between 16 and 20 all afternoon while every bee
that finished waited. The rule never fired: its threshold was twice the lane
count — forty, at twenty lanes.

STOPPED: 20 finished bees are unreviewed, against 16 lanes and a sweep that buys
         TRIOS_QUEEN_REVIEWS_PER_ROUND reviews a round (default 3).
         Nothing they wrote can land until it is judged.

The cause it never named

TRIOS_QUEEN_REVIEWS_PER_ROUND        default 3, capped at 32   — not set
TRIOS_QUEEN_MEASUREMENTS_PER_ROUND   default 3, capped at 32   — not set

The swarm went from 8.5 to 80 dispatches an hour this afternoon when the
worker model changed. The review budget did not move. Faster bees do not make a
faster swarm if the sweep still buys three.

Raised on the deployment to 8 and 6 — a step, not the ceiling: the sweep
runs before the dispatch half of the round and holds it, so a budget large
enough to fill four minutes is a swarm that stops handing out work.

$ python3 tools/queen/pusher.py --self-test
ok: 28 rule shapes, including eleven a moving system must NOT fire

Three unreviewed against ten lanes is one of the eleven — it is not a backlog.

🤖 Generated with Claude Code

…s its cause

dispatches.unreviewed sat between 16 and 20 all afternoon while every bee that
finished waited. The rule could not see it: its threshold was twice the lane
count, which at twenty lanes means forty. The number that matters is whether
the backlog is bigger than what the swarm produces in one round, because past
that point it can only grow.

THE CAUSE IS A BUDGET, and the rule now says so. The sweep buys
TRIOS_QUEEN_REVIEWS_PER_ROUND reviews a round - default 3 - and
TRIOS_QUEEN_MEASUREMENTS_PER_ROUND measurements, also 3, both capped at 32, and
neither was set on the deployment. The swarm went from 8.5 to 80 dispatches an
hour this afternoon when the worker model changed; the review budget did not
move.

Raised on the deployment to 8 and 6, which is a step and not the ceiling: the
sweep runs BEFORE the dispatch half of the round and holds it, so a budget
large enough to fill four minutes is a swarm that stops handing out work.

Twenty-eight rule shapes, eleven of them ones a moving system must NOT fire,
including three unreviewed against ten lanes.

Closes #4469

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@gHashTag
gHashTag enabled auto-merge (squash) September 20, 2026 16:09
@github-actions

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-20 16:09:44 UTC

Summary

Status Count
Total Open PRs 21
PRs with Failing Checks 18
PRs with All Checks Green 3
READY 2
FAILING 18
PENDING 0
NO CHECKS YET 0

These columns do not partition: 2 + 18 + 0 + 0 = 20, and there are 21 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=403499176a5d != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag
gHashTag merged commit 322af1b into master Sep 20, 2026
25 of 30 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

The review queue is a budget of three a round, and the watchman's threshold was forty

2 participants