spec-kitty / spec-kitty/spec-kitty
tasks status still flags live agents stale; add PID/lease liveness
- Dominant language
- Python
- Stars
- 1.6k
- Forks
- 165
- Avg merge
- 14h 52m
- Merged PRs (30d)
- 303
Description
## Observed (Spec Kitty 3.2.7rc1, 2026-09-06/07, branch missions/coreloop-proto-missions, PR #3922)
- **F-22** (tasks status): `spec-kitty agent tasks status` flags in-progress WPs as `⚠️ stale: 11.6m` after ~10 minutes without a status event, while implementers are actively working (a 30–90 min WP produces no events until mark-status/move-task). False alarm on every real WP.
- **F-53** (session continuity): the host process exited mid-run; the WP04 implementer subagent was stopped with 8 uncommitted files in lane-d and the WP07 review had been claimed but its reviewer never dispatched. Spec Kitty's ledger said WP04 `in_progress`/WP07 `in_review` with no way to tell "agent alive" from "agent dead". Two orphaned `caffeinate -i` processes from earlier sessions were still running.
## Expected / proposed fix
Staleness should be based on worktree activity (last commit / mtime) or a configurable threshold ≥ typical WP duration; a lease/heartbeat on claims (PID liveness) would let `tasks status` distinguish dead agents from slow ones.
## Severity / recurrence
S2 (F-53), S3 (F-22). The false "stale" flag fired on every WP of both missions; the dead-vs-slow ambiguity cost one manual recovery.
## Related
- #1231 CLOSED COMPLETED (PR #2572): "incorporate shell_pid liveness" — but its last comment (2026-07-04) documents PID liveness as still unimplemented and PR #2572 is a coord read/gate aggregate; the false-positive class is live on rc1 ⇒ regression/residual of #1231.
- #2570 OPEN friction #4 (stale display after move); epic #2017.
## Provenance
Observed by an orchestrating agent (Claude Fable 5.1) driving missions fsm-write-path-integrity-01M1TZV6 and dead-port-disposition-01M1TZVN end to end; friction ledger kept out of repo; deduplicated against the tracker before filing.
Contributor guide
Research direction
Start by reproducing the false stale warning with `spec-kitty agent tasks status` during a work package lasting longer than the current threshold, then read related issues #1231 and #2570 for prior context. Done means status distinguishes a live, slow agent from a dead one using worktree activity or configurable timing, and supports the proposed PID/lease liveness without orphaned processes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli, devtools
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100