Repository navigation
agent pane: localized strings for the failed-turn causes (split from #24312) - #24529
Conversation
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
Gallery before/after for
States
Pick other states with a red: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on 4213444 to compare; do not merge until green; see lane-rules Tour of |
|
Owned by transcript-parity on cosmic-gray · session |
|
|
|
Found 8 test failures on Blacksmith runners: Failures
|
|
Bead |
…go on
Codex review nit: the line read as "could not continue {harness}".
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
|
Review (codex xhigh, correctness first): SHIP at 2ff0a5c gpt-6.1-sol xhigh on cmux16, diff-only. First pass SHIP at f9ea38f: structure valid, all 21 locales, one |
|
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
…out (#24312) * agent pane: a failed turn's error card that names the cause and the way out Leo: "we need to have prettier errors" and "we also wanna make sure we have good recoverable/informative disk errors tailscale erros for acpmux". A failed turn showed acpmux's bare "agent process closed" with an outlined Copy error. It now draws a card: one human cause line, the way out first (Retry, or Switch model for capacity and keys), and Details opening the agent's own words with Copy error. New kinds: a full disk, a tailnet that no longer reaches the chat's machine, an agent that quit mid-turn and one that could not start; anything unnamed reads "<agent> ran into a problem and stopped." acpmux's typed reason (the turn's errorCode, a string) wins over the words when it names one. The surface is the turn-error-card experiment (glass card, accent rail, quiet note); the glass card ships. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16162-34a1-7a20-bb81-72d00a8457c8&host=cosmic-gray * Error card: specific causes before "quit", tailnet only when it did not connect Codex r1 at 15fdf4f: - "agent process closed" with a login or key error in its stderr read as the agent quitting, hiding Sign in again and Switch model. Quit and could-not-start now come last, after every named cause. - A tailnet host in a message that answered (a 401, a 529) read as Tailscale. Tailscale now needs a sign it did not connect. - A capacity failure drew no Retry in the card, though the test and the docs promise one after Switch model: Retry follows it, unfilled. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16162-34a1-7a20-bb81-72d00a8457c8&host=cosmic-gray * Error card gallery: a neutral machine name, not a fleet host's Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16162-34a1-7a20-bb81-72d00a8457c8&host=cosmic-gray * Error card: a tailnet host's sign-in refusal is not a Tailscale outage Codex r3 at fac5aa6: "HTTP 401 Unauthorized from https://proxy.tail123.ts.net/...: user is logged out; please sign in again" matched the tailnet host and "logged out", so it read as Tailscale and lost Switch model. A sign-in refusal comes from a host that answered: it is never Tailscale now. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16162-34a1-7a20-bb81-72d00a8457c8&host=cosmic-gray * Error card: a sign-in word in a URL is not an answer Codex r4 at 136f107: a timed-out request to https://proxy.tail123.ts.net/oauth/token read as answered (the URL says oauth), so it showed a proxy sign-in refusal instead of Tailscale. Only words outside URLs and tailnet host names count as a host's answer now. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16162-34a1-7a20-bb81-72d00a8457c8&host=cosmic-gray * Error card: a failed dial is no answer, whatever the operation was An auth word outside an address ("OAuth token refresh failed: … dial tcp …: i/o timeout") named the operation, not a reply, so the card said proxy sign-in. Only an HTTP status or its reason phrase counts as an answer, and a failed dial outranks it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16162-34a1-7a20-bb81-72d00a8457c8&host=cosmic-gray * Error card: an address ends at a quote, bracket or comma In a compact JSON error the address pattern ran on through `","status":401`, so the 401 a tailnet proxy answered was stripped with the URL and its "logged out" body read as Tailscale. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16162-34a1-7a20-bb81-72d00a8457c8&host=cosmic-gray * Error card: connection words inside an address are not a failed connection A 401 from https://…ts.net/v1/messages?error=ETIMEDOUT read as a failed dial, so the card said Tailscale. Every connection check now reads only the words outside addresses. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16162-34a1-7a20-bb81-72d00a8457c8&host=cosmic-gray * Turn error card: a tool start failure in an agent that quit reads as quit; Retry needs its row Codex review: "pnpm: command not found" in the stderr of an agent that ran read as the agent failing to start, and the card offered Retry for a turn with no prompt row. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Turn error card strings: match #24529 (Japanese disk-full line) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
|
Shipped in:
|
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Leo-ask: ask-427cc7d8f5
Leo: "we need to have prettier errors" and "we also wanna make sure we have good recoverable/informative disk errors tailscale erros for acpmux".
What changes
This adds the localized strings for #24312's failed-turn card to the agent pane's catalog (
webviews/src/agent-session/acpmux/Localizable.xcstrings). There are five keys in 21 languages, with non-English entries markedneeds_review:turn.failure.diskFullturn.failure.tailscaleturn.failure.agentExitedturn.failure.spawnFailedturn.failure.genericNo code reads these keys until #24312 lands, so this changes nothing on screen. The strings are split out so #24312 stays under the ~800-line rule. They are #24312's catalog lines unchanged, so once this lands, #24312's base merge drops them from its diff with no conflict.
Checks
On huge-blue at this head:
bun run check:catalog-keys(no repeated key): clean.bun run strings: generates.test/pane-english.test.ts: 3 pass.Changelog
none
No capture: catalog only, nothing on screen changes.
Agent session: cosmic-gray
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Adds the localized strings for the agent pane's failed-turn error card to
Localizable.xcstrings, with no visible behavior change. The fiveturn.failure.*keys ship in 21 languages, with the Japanese disk-full line reworded per review so it reads naturally.No code reads these keys yet — PR #24312 consumes them. Landing them first keeps that PR under its size limit, and since they're copied unchanged, #24312's merge drops them from its diff with no conflict.
Written for commit 2ff0a5c. Summary will update on new commits.