acpmux cloud hand-off: a stopped automatic retry says it was stopped, not "settled (policy)"

Merged
TE
6d ago
+25-3

Fixes manaflow-ai/cmuxterm-hq#5311.

Leo asked for this work (2026-10-31): "do we have more productionized stuff wrt the daemon and then the cloud related things how's that going if there's more stuff let's go set up more fellas on it"

What was wrong

In daemon/cloud_handoff.rs, step_of handled auto_resume_stopped in the same arm as auto_resume_settled and auto_resume_exhausted. That arm reads its reason from why or reason. The hub writes auto_resume_stopped with only {turnId, promptId} (hub/auto_resume.rs, the Stop path), so the arm always used its default. A hand-off turn whose automatic retry the person stopped was reported failed with the summary "Automatic retry settled (policy)."

Change

auto_resume_stopped now has its own arm with the summary "Automatic retry stopped.". If the record names no hand-off turn, it still maps to Step::NoRetry, the same as before.

Tests

records_map_to_steps gets an auto_resume_stopped case with a hand-off prompt id. It also adds auto_resume_stopped to the list of kinds that give NoRetry when no turn is named.

  • Red (test only, at base): left: "Automatic retry settled (policy)." right: "Automatic retry stopped."
  • Green: cargo test -p acpmux --lib cloud_handoff: 45 passed.

Risk: low. Only the summary text of one record kind changes. The step it maps to and the hand-off state machine stay the same.

Agent session: agent session

šŸ¤– Generated with Claude Code