fix(kanban): harden worker ownership and recovery paths#23334
Closed
qWaitCrypto wants to merge 3 commits into
Closed
fix(kanban): harden worker ownership and recovery paths#23334qWaitCrypto wants to merge 3 commits into
qWaitCrypto wants to merge 3 commits into
Conversation
Contributor
Author
19 tasks
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 is a focused Kanban resubmission against current
main.Create-time validation for toolset names in
task.skillshas already landedseparately in #23273. This PR intentionally does not reimplement that path.
It resubmits only the still-novel pieces from the earlier stacked PRs:
Related Issue
Related to #22925, #22926, #22927.
Follow-up to #23209.
Builds on #23273, which already landed create-time validation for toolset
names in
task.skills.Supersedes the earlier stacked PRs #22974, #23154, and #23183 by resubmitting
only the still-novel Kanban hardening pieces against current
main.Type of Change
Changes Made
invalid_task_skills,assignee_profile_not_found, andstale_running_claimhermes kanban edit <task> --clear-skillshermes kanban edit <task> --reset-failureshermes kanban edit <task> --clear-claimthey cannot spawn correctly:
skillsrun_agent.pyinstead of hand-rolling large inline result dictsHow to Test
pytest -q tests/hermes_cli/test_kanban_diagnostics.py 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_db.py::test_edit_task_recovery_fields_clear_claim_keeps_terminal_run_terminal tests/hermes_cli/test_kanban_core_functionality.py::test_cli_edit_clear_skills_on_non_running_task tests/hermes_cli/test_kanban_core_functionality.py::test_cli_edit_clear_skills_rejects_running_task tests/hermes_cli/test_kanban_core_functionality.py::test_cli_edit_clear_skills_rejects_result_fields 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_core_functionality.py::test_worker_startup_guard_rejects_reclaimed_run tests/hermes_cli/test_kanban_core_functionality.py::test_worker_startup_guard_rejects_superseded_run_without_failure tests/hermes_cli/test_kanban_core_functionality.py::test_worker_startup_guard_requires_claim_lock tests/run_agent/test_kanban_worker_startup_guard.pypytest -q tests/hermes_cli/test_kanban_db.py::test_dispatch_skips_invalid_task_skills_and_keeps_readyreadytask sotasks.skillscontains a toolset name, 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 tasksChecklist
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
44 passed in 38.48s