fix(native): treat steering cancellation as interruption, not LLM failure #650

Merged
toasterson merged 1 commit from fix/mausbot-steer-cancellation into main 2026-10-15 20:37:11 +00:00
Owner

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.

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.
fix(native): distinguish steering cancellation from inference deadlines
All checks were successful
CI / docker-seshd (pull_request) Successful in 9m43s
CI / test-sokar (pull_request) Successful in 10m0s
CI / docker-akh-transcripts (pull_request) Successful in 9m49s
CI / publish-chart (pull_request) Successful in 1m23s
CI / check-seshat (pull_request) Successful in 16m11s
CI / test-session-platform (pull_request) Successful in 18m14s
CI / test-akh-medu (pull_request) Successful in 18m52s
CI / check-akh-medu (pull_request) Successful in 22m49s
CI / platform-images-home (pull_request) Successful in 1m10s
CI / docker-sokard (pull_request) Successful in 27m31s
CI / platform-images-core (pull_request) Successful in 2m21s
CI / platform-images-daemons (pull_request) Successful in 14m5s
CI / platform-images-fleet (pull_request) Successful in 1m44s
CI / platform-images-collect (pull_request) Successful in 6m42s
96d906fe37
toasterson deleted branch fix/mausbot-steer-cancellation 2026-10-15 20:37:16 +00:00
Sign in to join this conversation.
No reviewers
No labels
follow-up
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
toasterson/akh-medu!650
No description provided.