fix(kanban): preserve creation-time blocked provenance - #77049
fix(kanban): preserve creation-time blocked provenance#77049mattboostkit wants to merge 2 commits into
Conversation
Independent verification: NO SHIPHigh blocker — malformed creation provenance can still crash the dispatcher. At exact head Reproduced on Python 3.11 with an isolated payload = "[" * 2000 + "]" * 2000
# write payload to the blocked task's created event
kb.recompute_ready(conn)
# RecursionError: maximum recursion depth exceeded while decoding a JSON arraySmallest remediation: fail closed before/around parsing (a sane payload-size cap plus catching Other reproduced evidence on this SHA: focused suite 63/63 passed; independent 19-case normal/malformed matrix passed; ruff, compileall, diff check passed; |
Recursive payload blocker remediatedUpdated exact head: Smallest fail-closed change:
Verification on this head:
No merge, install, restart, live database, service, or config mutation was performed. Independent exact-SHA review is queued on Kanban card |
|
Independent exact-SHA review: SHIP I reviewed commit Evidence:
Verification:
Residual risk is low. Corrupt provenance intentionally fails closed and may require explicit operator recovery. I did not run the entire repository suite. This verdict applies only to exact commit |
Summary
initial_status="blocked"creation events as sticky human-ops provenanceunblockedorpromoted_manualeventsVerification
scripts/run_tests.sh -j 4 tests/hermes_cli/test_kanban_blocked_sticky.py tests/hermes_cli/test_kanban_block_kinds.py tests/hermes_cli/test_kanban_cli.py tests/tools/test_kanban_tools.py tests/cli/test_cli_tools_command.py -q— 63 passeduv run ruff check hermes_cli/kanban_db.py tests/hermes_cli/test_kanban_blocked_sticky.py— passeduv run python -m compileall -q hermes_cli/kanban_db.py tests/hermes_cli/test_kanban_blocked_sticky.py— passedgit diff --check— passedBroader baseline notes
tests/hermes_cli/test_kanban_db.pyhas 3 reproducible Windows/environment failures outside this diff: wait-status encoding, Git worktree slash normalization, and installed-shim fallback.npm run checkexits non-zero in existing JS workspace checks; this change touches no JS files.Review
Independent read-only review found three malformed-payload edge cases during iteration; all were fixed and regression-tested. Final re-review: no findings.