Skip to content

test(desktop): story-cover chat transcript failure and edge states - #4211

Open
liuxiaocs7 wants to merge 1 commit into
apache:mainfrom
liuxiaocs7:liuxiaocs7/chat-rendering-failure-states
Open

test(desktop): story-cover chat transcript failure and edge states#4211
liuxiaocs7 wants to merge 1 commit into
apache:mainfrom
liuxiaocs7:liuxiaocs7/chat-rendering-failure-states

Conversation

@liuxiaocs7

@liuxiaocs7 liuxiaocs7 commented Aug 29, 2026

Copy link
Copy Markdown
Member

test(desktop): story-cover chat transcript failure and edge states

Sixth surface under #3944 (one surface per PR): extend the chat transcript
(ChatView → materializeTurns → TurnView, via Product/Shell Official AppShell)
with the failure and edge states that never show up in normal use. All feed a
real message ledger through ComposedShell, like InterruptedToolAfterTurnAbort.

  • FailedTurnWithToolError — a tool call errors mid-turn and the turn settles
    failed: the errored tool row plus the failed Banner + erroredTool description.
  • ProviderRateLimited — a settled failed turn with errorClass 'rate_limit'.
  • ProviderRetrying — a live turn whose providerRetry swaps the working phrase
    for the ModelProviderRetryIndicator banner.
  • SafeResumeAfterRestart — the last turn failed with errorClass 'app_restarted',
    offering the warning-severity Banner with the 继续这一轮 safe-resume button.
  • ManyTurns — 120 turns, past the transcript virtualizer's window (review
    feedback: 20 did not guarantee the virtualization path).

Streaming, aborted/interrupted, empty, and long-message states were already
covered, so this adds only the genuinely missing ones. All are safe
presentational states driven by the message ledger and live overlay.

Refs #3944, #3893

Generative tooling

Claude Code contributed substantially here — it authored these Storybook stories. The human contributor of record reviewed and submitted the change, and each commit carries a Generated-by: Claude Code trailer per CONTRIBUTING.md.

Visual evidence

Storybook stories captured with Playwright (hosted on the fork's release assets).

failed-turn-with-tool-error — normal / light · narrow / dark

failed-turn-with-tool-error normal / light failed-turn-with-tool-error narrow / dark

provider-rate-limited — normal / light · narrow / dark

provider-rate-limited normal / light provider-rate-limited narrow / dark

provider-retrying — normal / light · narrow / dark

provider-retrying normal / light provider-retrying narrow / dark

safe-resume-after-restart — normal / light · narrow / dark

safe-resume-after-restart normal / light safe-resume-after-restart narrow / dark

many-turns — normal / light · narrow / dark

many-turns normal / light many-turns narrow / dark

Sixth surface under apache#3944 (one surface per PR): extend the chat transcript
(ChatView → materializeTurns → TurnView, via Product/Shell Official AppShell)
with the failure and edge states that never show up in normal use. All feed a
real message ledger through ComposedShell, like InterruptedToolAfterTurnAbort.

- FailedTurnWithToolError — a tool call errors mid-turn and the turn settles
  `failed`: the errored tool row plus the failed Banner + erroredTool description.
- ProviderRateLimited — a settled `failed` turn with errorClass 'rate_limit'.
- ProviderRetrying — a live turn whose providerRetry swaps the working phrase
  for the ModelProviderRetryIndicator banner.
- SafeResumeAfterRestart — the last turn failed with errorClass 'app_restarted',
  offering the warning-severity Banner with the 继续这一轮 safe-resume button.
- ManyTurns — 120 turns, past the transcript virtualizer's window (review
  feedback: 20 did not guarantee the virtualization path).

Streaming, aborted/interrupted, empty, and long-message states were already
covered, so this adds only the genuinely missing ones. All are safe
presentational states driven by the message ledger and live overlay.

Refs apache#3944, apache#3893

Generated-by: Claude Code
@liuxiaocs7
liuxiaocs7 force-pushed the liuxiaocs7/chat-rendering-failure-states branch from f63b424 to a3cdcfe Compare August 29, 2026 21:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

effort/M Under 500 readable lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant