Skip to content

The watchman states the lane floor instead of waiting for a change - #4474

Merged
gHashTag merged 1 commit into
masterfrom
feat/capacity-floor
Sep 20, 2026
Merged

gHashTag merged 1 commit into
masterfrom
feat/capacity-floor

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

Closes #4473

capacity-shrank fires only on a change between two readings. A swarm that
has been small since before the first reading is invisible to it.

Across 2026-09-20 something outside both repositories rewrote
TRIOS_QUEEN_MAX_WORKERS to 8, then 9, then 1, then 16 — four times — and
every write redeployed the service.

The image built that day ignores the variable:

[entrypoint] lanes: 10 credential(s) x 2 = 20
[entrypoint] TRIOS_QUEEN_MAX_WORKERS=16 is ignored; the lane count is derived

An older image does not, and a redeploy can bring one back — which is exactly
when the value bites. That happened twice yesterday, both times within a minute
of a variable change I made myself.

So the floor is stated: PUSHER_EXPECTED_LANES, default 20 — ten
credentials at two lanes each. Below it the rule names both causes it can be and
points at the entrypoint line that tells them apart.

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

🤖 Generated with Claude Code

…r a change

capacity-shrank needs two readings and fires only on a CHANGE, so a swarm that
has been small since before the first reading is invisible to it.

Across 2026-09-20 something outside both repositories rewrote
TRIOS_QUEEN_MAX_WORKERS to 8, then 9, then 1, then 16, and every write
redeployed the service. The image built that day derives the lane count and
ignores that variable; an older image does not, and a redeploy can bring one
back - which is exactly when the value bites.

So the floor is stated rather than inferred: PUSHER_EXPECTED_LANES, default 20,
being ten credentials at two lanes each. Below it the rule names both causes it
can be - an older image, or a credential that stopped being counted - and
points at the entrypoint line that tells them apart.

Thirty rule shapes, twelve of them ones a moving system must NOT fire.

Closes #4473

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

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-20 17:15:50 UTC

Summary

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

These columns do not partition: 2 + 19 + 0 + 0 = 21, and there are 22 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).

@github-actions

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

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

@gHashTag
gHashTag merged commit 1e78d70 into master Sep 20, 2026
26 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 watchman sees a lane count CHANGE but never states the floor

2 participants