Skip to content

fix(kanban): freeze repeated identical failures - #68027

Open
jkobject wants to merge 4 commits into
NousResearch:mainfrom
jkobject:fix/t_ea707d6a-kanban-failure-freeze
Open

fix(kanban): freeze repeated identical failures#68027
jkobject wants to merge 4 commits into
NousResearch:mainfrom
jkobject:fix/t_ea707d6a-kanban-failure-freeze

Conversation

@jkobject

Copy link
Copy Markdown

Summary

  • persist a normalized failure fingerprint and freeze a task after its third materially identical terminal outcome
  • enforce the freeze across claim, review, reclaim, promotion, ready recomputation, auto-decomposition, dashboard, and tool paths
  • require an audited operator/CTO rearm, while keeping punctuation-only diagnostics equivalent and distinct root causes separate
  • retain backward compatibility for boards frozen by the earlier block-loop event circuit breaker

Observable behavior

Attempts one and two may be explicitly retried. The third materially identical failure atomically routes the card to triage and makes every automatic launch/reclaim/promotion/decomposition path ineligible. A reasoned operator rearm clears the breaker and restores eligibility.

Test plan

  • scripts/run_tests.sh tests/hermes_cli/test_kanban_block_kinds.py tests/hermes_cli/test_kanban_core_functionality.py tests/hermes_cli/test_kanban_db.py tests/hermes_cli/test_kanban_decompose.py tests/plugins/test_kanban_dashboard_plugin.py tests/tools/test_kanban_tools.py — 679 passed
  • python3 -m py_compile ... — passed
  • git diff --check origin/main...HEAD — passed
  • full repository suite running on the combined reconciliation candidate; result will be posted before review handoff

Provenance

This semantically ports the accepted local block-loop chain and the independently reviewed third-identical-failure hardening onto current main, preserving original commit authorship.

Copilot AI review requested due to automatic review settings July 20, 2026 12:07

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@alt-glitch alt-glitch added type/bug Something isn't working P3 Low — cosmetic, nice to have comp/cron Cron scheduler and job management comp/gateway Gateway runner, session dispatch, delivery comp/plugins Plugin system and bundled plugins sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades labels Jul 20, 2026
@jkobject

Copy link
Copy Markdown
Author

Final reconciliation verification at combined candidate 4e45d6bb870ac9e9e0c01463dd8a9838c92fe19e:

  • all changed-scope suites passed (Kanban freeze 679; Supermemory 89; graph policy/prompt/config 464)
  • Ruff, py_compile, git diff --check, isolated --version, and isolated doctor passed
  • the broad scripts/run_tests.sh run discovered ~40,584 tests; 51 failures occurred in 15 unrelated platform/environment files
  • the exact 15-file subset was rerun with -j 1 on both the candidate and clean origin/main@e89bc58a; both produced the identical 51 failures, so the broad-run reds are baseline/environment failures rather than regressions in this PR

No deployment or merge was performed.

@teknium1

Copy link
Copy Markdown
Contributor

Thanks for the detailed failure-loop hardening and coverage. The premise remains present on current main: block_task equates a repeated cause with only prev_kind == kind and escalates at the two-recurrence threshold (hermes_cli/kanban_db.py:5571-5580), while gateway auto-decomposition processes all triage IDs (gateway/kanban_watchers.py:1367-1381). The durable fingerprint and automatic-path guards address that gap.

I found no verified blocking defect in the proposed implementation. This is an automated hermes-sweeper review.

@teknium1 teknium1 added sweeper:risk-session-state Sweeper risk: may lose/corrupt/mis-associate session or context state sweeper:blast-moderate Sweeper blast radius: moderate — a subsystem or single platform labels Jul 30, 2026
@GottZ

GottZ commented Aug 3, 2026

Copy link
Copy Markdown

This was generated by AI during triage.

Summary

Thirteen PRs address or reference #59333/#66909; #59367, #59536, and #59645 implement the requested global kanban.block_recurrence_limit, while the remaining diffs provide the merged loop-breaker foundation or address distinct review, dependency, authorization, cron, PASS-loop, and repeated-failure paths. Contributor discussion identifies #66909 as a duplicate of #59333 and #59367 as the active implementation.

Related pull requests

Duplicates

#59536 and #59645 are later implementations of #59367. #61372 overlaps the review-reblock portion of #58695, while #61366 and #64585 address the same parentless-dependency cause with different terminal states.

Suggested consolidation

Author action: rebase #59367 onto current main, preserving its boolean-rejection tests and validated routing/event behavior; close #59536 and #59645 as duplicates of #59367 despite their keep_open reviews because their visible diffs retain the validation/default-registration defects summarized above, and close #66909 as a duplicate of #59333. Keep #68027 open with the salvage path of its durable fingerprint, audited rearm, and automatic-path guards; keep #59906, #61366/#64585, and #63723 in separately scoped salvage lanes addressing their recorded reviews, re-scope #60476 away from #59333, narrow #58695 to the safe review-reblock exemption unless an authorized ordered verdict source is added, and retain #61372 only as the closed reference.

Cross-PR triage: Reviewed 13 pull requests and 2 issues in this complex. Each diff was read against this issue; Assessment working set: 301 kB of PR diffs, 27 kB of issue/PR text, 17 kB of discussion (19 comments), 10 verify verdicts. verdicts reflect diff content, not PR titles. Part of an automated triage batch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/cron Cron scheduler and job management comp/gateway Gateway runner, session dispatch, delivery comp/plugins Plugin system and bundled plugins P3 Low — cosmetic, nice to have sweeper:blast-moderate Sweeper blast radius: moderate — a subsystem or single platform sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades sweeper:risk-session-state Sweeper risk: may lose/corrupt/mis-associate session or context state type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants