Skip to content

docs(kanban): clarify unblock always resets the retry budget - #27

Merged
Rook-CodeVolt merged 1 commit into
mainfrom
docs/kanban-unblock-retry-reset
Sep 12, 2026
Merged

docs(kanban): clarify unblock always resets the retry budget#27
Rook-CodeVolt merged 1 commit into
mainfrom
docs/kanban-unblock-retry-reset

Conversation

@Rook-CodeVolt

Copy link
Copy Markdown
Owner

Summary

Adds one clarifying paragraph to website/docs/user-guide/features/kanban.md next to the --max-retries description: a manual kanban unblock / kanban_unblock always resets consecutive_failures to zero (by design, per unblock_task() in kanban_db.py). This means a --max-retries 1 task can legitimately consume more than one dispatch attempt if a human unblocks it between breaker trips — that is expected operator-driven behaviour, not a circuit-breaker accounting defect.

Background

Investigated as t_cc469a2f (SME-flagged "max_retries accounting bug", citing t_6193fa6e: 3 runs against max_retries=1, and t_8680bbb7: 2 runs against max_retries=1). Reproduced the exact accounting path against live gave_up task_events for both tasks: in every case failures == effective_limit at the moment the breaker tripped (arithmetic is correct, matches the documented --max-retries 1 contract). The extra dispatch attempts were caused entirely by a human calling kanban_unblock after judging the trip to be a transient/environmental false failure (single-query-mode -c/-e iteration-budget exhaustion) — which resets the retry budget by design (kanban_db.py unblock_task(), comment: "a deliberate unblock is a fresh start for the retry budget").

Rook's decision: accept as working-as-designed (option 1) — no dispatcher/kanban_db.py code change, only this documentation clarification so operators aren't surprised by the interaction.

Test Plan

  • Docs-only change; verified diff is exactly the intended 2-line addition against fork/main (no other divergence pulled in)
  • Read back the rendered paragraph in context (sits directly under the existing --max-retries paragraph, same section)
  • N/A automated tests (no code path changed)

Closes t_cc469a2f (Kanban board t_cc469a2f).

kanban_unblock intentionally zeroes consecutive_failures on every
manual unblock (kanban_db.py unblock_task) -- this is the correct,
by-design behaviour, not a circuit-breaker accounting bug. Document
it next to the --max-retries description so operators understand a
--max-retries 1 task can legitimately run more than once when a
human unblocks it between failures.

Ref: t_cc469a2f diagnosis (reproduced against live gave_up events for
t_6193fa6e and t_8680bbb7 -- failures==effective_limit in both cases,
arithmetic correct; the extra runs came from manual kanban_unblock
resets between breaker trips). Decision: Rook, option 1 (accept
working-as-designed, no dispatcher/kanban_db.py code change).
@github-actions

github-actions Bot commented Sep 12, 2026

Copy link
Copy Markdown

૮ >ﻌ< ა ci review

ran on 1221634 — docs(kanban): clarify unblock always resets the retry budget

⚠️ Warnings

OSV vulnerability scan · View job

55 known vulnerabilities found in pinned dependencies.

How to fix:

Review the findings in the Security tab. Update the affected dependencies if a patched version is available.


debug info

CI timings

CI timings · View report · View job

Wall time 32m15s vs 27m33s (+17.1%). 4 job(s) slower, 7 faster, 2 unchanged.

  • Python tests / Run tests: +278.0s
  • OS-specific tests / Windows-only tests: +77.0s
  • OS-specific tests / macOS-only tests: -5.0s
  • Detect affected areas: +4.0s
  • Python tests / e2e: -2.0s

@Rook-CodeVolt
Rook-CodeVolt merged commit eb182ad into main Sep 12, 2026
37 checks passed
@Rook-CodeVolt
Rook-CodeVolt deleted the docs/kanban-unblock-retry-reset branch September 12, 2026 10:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant