Skip to content

fix: watchdog-nudge krijgt een bovengrens, grok-preflight leest de hele uitvoer - #6

Merged
michelhelsdingen merged 2 commits into
mainfrom
fix/watchdog-nudge-budget
Sep 3, 2026
Merged

michelhelsdingen merged 2 commits into
mainfrom
fix/watchdog-nudge-budget

Conversation

@michelhelsdingen

Copy link
Copy Markdown
Owner

Wat

Twee fixes uit de review van 01-09-2026, elk in een eigen commit.

Watchdog: een agent die op elke nudge antwoordt werd eindeloos gepord. De nudge-lus zat in het slagen, niet in het mislukken. Antwoordt een agent op de nudge, dan verandert lastMessageAt en gooide de watchdog zijn hele state voor die agent weg, inclusief nudgedAt. Negentig seconden later zag hij dus een agent die nog nooit gepord was. Gemeten in claude-mem: 1.434 van de 5.457 prompts in augustus waren de watchdog-nudge, met uitschieters van 792 en 337 nudges per sessie per etmaal. De state houdt nu nudgeCount bij, en die overleeft een binnenkomend bericht. Boven DEFAULT_MAX_NUDGES (5, of ENSEMBLE_WATCHDOG_MAX_NUDGES) meldt de watchdog het één keer in de feed en zwijgt daarna.

Preflight: de grok-check las alleen de eerste regel. De check greppte op "logged in" in head -1 van grok models. Print grok daar een updatebanner boven, dan keurde de preflight een prima ingelogde CLI af. Verder gooide hij twee toestanden op één hoop: een 402 (weektegoed op) is geen auth-probleem en grok login lost het niet op. Die hebben nu elk hun eigen melding. Een interactieve aanroep krijgt daarnaast 30 seconden om alsnog in te loggen (COLLAB_GROK_RETRY_SECS, 0 zet het uit; niet-interactief gebeurt het niet).

Test

  • tests/watchdog-runaway.test.ts dekt het nudge-budget: reset bij een antwoord, bovengrens, eenmalige melding.
  • De grok-check is nagemeten met een gesimuleerde updatebanner en een 402-antwoord.
  • npm test, npm run typecheck en npm run lint zijn groen; CI draait ze opnieuw op deze PR.

🤖 Generated with Claude Code

michelhelsdingen and others added 2 commits September 1, 2026 12:20
…epord

De nudge-lus zat niet in het mislukken maar in het slagen. Antwoordt een agent
op de nudge, dan verandert lastMessageAt en gooit de watchdog zijn hele state
voor die agent weg, nudgedAt incluis. Negentig seconden later ziet hij dus een
agent die nog nooit gepord is. Een agent die netjes terugroept dat hij bezig is
maar niets aflevert, houdt dat eeuwig vol.

Gemeten op 01-09-2026 in claude-mem: 1.434 van de 5.457 prompts in augustus
waren de watchdog-nudge, een kwart van de maand. Een sessie kreeg er 792 in het
etmaal van 18 op 19 augustus, een andere 337. Elke nudge is een volledige beurt
met de hele conversatie erin.

De state houdt nu nudgeCount bij, en die overleeft een binnenkomend bericht met
opzet; de stall-tracking wordt nog wel gewoon gereset, dus normaal gedrag
verandert niet. Boven DEFAULT_MAX_NUDGES (5, of ENSEMBLE_WATCHDOG_MAX_NUDGES)
zegt hij het één keer in de feed en houdt daarna zijn mond.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
… inloggen

De check greppte op "logged in" in head -1 van `grok models`. Print grok daar
een updatebanner boven, dan noemt de preflight een prima ingelogde CLI
niet-geauthenticeerd. Nagemeten met een banner: dat gaat inderdaad mis.

Verder gooide hij twee toestanden op één hoop. Een 402 Payment Required (het
weektegoed is op) is geen auth-probleem, en `grok login` lost het dan ook niet
op: je moet wachten op de tegoedreset. Die twee hebben nu elk hun eigen melding.

En omdat inloggen een halve minuut kost in een ander venster, krijgt een
interactieve aanroep nu die halve minuut in plaats van een harde fail waarna je
alles opnieuw moet starten. COLLAB_GROK_RETRY_SECS=0 zet dat uit; in een
niet-interactieve run gebeurt het sowieso niet.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@michelhelsdingen
michelhelsdingen merged commit 90c7acf into main Sep 3, 2026
4 checks passed
@michelhelsdingen
michelhelsdingen deleted the fix/watchdog-nudge-budget branch September 3, 2026 08:19
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.

1 participant