Skip to content

fix(collab): de feed-loop per team stopt nu met zijn team - #7

Merged
michelhelsdingen merged 1 commit into
mainfrom
fix/collab-poller-orphans
Sep 3, 2026
Merged

michelhelsdingen merged 1 commit into
mainfrom
fix/collab-poller-orphans

Conversation

@michelhelsdingen

Copy link
Copy Markdown
Owner

Wat

collab-launch.sh startte per team een inline while true die messages.jsonl naar feed.txt kopieert, zonder stopconditie. disbandTeam schreef wel de .finished-marker maar liet die loop met rust, en collab-cleanup.sh haalt alleen mappen weg. Op 01-09-2026 draaiden er zestien, de oudste elf dagen, voor teams die de service niet meer kende.

De loop staat nu in scripts/collab-poller.sh en houdt zelf op zodra zijn team voorbij is:

  • bij de .finished-marker, na een laatste flush zodat de afscheidsberichten nog in de feed komen;
  • als de runtime-map verdwenen is;
  • als de service 404 geeft of het team disbanded meldt (eens per minuut gevraagd);
  • na COLLAB_POLLER_MAX_API_FAILURES mislukte checks op rij (standaard 10) als de service weg is.

Hij schrijft zijn eigen poller.pid en ruimt die bij vertrek op. disbandTeam stuurt hem daarnaast meteen een SIGTERM, zodat een disband nooit een loop achterlaat tot de volgende tick. De intervallen zijn instelbaar via COLLAB_POLL_SECS en COLLAB_POLLER_CHECK_EVERY, vooral voor de tests.

Test

tests/collab-poller.test.ts draait het echte script tegen een nep-service en dekt: kopiëren naar de feed, pid-bestand schrijven en opruimen, en elk van de stopcondities hierboven, plus dat een kort onbereikbare service hem niet laat stoppen. Een aparte test controleert dat disbandTeam het proces uit poller.pid beëindigt, en een statische test dat collab-launch.sh het script gebruikt en de inline loop weg is.

npm test (103 tests), npm run typecheck en npm run lint zijn groen.

🤖 Generated with Claude Code

…ls wees

collab-launch.sh startte per team een inline `while true` die messages.jsonl
naar feed.txt kopieert, zonder enige stopconditie. disbandTeam schreef wel de
.finished-marker maar liet die loop met rust, en collab-cleanup.sh haalt alleen
mappen weg. Op 01-09-2026 draaiden er zestien, de oudste elf dagen, voor teams
die de service niet meer kende; ze zijn toen met de hand gekild.

De loop staat nu in scripts/collab-poller.sh en houdt zelf op zodra zijn team
voorbij is: bij de .finished-marker (na een laatste flush), bij een verdwenen
runtime-map, wanneer de service 404 geeft of het team disbanded meldt, en na
COLLAB_POLLER_MAX_API_FAILURES mislukte checks op rij als de service weg is.
Hij schrijft zijn eigen poller.pid en ruimt die bij vertrek op. disbandTeam
stuurt hem daarnaast meteen een SIGTERM, zodat een disband nooit een loop
achterlaat, ook niet tot de volgende tick.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@michelhelsdingen
michelhelsdingen merged commit 878330c into main Sep 3, 2026
4 checks passed
@michelhelsdingen
michelhelsdingen deleted the fix/collab-poller-orphans 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