1.3 KiB
1.3 KiB
| id | status | phase | priority | labels | branch | assignee | started | pr | merged | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| DIS-007 | backlog | 0 | p1 |
|
phase-0/startup-lockfile | null | null | null | null |
DIS-007: Lock-File gegen Doppelstart
Ziel
Zwei gleichzeitig laufende DisClaw-Instanzen auf derselben DB/Workspace-Root werden verhindert. Zweiter Start bricht mit klarer Fehlermeldung ab.
Kontext
→ docs/development-plan.md §7 (Risiko-Tabelle).
Scope
- In:
src/runtime/lockfile.ts:acquireLock(path)legt<workspaces_root>/.disclaw.lockmit PID + ISO-Timestamp an. Stale-Lock-Recovery viaprocess.kill(pid, 0). ·src/index.tsruftacquireLockvor DB-Init auf · Graceful Shutdown löscht Lock - Out: Distributed Locking für Multi-Host
Definition of Done
- Zweiter Startversuch bricht mit „DisClaw bereits aktiv (PID X)" ab
- Stale-Lock (PID tot) wird automatisch übernommen
- Unit-Test
tests/unit/lockfile.test.tsmit tmp-Dir: Acquire, Doppel-Acquire, Stale-Recovery, Release npm run build && npm testgrün
Dateien (erwartet)
src/runtime/lockfile.tssrc/index.tstests/unit/lockfile.test.ts
Abhängigkeiten
Blockiert durch: DIS-001 (Lock liegt unter finalem workspaces_root).
Spec
→ docs/backlog.md #DIS-007