feat(kanban): allow orchestrator-only graph mutation policy - #68029
feat(kanban): allow orchestrator-only graph mutation policy#68029jkobject wants to merge 1 commit into
Conversation
|
Final reconciliation verification at combined candidate
No deployment or merge was performed. |
|
Thanks for the focused policy implementation. The requested configurable behavior is not present on current main: task-scoped workers still receive Problems
Suggested changes
Automated hermes-sweeper review. |
2388f79 to
5231820
Compare
|
Addressed the live audit on the same contributor branch at Feedback resolution:
Verification: 212 passed, 0 failed, 2 skipped across focused and adjacent Kanban/config/prompt suites; Ruff, Residual risk: |
jkobject
left a comment
There was a problem hiding this comment.
PASS — reviewed immutable revision 52318200993f9c771077a16f1ae31f4bff0a3396.
The opt-in policy is coherent across the canonical default, runtime schema gate, handler enforcement, tool-aware prompt guidance (including init bypass), tests, and public documentation. Existing permissive behavior remains the default; restricted workers cannot create/link even through direct handler calls, while unscoped Kanban orchestrators retain graph mutation.
Evidence: 212 focused/adjacent tests passed (0 failed, 2 skipped); Ruff, py_compile, git diff --check, immutable SHA verification, live thread review, and a clean merge-tree against current origin/main@936dd7346 all passed. No blocking findings.
Summary
kanban.worker_graph_mutationsto the canonicalhermes_cli/config_defaults.pyKanban hierarchy, defaulting to the existing permissive behaviorkanban_create/kanban_linkfrom dispatcher-scoped workers and enforce the same policy again in both mutation handlersagent_initbypass fallback; restricted workers usefollowup-request:commentstoolsets: [kanban]config.yamllocationObservable behavior
Existing installs are unchanged by default. Setting:
prevents dispatcher-scoped workers from creating cards or adding dependency links. The schemas are absent, direct handler bypasses are rejected without DB mutation, and worker guidance names the sanctioned
followup-request:path. Human CLI/dashboard actions and unscoped Kanban orchestrator profiles remain unaffected.No config migration/version bump is required: the public key path remains
kanban.worker_graph_mutations; only the stale source location was corrected afterDEFAULT_CONFIGmoved tohermes_cli/config_defaults.py.Verification
scripts/run_tests.sh tests/tools/test_kanban_tools.py tests/tools/test_kanban_redaction.py tests/tools/test_kanban_comment_injection.py tests/agent/test_prompt_builder.py tests/hermes_cli/test_config.py tests/hermes_cli/test_kanban_core_functionality.py tests/hermes_cli/test_kanban_review_surfaces.py tests/hermes_cli/test_kanban_worker_spawn_toolsets.py— 212 passed, 0 failed, 2 skippedpython -m ruff check ...— passedpython -m py_compile ...— passedgit diff --check— passedRebased onto
origin/main@c0106e50e7ecedb3ce34e785d949725dc4e0e457; contributor head:52318200993f9c771077a16f1ae31f4bff0a3396.