0959224313
complete_task authorised a terminal transition by task status alone; the `current_run_id = ?` fence only applied when the caller volunteered expected_run_id (derived from HERMES_KANBAN_* env). A human at the CLI, an orchestrator session or any env-less caller therefore marked a `running` card done and _end_run closed the dispatcher worker's run row while that worker kept executing (#111764). Mirror the fence request_review already carries: a `running` task under a live claim needs expected_run_id (worker ownership) or force=True (explicit operator override), otherwise LiveClaimError. `hermes kanban complete --force` and the dashboard's "mark done" (a human action) carry the override; the kanban_complete tool reports a structured refusal. Completing `ready`, `blocked` or `review` cards without a claim is unchanged, so the manual / orchestrator flows PR #73188 pinned keep working. Fixes #111764