fix(native): treat steering cancellation as interruption, not LLM failure #650
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/mausbot-steer-cancellation"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Athena steering cancels the old inference, but the native backend currently reports cancellation and deadline expiry as the same failure. The agent loop renders that as error[llm] and refusal even while the replacement turn succeeds.
Return a typed cancellation after retaining the native receipt and map it to Interrupted(Cancelled), without an LLM error, replay or forced synthesis. Keep real deadlines visible as deadline exceeded; retain distinct receipt reasons before and after admission. Also suppress cancellation errors during forced synthesis. Timeout values and inference transport are unchanged; the separate lost-submission fix remains separate.
OMB 0.1.108 intentionally queues then interrupts for ACP steering (no live steer capability). Companion change in https://github.com/Toasterson/talos/pull/200 discards unfinished cancelled text and tests the real packaged client API through queue, interrupt and replacement. Completed tool records remain intact.
Validation: native HTTP receipt/reconciliation tests 2/2; normal and forced-answer agent-loop cancellation tests 2/2; cargo fmt and git diff --check. Packaged OMB fixture and 55 Node tests pass, including client scope, device attribution/revocation and no superseded fragments; talos server dry-run passes. ACP cancel-routing tests 2/2 and interrupted-response mapping 1/1 pass. Negative control: the original OMB patch fails the same packaged-server test because unfinished cancelled text remains device-visible; the new patch passes.
Live Athena verification remains pending reviewed main deployment; no daemon restart, live prompt, permission/binding change or image build/pin. Deployment from branch artifacts is prohibited by .claude/rules/deploy-from-main.md. See docs/mausbot/steering-cancellation.md for evidence and exact acceptance sequence.