Skip to content

agent pane: localized strings for the failed-turn causes (split from #24312) - #24529

Merged
teamleaderleo merged 2 commits into
feat-cmux-nextfrom
tp/turn-error-strings
Oct 23, 2026
Merged

teamleaderleo merged 2 commits into
feat-cmux-nextfrom
tp/turn-error-strings

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 23, 2026 •

Copy link
Copy Markdown
Collaborator

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 marked needs_review:

  • turn.failure.diskFull
  • turn.failure.tailscale
  • turn.failure.agentExited
  • turn.failure.spawnFailed
  • turn.failure.generic

No 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


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with 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 five turn.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.

View guided diff Turn on auto-fix

…24312)

Five turn.failure keys in 21 languages: diskFull, tailscale, agentExited,
spawnFailed, generic. #24312 uses them; landing them first keeps that PR
under the size rule.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@teamleaderleo teamleaderleo added the risk:low Risk tier (docs/ci/risk-tiers.md) label Oct 23, 2026
@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review 2ff0a5c: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr24529 -f ref=tp/turn-error-strings -f platform=macos -f backend_mode=local

Gallery before/after for 2ff0a5c: 16 states rendered, 10 images differ, 593 more touched states not rendered. Images are in the run's artifact, not on this public PR.

gh run download 39943480534 -R manaflow-ai/cmux -n gallery-advisory-24529-2ff0a5c532c8ed996643a9785a471f335116b2ed (then read gallery-review.json)

States
State Theme Status Diff Picked by
agent-pane.url-chip/globe Apple System Colors Light unchanged 0% names Localizable.xcstrings
agent-pane.url-chip/globe Apple System Colors unchanged 0% names Localizable.xcstrings
agent-pane.url-chip/cached-favicon Apple System Colors Light unchanged 0% names Localizable.xcstrings
agent-pane.url-chip/cached-favicon Apple System Colors unchanged 0% names Localizable.xcstrings
agent-pane.url-chip/token-url Apple System Colors Light unchanged 0% names Localizable.xcstrings
agent-pane.url-chip/token-url Apple System Colors unchanged 0% names Localizable.xcstrings
agent-pane.url-chip/pull-request Apple System Colors Light unchanged 0% names Localizable.xcstrings
agent-pane.url-chip/pull-request Apple System Colors unchanged 0% names Localizable.xcstrings
agent-pane.url-chip/pull-request-lines-by-kind Apple System Colors Light unchanged 0% names Localizable.xcstrings
agent-pane.url-chip/pull-request-lines-by-kind Apple System Colors unchanged 0% names Localizable.xcstrings
agent-pane.url-chip/pull-request-base-reds Apple System Colors Light unchanged 0% names Localizable.xcstrings
agent-pane.url-chip/pull-request-base-reds Apple System Colors unchanged 0% names Localizable.xcstrings
agent-pane.url-chip/pull-request-all-reds-on-base Apple System Colors changed 1.28% names Localizable.xcstrings
agent-pane.url-chip/pull-request-all-reds-on-base Apple System Colors Light unchanged 0% names Localizable.xcstrings
agent-pane.url-chip/pull-request-no-tests Apple System Colors changed 1.17% names Localizable.xcstrings
agent-pane.url-chip/pull-request-no-tests Apple System Colors Light unchanged 0% names Localizable.xcstrings
agent-pane.add-project-panel/environment Apple System Colors Light unchanged 0% same-folder Localizable.xcstrings
agent-pane.add-project-panel/environment Apple System Colors unchanged 0% same-folder Localizable.xcstrings
agent-pane.add-project-panel/sources Apple System Colors Light unchanged 0% same-folder Localizable.xcstrings
agent-pane.add-project-panel/sources Apple System Colors unchanged 0% same-folder Localizable.xcstrings
agent-pane.add-project-panel/directory Apple System Colors Light unchanged 0% same-folder Localizable.xcstrings
agent-pane.add-project-panel/directory Apple System Colors unchanged 0% same-folder Localizable.xcstrings
agent-pane.add-project-panel/keyboard Apple System Colors Light unchanged 0% same-folder Localizable.xcstrings
agent-pane.add-project-panel/keyboard Apple System Colors unchanged 0% same-folder Localizable.xcstrings
agent-pane.bottom-stack/pr-queue Apple System Colors Light changed 0.0551% same-folder Localizable.xcstrings
agent-pane.bottom-stack/pr-queue Apple System Colors changed 0.0277% same-folder Localizable.xcstrings
agent-pane.bottom-stack/trust-permission-queue Apple System Colors changed 0.0159% same-folder Localizable.xcstrings
agent-pane.bottom-stack/trust-permission-queue Apple System Colors Light changed 0.0048% same-folder Localizable.xcstrings
agent-pane.bottom-stack/trust-individual-queue Apple System Colors changed 0.0443% same-folder Localizable.xcstrings
agent-pane.bottom-stack/trust-individual-queue Apple System Colors Light changed 0.0277% same-folder Localizable.xcstrings
agent-pane.bottom-stack/trust-then-permission Apple System Colors changed 0.03% same-folder Localizable.xcstrings
agent-pane.bottom-stack/trust-then-permission Apple System Colors Light changed 0.0205% same-folder Localizable.xcstrings

Pick other states with a Gallery: entry.id, entry.id/variant line in the PR body.

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 2ff0a5c532 (run): no media. The tour did not run: only webview code changed (1 path(s)), which the gallery advisory run checks in Linux Chromium on the pull request (its artifact holds any captures); add the media-tour-mac label, then re-add media-tour, to tour it on a Mac.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Owned by transcript-parity on cosmic-gray · session

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

rust workspaces / plan (changed Cargo workspaces) is red on 20 of 20 fresh feat-cmux-next PR heads in the last 2:00:00, so it is most likely a base red, not this PR's. The base-reds lane has it; a base merge picks up the fix once it lands.

@blacksmith-sh

blacksmith-sh Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Found 8 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmp2pynjm9x/summary-missing.json (live):/summary-missing.json (live): View Logs
/tmp/tmpepgmieha/summary-fail.json (live):/summary-fail.json (live): View Logs
[tabs] debug.tab_switch timed 0 of 40 switches/
[tabs] debug.tab_switch timed 0 of 40 switches
View Logs
[tabs] debug.tab_switch timed 0 of 40 switches/
[tabs] debug.tab_switch timed 0 of 40 switches
View Logs
[tabs] the window draws no frames/[tabs] the window draws no frames View Logs
[tabs] the window draws no frames/[tabs] the window draws no frames View Logs
test_base_passes (main.NoticesPairTests.test_base_passes)/
test_base_passes (main.NoticesPairTests.test_base_passes)
View Logs
test_targets_outside_the_app_go_to_the_mac_canary (main.SwiftCanaryFleetCoverage.te
st_targets_outside_the_app_go_to_the_mac_canary)/
test_targets_outside_the_app_go_to_the_mac_canary (main.SwiftCanaryFleetCoverage.te
st_targets_outside_the_app_go_to_the_mac_canary)
View Logs

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Bead cx-2ppny created for this PR by the cmux coordinator.

…go on

Codex review nit: the line read as "could not continue {harness}".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@cursor

cursor Bot commented Oct 23, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot 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.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

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 {harness} per translation matching the calls in #24312. Its one nit (ja turn.failure.diskFull read as "could not continue {harness}") is fixed in 2ff0a5c, and the delta review passed it: SHIP.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

rust workspaces / rust workspaces is red on 20 of 20 fresh feat-cmux-next PR heads in the last 2:00:00, so it is most likely a base red, not this PR's. The base-reds lane has it; a base merge picks up the fix once it lands.

teamleaderleo added a commit that referenced this pull request Oct 23, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

cmux-next guards / nightly-guards / workflow-guard-tests / release-notary is red on 13 of 17 fresh feat-cmux-next PR heads in the last 2:00:00, so it is most likely a base red, not this PR's. The base-reds lane has it; a base merge picks up the fix once it lands.

@teamleaderleo
teamleaderleo merged commit f8fbe14 into feat-cmux-next Oct 23, 2026
139 of 146 checks passed
@teamleaderleo
teamleaderleo deleted the tp/turn-error-strings branch October 23, 2026 11:21
teamleaderleo added a commit that referenced this pull request Oct 23, 2026
…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>
@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:low Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant