Skip to content

fix(collab): verlaten runtime-mappen opruimen en de service onder launchd houden - #8

Merged
michelhelsdingen merged 2 commits into
mainfrom
fix/collab-runtime-hygiene
Sep 3, 2026
Merged

michelhelsdingen merged 2 commits into
mainfrom
fix/collab-runtime-hygiene

Conversation

@michelhelsdingen

Copy link
Copy Markdown
Owner

Wat

Twee restpunten uit de review van 01-09-2026.

Verlaten runtime-mappen. /tmp/ensemble hield 34 mappen vast: tien afgeronde teams, 22 launches die stierven voordat een agent iets zei, en veertig lock-mapjes die de testsuite zelf achterliet. collab-cleanup.sh keek alleen naar mappen met een .finished-marker. Hij kent nu ook verlaten mappen (geen marker, nooit een bericht) en ruimt die na 24 uur op. Een map met berichten blijft altijd staan: het team kan nog lopen, en collab-history.py leest die berichten later. COLLAB_RUNTIME_ROOT maakt de root overschrijfbaar voor de tests, en de team-say-tests ruimen hun hele map op.

Service onder launchd. De service draaide als losse tsx server.ts: weg na een herstart van de Mac, handmatig te herstarten na elke codewijziging. scripts/install-launchd.sh registreert hem als launchd-agent met KeepAlive en de PATH van de installerende shell. Preflight herstart een service ouder dan 24 uur nu zelf via launchctl kickstart in plaats van een shell-regel voor te schrijven; zonder launchd-agent blijft de oude melding staan, met een verwijzing naar het script.

Test

  • tests/collab-cleanup.test.ts: verlaten map weg, lock-mapje weg, verse map zonder berichten blijft, oude map mét berichten blijft, dry-run raakt niets aan.
  • tests/install-launchd.test.ts: geldige plist (plutil -lint) met repo-pad, KeepAlive, RunAtLoad, log en PATH; --uninstall verwijdert hem.
  • Live nagemeten: agent geïnstalleerd, service komt binnen vijf seconden terug na een kill, geen EPERM in het log.
  • npm test (115 tests), typecheck en lint groen.

🤖 Generated with Claude Code

michelhelsdingen and others added 2 commits September 3, 2026 10:57
…nchd houden

/tmp/ensemble hield op 03-09-2026 34 mappen vast: naast tien afgeronde teams
22 mappen van launches die stierven voordat een agent iets zei, en veertig
lock-mapjes die de testsuite zelf achterliet (de afterEach van de team-say-tests
verwijderde alleen messages.jsonl, niet de map met het lockbestand ernaast).
collab-cleanup.sh keek alleen naar mappen met een .finished-marker en liet de
rest voor eeuwig staan.

De cleanup kent nu ook verlaten mappen: geen marker en nooit een bericht, na 24
uur weg. Een map met berichten blijft altijd staan, want het team kan nog lopen
en collab-history.py leest die berichten later. COLLAB_RUNTIME_ROOT maakt de
root overschrijfbaar, zodat de tests niet in de echte map werken. De team-say-
tests ruimen hun hele map op.

De service draaide als losse `tsx server.ts` zonder launchd-agent: weg na een
herstart van de Mac, en met de hand te herstarten na elke codewijziging.
scripts/install-launchd.sh registreert hem als launchd-agent met KeepAlive en
de PATH van de installerende shell, zodat de agent-CLI's gevonden worden.
Nagemeten: na een kill staat hij binnen vijf seconden weer op, en hij leest
zijn eigen bestanden in ~/Documents zonder EPERM. Preflight herstart een
service ouder dan 24 uur nu zelf via launchctl kickstart in plaats van de
gebruiker een shell-regel te geven.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…s alleen op macOS

Met alleen afgeronde mappen en niets verlatens (of andersom) stopte
collab-cleanup.sh onder de macOS-bash 3.2 met "ABANDONED[@]: unbound variable"
vóór de statistieken, omdat set -u daar een lege array als ongezet ziet. De
lussen gebruiken nu de ${ARR[@]+"${ARR[@]}"}-vorm; twee tests dekken beide
lege kanten.

De tests voor install-launchd.sh draaien alleen op macOS: het script weigert
elders bewust, en de CI-runner is Linux.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@michelhelsdingen
michelhelsdingen merged commit 273d664 into main Sep 3, 2026
4 checks passed
@michelhelsdingen
michelhelsdingen deleted the fix/collab-runtime-hygiene branch September 3, 2026 09:00
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