fix(kanban): skip invalid task skills and add recovery commands#23154
Closed
qWaitCrypto wants to merge 7 commits into
Closed
fix(kanban): skip invalid task skills and add recovery commands#23154qWaitCrypto wants to merge 7 commits into
qWaitCrypto wants to merge 7 commits into
Conversation
…ics-preflight-22921 # Conflicts: # tests/tools/test_kanban_tools.py
…-dispatch-recovery-followup
1 task
5 tasks
Contributor
|
Closing in favor of #23183 below. This PR is a strict git superset of #22974 (every commit from there plus two more), and #23183 is in turn a strict superset of this one. See the combined comment on #23183 for the full picture. Quick summary specific to this PR: the create-time validation refactor ( Thanks @qWaitCrypto! |
19 tasks
This was referenced May 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
This PR tightens Kanban dispatch/recovery around operator-fixable task states without introducing a full capability model.
It adds a defensive dispatcher preflight for tasks whose persisted
task.skillsare already known-bad, keeps those tasks inreadywhile surfacing an explicit skip reason, and expands the existing recovery surface with narrow CLI actions for resetting failure counters and clearing stale claim fields.It also adds diagnostics for persisted invalid task skills, missing assignee profiles, and expired running claims.
Related Issue
Related to #22925, #22926
Stacked on top of #22933.
Type of Change
Changes Made
readytasks whose persistedtask.skillscontain known toolset namesDispatchResultandhermes kanban dispatchoutputedit --reset-failuresrecovery commandedit --clear-claimrecovery command for non-running tasks with stale claim fieldsinvalid_task_skillsassignee_profile_not_foundstale_running_claimHow to Test
PYTHONWARNINGS=ignore pytest -q tests/hermes_cli/test_kanban_db.py::test_dispatch_skips_invalid_task_skills_and_keeps_ready tests/hermes_cli/test_kanban_db.py::test_dispatch_skips_invalid_task_skills_without_event_spam tests/hermes_cli/test_kanban_db.py::test_reset_task_failures_clears_counter_and_emits_event tests/hermes_cli/test_kanban_db.py::test_edit_task_recovery_fields_clear_claim_on_non_running_task tests/hermes_cli/test_kanban_core_functionality.py::test_cli_edit_reset_failures tests/hermes_cli/test_kanban_core_functionality.py::test_cli_edit_reset_failures_rejects_result_fields tests/hermes_cli/test_kanban_core_functionality.py::test_cli_edit_clear_claim tests/hermes_cli/test_kanban_core_functionality.py::test_cli_edit_clear_claim_rejects_result_fields tests/hermes_cli/test_kanban_diagnostics.py::test_invalid_task_skills_warns tests/hermes_cli/test_kanban_diagnostics.py::test_assignee_profile_not_found_warns tests/hermes_cli/test_kanban_diagnostics.py::test_stale_running_claim_warnsreadytask sotasks.skillscontainsweb, then runhermes kanban dispatch --jsonand verify it is reported underskipped_invalid_skillsand remainsreadyhermes kanban edit <task_id> --reset-failuresandhermes kanban edit <task_id> --clear-claimto verify both recovery actions succeed on eligible tasks--clear-claim, verify that active running runs are closed as reclaimed, while already-terminal runs are not rewrittenChecklist
Code
fix(scope):,feat(scope):, etc.)pytest tests/ -qand all tests passDocumentation & Housekeeping
docs/, docstrings) — or N/Acli-config.yaml.exampleif I added/changed config keys — or N/ACONTRIBUTING.mdorAGENTS.mdif I changed architecture or workflows — or N/AScreenshots / Logs
9 passed in 18.73s