Skip to content

fix(ui): render transcript failure and retry notices as card banners #5799

Closed

Description

@Colafornia
English

Part of #TBD-tracker.

Problem

When a turn fails, the transcript shows a square, full-bleed red block inside the 800px message column. The provider retry notice has the same shape in yellow.

Both notices pass container="section" to Astryx Banner:

  • packages/ui/src/chat-turn.tsx (failed-turn banner)
  • packages/ui/src/provider-retry-notice.tsx (provider retry notice)

Astryx documents section as a "full-width section banner (no border-radius)", meant for page edges. The default, card, is a standalone banner with a radius and is the variant for content inside a column.

Desired outcome

Both notices render as card banners, so they read as part of the turn instead of as a page-level alert.

This is an interim fix. C1 may move the failed-turn notice onto the message metadata row. The change is two props and can merge before C1.

One fact constrains any later change: the retry notice is a role="status" live region whose ticking countdown is aria-hidden so its accessible name stays stable. If C1 replaces the banner with a slimmer element, that element must keep announcing. See ModelProviderRetryIndicator in chat-turn.tsx.

Acceptance criteria

  • Both Banner calls use the default card container.
  • .maka-turn-failed-banner keeps only the rules still needed. The PR reports any rule it removes.
  • Before and after captures of FailedTurnWithToolError and ProviderRetrying in light and dark are in the PR. Use the A0 loop when it exists.
中文

属于 #TBD-tracker。

问题

一轮对话失败时,对话流会在 800px 宽的消息栏里显示一块直角、满宽的红色色块。服务商重试提示的形状相同,只是颜色为黄色。

这两个提示都给 Astryx Banner 传了 container="section":

  • packages/ui/src/chat-turn.tsx(失败轮次横幅)
  • packages/ui/src/provider-retry-notice.tsx(服务商重试提示)

Astryx 文档把 section 定义为“满宽的区块横幅(无圆角)”,用于页面边缘。默认值 card 是带圆角的独立横幅,才是用于栏内内容的形态。

期望结果

两个提示都显示为卡片横幅,看起来是这一轮对话的一部分,而不是页面级警告。

这是过渡修复。C1 可能会把失败轮次提示移到消息元数据行。本次只改两个属性,可以先于 C1 合并。

有一个事实约束后续的改动:重试提示是一个 role="status" 实时区域,每秒跳动的倒计时被 aria-hidden,以保证它的可访问名称保持稳定。如果 C1 用更轻的元素替换横幅,替换后的元素必须继续承担播报职责。参见 chat-turn.tsx 中的 ModelProviderRetryIndicator。

验收标准

  • 两处 Banner 调用都使用默认的 card 容器。
  • .maka-turn-failed-banner 只保留仍然需要的规则。PR 报告删除了哪些规则。
  • PR 中附上 FailedTurnWithToolError 和 ProviderRetrying 在浅色和深色模式下的前后对比截图。如果 A0 已落地,使用它的截图流程。

Activity

  1. self-assigned this
    on Sep 28, 2026
  2. ggbdpq commented on Oct 9, 2026

    @ggbdpq
    Contributor

    take

  3. github-actions commented on Oct 9, 2026

    @github-actions

    Issue #5799 is already assigned to Colafornia, so it was not reassigned.

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

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions