fix(kanban): surface active PR respawn guards - #65996
Conversation
Related: #46269 remains the original open implementation. This current-main replacement covers the same active-PR guard observability path and is a salvage/replacement, not a duplicate. |
tonydwb
left a comment
There was a problem hiding this comment.
Code Review Summary
Verdict: Comment
Summary
Fix: task deletion with cascade delete support. Adds proper cascading deletion for child tasks when parent is deleted.
No security concerns. Clean fix.
Reviewed by Hermes Agent
tonydwb
left a comment
There was a problem hiding this comment.
Code Review Summary
Verdict: Comment
Kanban PR respawn guard visibility fix (252 lines). Surfaces active PR respawn guards.
Checked diff — no security concerns, no hardcoded secrets.
Looks good. No blocking issues.
Reviewed by Hermes Agent
|
Thanks for the focused observability fix. Current main records Automated hermes-sweeper review. |
SummarySix PRs address related Kanban dispatch and diagnostics symptoms through distinct causes: #34578, #61035, and #65996 surface active-PR respawn guards; #62393 adds a one-shot unblock override; #51386 protects interactive claims from worker reclamation; and #42859 combines retry diagnostics with now-obsolete skill-preload detection. The active-PR observability work substantially overlaps, while the unblock, interactive-claim, and retry-cap changes remain separate mechanisms. Related pull requests
Duplicates#34578 and #61035 substantially overlap #65996 on active-PR dispatch visibility and guard-specific diagnostics; both are already closed, with #61035 the wrong-upstream predecessor and #34578 carrying a separate recorded supersession rationale. #62393, #51386, and the retry-diagnostic portion of #42859 are not duplicates because they change different control-flow causes. Suggested consolidationKeep #65996 open with its current-main observability path, while leaving #34578 and #61035 closed as overlapping predecessors. Keep #62393 open separately for its one-shot unblock mechanism; author action on #42859 should split out and update the source-aware retry diagnostic, and author action on #51386 should rebase onto current main or split out a version that guards detect_stale_running, reconciles cleanup, adds the watchdog regression, and documents --external. Complex graphflowchart LR
classDef open fill:#dbeafe,stroke:#1d4ed8,color:#1e3a8a
classDef merged fill:#dcfce7,stroke:#15803d,color:#14532d
classDef closed fill:#e5e7eb,stroke:#6b7280,color:#1f2937
classDef unverified fill:#f3f4f6,stroke:#9ca3af,color:#374151
classDef best stroke-width:3px,stroke:#b45309
classDef target stroke-width:3px,stroke:#4338ca
subgraph Dup34578 ["PRs duplicating each other"]
P34578["PR #34578 (closed)"]
P61035["PR #61035 (closed)"]
P65996["PR #65996 (open)"]
end
class P34578 closed
class P61035 closed
class P65996 open
class P65996 target
click P34578 "https://github.com/NousResearch/hermes-agent/pull/34578"
click P61035 "https://github.com/NousResearch/hermes-agent/pull/61035"
click P65996 "https://github.com/NousResearch/hermes-agent/pull/65996"
Graph: solid arrow = fixes / best fix, dashed arrow = partial or unverified (see edge label); boxed group = PRs duplicating each other; amber border = best fix; indigo border = target; gray node = closed (state tag in the node label). Cross-PR triage: Reviewed 6 pull requests and 0 issues in this complex. Each diff was read against this issue; Assessment working set: 97 kB of PR diffs, 8 kB of issue/PR text, 5 kB of discussion (12 comments), 0 verify verdicts. verdicts reflect diff content, not PR titles. Part of an automated triage batch. |
Summary
hermes kanban dispatchasGuarded (active PR — lander action): t_xrespawn_guardedreason bucket in dispatch JSON, including dry runsawaiting_lander_pr_processingdiagnostic instead ofstranded_in_readyThis is the current-main replacement for stale PR #46269. The existing contributor branch allows maintainer edits in GitHub metadata, but the authenticated maintainer account cannot push to that fork (HTTP 403), so it could not be updated in place. Maintainers can close #46269 in favor of this PR.
Verification
python -m pytest -q tests/hermes_cli/test_kanban_diagnostics.py— 52 passedpython -m pytest -q tests/hermes_cli/test_kanban_cli_dispatch_passthrough.py— 6 passedpython -m pytest -q tests/hermes_cli/test_kanban_cli.py— 47 passedpython -m pytest -q tests/hermes_cli/test_kanban_db.py— 230 passedpython -m pytest -q tests/plugins/test_kanban_dashboard_plugin.py— 110 passed, 1 upstream deprecation warningpython -m ruff check .— passedpython scripts/check-windows-footguns.py --all— passed (768 files)node --check plugins/kanban/dashboard/dist/index.js— passeduv build --wheel --out-dir /tmp/hermes-agent-t_dbf30199-pr46269-dist— passed; wheel payload assertions passedgit diff --check origin/main— passedScope
Six files changed. Respawn-guard semantics in
kanban_db.pyare unchanged.