fix(next): show automatic retry and resume status in agent chats
Main chats now show the daemon's pending automatic retry and a compact “Automatically resumed (attempt N)” notice after recovery, including when reconnecting to a Cloud session. The marker clears on the next ordinary prompt; manual and subagent retries are excluded. The existing notice slot handles priority, and raw continuation prompts stay hidden.
Next-issue: #15301
Fixes #15301
Requested behavior: “An agent whose turn does end on a retryable error resumes on its own within about a minute, and the resume is visible in the UI.”
Same-model capacity handling already landed in #15310; daemon recovery and persistence landed in #25232, #27921 and #27924. This closes the remaining main-chat visibility gap without changing retry scheduling, limits, model selection or opt-out behavior.
Design: leo-workspace design/chat-transcript.md; Claude composer status-row reference. Reuses the existing muted notice style. Gallery: agent-pane.auto-resume (capacity-wait, connection-wait, resumed, cleared). Risk is limited to deriving and displaying chat status; no new timer or observer.
Validation at b7f281c3e62c4ccf994fc1cd15345acc602cf97d:
- Static pre-push and formatting checks pass.
- Fleet red/green: both protocol-driven main-chat cases fail with the client patch reversed; all 28 focused tests pass with it restored.
- Browser gallery checks read pending, resumed and cleared states in light and dark; primary visual inspection passed. Test and capture run. That run's final typecheck included its temporary capture script. The separate clean typecheck/lint run passes: 3,898 files typechecked and seven changed source files linted, zero errors or warnings.
- Independent gpt-6-astra high review: SHIP. New-marker edge cases are filed as owned follow-ups: #31659 (injected messages) and #31660 (older-history/reconnect retention).
- Existing base warning:
test_ci_display_suites.pyreports the same missingCmuxNextAppTests.HibernationWakeCoverTestsentry in the PR run and the exact base run. The inputs are unchanged by this PR.
Additional CI reconciliation: scripts/ci/test_reds.py classify reports no new failing tests for the static-check workflow or release-notary. The same check:menu-gutters workflow-coverage assertion and layout-grid routing failure occur on base. The release-note validation and two missing nightly warm-source declarations also match base 34446e1's run; Guard status aggregates those failures.
Agent session: agent session