After Cmd+Q quit + reopen, sessions the user killed reappeared as alive. The session_worktrees "shutdown-saved" restore marker was write-only: RestoreAll auto-relaunches any terminated session that still has a marker, but Kill never deleted it and RestoreAll never consumed it. A session that survived one reopen cycle (gaining a marker via reconcileLive) and was then killed still carried the marker, so the next boot resurrected it. Two-layer fix: - Kill now deletes the marker (best-effort) after MarkTerminated: a user kill is explicit terminal intent and must not leave a resurrection marker. - RestoreAll deletes the marker after consuming preserveRef and attempting relaunch, making it one-shot so it never outlives a single restart. A still-live session re-acquires a fresh marker at the next quit. Manual Restore stays marker-independent, so killed sessions remain restorable on demand, just not auto-resurrected on boot. Adds DeleteSessionWorktrees to the Manager Store interface (the concrete store already implements it) and tests covering all three behaviors. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| cmd | ||
| internal | ||
| .golangci.yml | ||
| go.mod | ||
| go.sum | ||
| main.go | ||
| sqlc.yaml | ||