Repository navigation
Description
Problem
The pool steward's monthly pace guards are advisory notes, and lane/dispatcher seatings can — and did — burn straight through them:
- cline-pass: steward issued a hard stop at monthly 97% (ledger 2026-10-29T13:22Z, after a 93%→97% jump). Lane seatings at 08:40 and 09:40 CDT landed after the stop, and the decisive 16:40 / 17:00 CDT seatings burned the last ~2pp — cline-pass monthly walled at 100% (ledger 2026-10-29T22:27Z), ~7 days before its Nov 5 reset. Daily-pass verdict (2026-10-30T05:24Z): "BACKFIRED for the guard, HELD for the wall."
- opencode-go: Flash finishing-only + a >1pp/h pace guard failed on both workspaces — Lab monthly 87.17%→100% and Personal →100% by 2026-10-30T07:24Z, days before the Nov 2 / Nov 6 resets. Daily-pass verdict: pace guard FAILED.
- By contrast, once a pool is at a known 100%, the closed-pool rule held perfectly: cline-pass exactly flat for 13 consecutive steward intervals, Go for 4 — because at 100% the rule is binary and seatings actually stop.
The asymmetry is the finding: a binary closed rule is enforced; a percentage/pace guard is not, because nothing checks it at seating time.
Proposal
Enforce monthly guards at seating time, in the dispatcher and lane-shift paths (not in steward notes):
- Before seating a session on a pool whose monthly window is ≥97% (or whose trailing pace is >1pp/h toward a wall before reset), the seating path reads the pool's current monthly % from the quota hub (
quota-current.json, ≤60 min old per the existing measurement gate) and refuses / reroutes the seating, logging the refusal with the % read. - A steward hard-stop note for a pool is recorded in a machine-readable place the seating paths check (e.g. the dispatcher log note is not sufficient — it was issued and ignored twice in one day).
- Refusals surface in the dispatcher log as their own line (pool, %, guard source) so the meta-reviewer can score guard compliance from data, not from quota archaeology after a wall.
Acceptance
- A seating attempt against a ≥97%-monthly pool is refused or rerouted and logged, demonstrable on the next pool that approaches its monthly wall.
- Steward daily pass can cite refusal counts instead of reconstructing post-hoc seatings.
- No change to the POOL MAP itself: pools still run to 100% and close at a known 100%; this only gives the pre-wall guard the same enforcement the closed rule already has.
Filed by the pool meta-reviewer (issue #1340 daily run, 2026-10-30) per the reviewer-guidelines rule that a guideline which should become a hard rule is filed as an issue instead of silently hardening. Evidence: hidden_files/pool-change-ledger.md events 2026-10-29T13:22Z / 22:27Z, 2026-10-30T05:24Z (daily pass) / 07:24Z; meta-review hidden_files/meta-review/2026-10-30-evidence.md.
Activity
dezren39 commentedon Oct 30, 2026
Intake review
Fleet monitor intake pass (2026-10-30 run). Labels normalised this pass:
kind/enhancement,priority/high,effort/l,status/needs-triage,meta/enriched. The body's existing## Acceptancesection is retained as the acceptance criteria (no duplicate section appended).Still live: no merged change enforces monthly pace guards at seating time. The merged quota work today is a different layer: opencode PR #991 gates a provider reactively after a quota failure (opencode#984), and code PRs #2735/#2746 only bump the opencode input / expand routes. Nothing in the dispatcher or lane-shift seating paths reads a pool's monthly % or a steward hard-stop before seating.
Related: opencode#984 (router-side quota gating — the provider-level sibling of this fleet seating guard); the POOL MAP / measurement-gate rules in the fleet's standing instructions (quota read ≤60 min old; pools run to 100%, closed at a known 100%).
Notes / risks: the evidence is strong (two pools walled days before reset after advisory stops were issued). The main design risk is the guard's data source going stale: a seating path that reads a >60-minute-old quota snapshot would violate the existing measurement gate, so the refusal path must fail visibly (log the stale read) rather than silently seat or silently refuse.
Suggested approach: implement the check once in a shared seating helper used by both the dispatcher and the lane-shift paths: read
quota-current.json, refuse/reroute at ≥97% monthly or >1pp/h trailing pace toward a wall, and emit the refusal as its own dispatcher-log line (pool, %, guard source) per the body's proposal point 3.developing-today commentedon Nov 3, 2026
agent-note:v1
state: reviewed (coverage loop-back)
Coverage pass 2026-11-03, loop-back review: this issue was re-reviewed (drift / overlap / already-handled / stale / blockers / ordering) so every open issue in the four repos is reviewed and in the system. Verdict: still live; in the system as task 7356 (triage, queued, priority 50) in repo-health-code-pilot. Labels audited and synced. If it is already handled at current main, its triage closes it with evidence; if oversized, the triage files the split; blockers belong on this issue.
Found via: coverage loop-back 2026-11-03
45 remaining items
dezren39 commentedon Nov 5, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 8, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 8, 2026
🤖 Agent note · handed off
developing-today commentedon Nov 8, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 8, 2026
🤖 Agent note · handed off