You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
release: 1.4.12 — belt-and-suspenders shutdown + force idle on hydrate
User reported 6 problems on launching 1.4.11:
1. 3 random runs auto-fired without user action
2. App started in 'running' mode
3. Header Play disabled
4. Card Play wrongly said 'Configure ta clé' when agent was busy
5. Bottom panel didn't open after Démarrer
6. Last project not preserved (showed Demo instead of Twoody)
Strategy: belt-and-suspenders.
Suspenders (hydrate side):
- orchestrator-loop.ts: ALWAYS reset to idle on hydrate. The
'resume across restarts' semantics confused every user.
- server/app.ts: hydrate EVERY registered workspace, not just the
bound one. Multi-project users had stale state in side workspaces
the kanban could route to.
Belt (shutdown side):
- server/index.ts: RunningServer.close() now walks every workspace,
shutdownOrchestrator(), marks running/preparing/queued runs as
canceled with reason 'Canceled — server shutting down', pins
orchestrator.json to idle. Clean audit trail, no 'Reaped on
hydrate' messages.
UI fixes:
- App.svelte: at_capacity > missing_api_key in error-message priority.
Workspace with claude-code (busy) + codex (no key) now correctly
surfaces 'agent busy' instead of 'configure your key'.
- App.svelte: StartPromptDialog onStarted now calls openActivityPanel
so the user sees logs immediately after Démarrer.
E2E verified: Demo's orchestrator.json was 'running' from yesterday.
Started server, both Demo and Twoody flipped to 'idle' automatically.
Started orchestrator manually, SIGINT → graceful shutdown ran, both
back to idle on disk. Round-trip clean.