Commit eb3d604
* chore: gitignore personal kaia/council skills; untrack kaia SKILL.md
* fix(#667): circuit breaker — BLOCK task after N consecutive silent recoveries
Fix 3a from issue #667 (the board-policy half; the spawn-backoff half
3b is intentionally NOT built — the spawn controller is deleted by the
session-model migration, epic #706).
A "silent" recovery is a lease recovery where the agent never reported
progress (renewal_count == 0, the `updates=0` signature of the
snake_game runaway: 81 registrations over 3+ hours). After
max_silent_recoveries (default 3) consecutive silent recoveries,
recover_expired_lease now marks the task BLOCKED instead of returning
it to TODO: BLOCKED tasks are never offered by request_next_task, so
the reclaim/re-assign loop physically cannot continue — regardless of
who supplies agents (Invariant #1: the guard lives in Marcus, not the
spawner).
- A recovery WITH progress resets the streak (slow-but-alive is not
the silent-failure pattern — the #703 lesson at board level)
- BLOCKED path performs the same coordination cleanup as normal
recovery (lease, persistence, server callback) — no #485-class leaks
- Diagnostic kanban comment + task_blocked_circuit_breaker history
event; human resets to TODO to retry (streak starts fresh)
8 new tests; full lease module 74/74; mypy + pre-commit clean.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* fix(#667): persist BLOCKED via move_task_to_column for external providers
Codex P2 on PR #707: GitHub- and Linear-backed boards don't persist
status through update_task (GitHub only opens/closes the issue; Linear
ignores status) — their blocked-state mechanics live in
move_task_to_column. The breaker now also calls
move_task_to_column(task_id, 'blocked') (GitHub 'blocked' label /
Linear 'Blocked' state / SQLite direct status match) so a project
refresh can't resurrect the task as TODO and resume the loop.
+2 tests: move called with 'blocked' on trip; client lacking the
method degrades gracefully (update_task path still lands).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 7d5232a commit eb3d604
4 files changed
Lines changed: 434 additions & 237 deletions
File tree
- skills/kaia
- src/core
- tests/unit/core
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
57 | 57 | | |
58 | 58 | | |
59 | 59 | | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
This file was deleted.
0 commit comments