feat(kanban): auto-subscribe, review-required promotion, unblock dispatch, rerun, parent workspace - #31883
feat(kanban): auto-subscribe, review-required promotion, unblock dispatch, rerun, parent workspace#31883crayfish-ai wants to merge 1 commit into
Conversation
…block dispatch, rerun, parent workspace, tool subscribe - P1/P7: auto-subscribe on kanban_create — CLI and agent tool paths now both auto-subscribe the calling conversation to task notifications by reading HERMES_NOTIFY_* env vars, so completion/status-change events push to the origin chat without manual subscription. - P2: treat review-required as a promoteable parent status — recompute_ready and claim_task now treat 'review-required' same as 'done'/'archived' for child promotion, so children of workers that requested human review can proceed without waiting for the human to unblock. - P3: auto-dispatch after unblock — CLI `kanban unblock` now calls dispatch_once(max_spawn=1) after successful unblock so newly-ready tasks don't sit idle until the next dispatcher tick. - P5: rerun command — `kanban rerun` resets completed/blocked/archived tasks to ready (or todo if parents are still in progress), clears claim state, failure counters, and optionally reassigns to a different profile. Supports `--reason` for audit trails and `--reassign-to`. - P6: parent workspace inheritance — when create_task has parents and no explicit workspace_path, inherit the first parent's workspace_path and mirror the workspace_kind (scratch→dir/worktree upgrade only) so child tasks operate in the same project checkout instead of a bare tmpdir.
Version & Relationship to Other Open Kanban PRsBase: upstream/main Overlap analysis with current open kanban PRs:
No direct conflicts. Our 6 fixes (auto-subscribe, review-required promotion, unblock dispatch, rerun, parent workspace, tool subscribe) are independently tested and deployed. Other open PRs address orthogonal concerns or use different implementation approaches for auto-subscribe. HistoryReplaces closed PR #28331 — same feature set, rebased to latest main after upstream had significant changes. |
Relationship with Our Other Open PRs (#31265, #31266, #31267)All four PRs are from crayfish-ai fork. #31265 — fix(kanban): reject late-link after child start
#31266 — fix(kanban): defer scratch cleanup until children finish
#31267 — feat(kanban): per-call subscribe API with atomic notification subscription
Detailed comparison:
Both PRs edit the same ~15 lines in Recommended merge order: If #31267 merges first (standalone subscribe fix), #31883 should be rebased to drop the overlapping subscribe changes and keep only P2-P3-P5-P6. Conversely, if #31883 merges first, #31267 becomes redundant on the subscribe aspect and should be closed. Status
All four PRs are ready for upstream review independently. |
Summary
Six kanban fixes built and tested after rebasing to latest upstream/main (commit
7e165e843, 2026-05-25).Changes
P1/P7: Auto-subscribe on kanban_create
HERMES_NOTIFY_*env varsP2: Review-required as promoteable parent status
recompute_readyandclaim_tasknow treatreview-requiredsame asdone/archivedfor child promotionP3: Auto-dispatch after unblock
kanban unblockcallsdispatch_once(max_spawn=1)after successful unblock so newly-ready tasks don't sit idleP5: Rerun command
kanban rerunresets completed/blocked/archived tasks to ready/todo--reassign-to)--reasonflag for audit trailsP6: Parent workspace inheritance
workspace_pathinherit from first parent with oneworkspace_kindupgraded (scratch→dir/worktree) so children operate in project checkoutFiles Changed
hermes_cli/kanban_db.py— +182 lines (P1 subscribe, P2 promotion, P5 rerun, P6 workspace)hermes_cli/kanban.py— +52 lines (P3 dispatch, P5 rerun CLI)tools/kanban_tools.py— +15 lines (P1/P7 agent tool subscribe)Verification
kanban.dbintegrity check passesHistory