watchdog: fix limit-probe self-match + scrollback dedupe wedge; plan(lvl5): badge shows level only

Night-watch findings (monthly-spend-limit window, ~01:49-04:45):
- probe text said 'usage limit' which matches LIMIT_RE, so a submitted probe
  kept limited_now true forever -> reworded to 'quota window' with a CAUTION
  note (nudge text must never match LIMIT_RE)
- dedupe scanned all 40 captured lines, so once a probe scrolled into the
  conversation no further probe ever fired (builder/adv frozen at nudges=1,
  orchestrator probes degraded to hourly riding the wake scroll) -> dedupe
  now only checks the bottom 8 lines (input area)
Core invariant HELD: zero kill+reboots during the limit window.

plan(lvl5): operator addition - the top-corner level badge (card, dashboard
pill, badge SVG) shows only the level number+color, zero capping info; the
inline per-rung table keeps intentional-skip/unverified detail.
This commit is contained in:
autonomic-bot
2026-06-11 05:52:26 +00:00
parent 76aa104dbd
commit 5ea17fca21
3 changed files with 32 additions and 6 deletions
+16
View File
@@ -422,3 +422,19 @@ session cc-ci-orchestrator-stale can be killed; recipe-mirrors org still private
not backup-capable, no upgrade target). UNINTENTIONAL N/A (infra error, missing tool,
aborted tier = unverified) blocks — the level cannot be above an unverified rung.
Statuses now {pass, fail, skip, unver}; unclassifiable N/A defaults to unver.
## 2026-06-11 ~04:50 — night-watch findings: limit system held core invariant; 2 bugs fixed
- ~01:49-01:51 all three sessions hit a MONTHLY SPEND limit ("You've hit your monthly
spend limit. /usage-credits to adjust") — no reset time exists, so "unparsable → flat
5-min probe" was CORRECT behavior. Zero kill+reboots during the limit window (the old
system's churn bug is confirmed gone — last stall reboots were 23:26-23:50, old code).
- Bug 1: probe text contained "usage limit" → matched LIMIT_RE → self-sustaining window.
Reworded to "quota window" (must never match LIMIT_RE).
- Bug 2: probe dedupe checked the whole 40-line pane → once the submitted probe scrolled
into the conversation, all further probes were suppressed (builder/adv stuck at
nudges=1; orchestrator probes degraded to hourly, riding the wake's scroll). Dedupe now
checks only the bottom 8 lines (the input area).
- shot phase: M1 PASSed (ae10b55, 19/19 matrix) + builder landed the harness capture fix
(ce50f64) BEFORE the limit hit. Loops resume via watchdog probe after this bounce.
- lvl5 plan: operator addition — top badge (card corner/dashboard pill/SVG) shows ONLY
the level, no capping info; inline rung table keeps intentional-skip detail.