diff --git a/docs/design/current/conversation-timeline/design.html b/docs/design/current/conversation-timeline/design.html
index c10095e9ae17..f9eb01c9f86c 100644
--- a/docs/design/current/conversation-timeline/design.html
+++ b/docs/design/current/conversation-timeline/design.html
@@ -478,6 +478,31 @@
.task-agent i{width:6px;height:6px;border-radius:50%;background:var(--t-task)}
.task-ring{width:16px;height:16px;border-radius:50%;background:conic-gradient(var(--t-task) 60%,var(--a-bg-inset) 0);position:relative;flex:none}
.task-ring::after{content:"";position:absolute;inset:3.5px;border-radius:50%;background:var(--a-surface)}
+
+/* ═══ 2026-07-24 补帧:bash 流式输出 / 文件徽章六态 / 媒体预览行 / 会话内空态 ═══ */
+/* bash 运行中:终端流实时增行,尾行块状光标 */
+.term .cur{display:inline-block;width:7px;height:14px;background:var(--a-text-secondary);vertical-align:text-bottom;margin-left:1px;animation:caret 1.05s step-end infinite}
+/* 文件行徽章(六态一览) */
+.fbadge{font-size:var(--a-text-2xs);font-weight:700;padding:1px 7px;border-radius:var(--a-radius-full);flex:none}
+.fbadge.read{background:color-mix(in srgb,var(--t-read) 14%,transparent);color:var(--t-read)}
+.fbadge.write{background:color-mix(in srgb,var(--t-write) 14%,transparent);color:var(--t-write)}
+.fbadge.move{background:var(--a-purple-subtle);color:var(--a-purple)}
+.fbadge.addk{background:var(--a-success-subtle);color:var(--a-success)}
+.fbadge.modk{background:var(--a-warning-subtle);color:var(--a-warning)}
+.fbadge.delk{background:var(--a-error-subtle);color:var(--a-error)}
+/* 助手侧媒体预览行(工具产出的图片 / 截图) */
+.media-row{display:inline-flex;align-items:center;gap:11px;padding:7px 12px 7px 7px;background:var(--a-surface);border:1px solid var(--a-border-faint);border-radius:var(--a-radius-lg);box-shadow:var(--a-edge-light);cursor:pointer;align-self:flex-start;transition:border-color var(--a-dur-fast)}
+.media-row:hover{border-color:var(--a-border-strong)}
+.media-row .mthumb{width:76px;height:52px;border-radius:var(--a-radius-md);border:1px solid var(--a-border);background:linear-gradient(135deg,#c7d2fe,#a5b4fc);display:grid;place-items:center;color:rgba(255,255,255,.95);flex:none}
+.media-row .mthumb .ic{width:17px;height:17px}
+.media-row .nm{display:flex;flex-direction:column;min-width:0}
+.media-row .nm b{font-size:var(--a-text-sm);font-weight:var(--a-weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
+.media-row .nm small{font-size:var(--a-text-2xs);color:var(--a-text-tertiary)}
+/* 会话内空态(轻着陆) */
+.sess-empty{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;color:var(--a-text-tertiary);padding:20px}
+.sess-empty .se-name{font-size:var(--a-text-lg);font-weight:var(--a-weight-semibold);letter-spacing:var(--a-tracking-tight);color:var(--a-text)}
+.sess-empty p{margin:0;font-size:var(--a-text-sm);max-width:38ch;line-height:var(--a-leading-normal)}
+.sess-empty .down{color:var(--a-text-disabled);margin-top:2px}
@@ -492,7 +517,7 @@
P0 · 时间线全量重做
把整条时间线统一成一套克制、信息密度高的 alpha 卡片语言
本稿覆盖经真机 DOM 核对的 全部 ~52 个构件(取代旧稿只覆盖 1/3)。设计取向:开发者工具应当安静、可扫读、密而不噪 —— 中性灰底 + 单一克制 indigo 强调,工具按类型着色,运动只用在状态变化的高价值瞬间。每块都标注了真机 data-component/data-slot 钩子 + 接缝 + 现状(已优化 / 部分 / 裸样式),因此它也是落地 spec。详见同目录 audit.md / tasks.md。
- 本稿同时是时间线组件的全量活稿:组件帧按 ①–⑤ 分区陈列;已批的「产物链接行与右栏预览联动」增量已并入 ⑥ 节(帧 verbatim 引自增量稿);各消息类型的帧覆盖情况与缺帧待补,见 ⑦「
组件索引与待补」。整页装配(单一顶栏 / 右栏四面板 / 输入框停靠)见
session-workspace 整页稿;本稿只管时间线行类型本身,两稿表述冲突时组件形态以本稿为准。
2026-07-23 补帧更新:新增回合级错误卡(②)、匹配文件卡(③)、用户消息内联代码评论卡(①)三帧;附件卡与子任务卡重锚 v2 形态(帧外注记「由 v1 形态更新」);渲染位 / 回合分隔 / 右栏历史参照三处帧外注记修正;待补清单同步。
+ 本稿同时是时间线组件的全量活稿:组件帧按 ①–⑤ 分区陈列;已批的「产物链接行与右栏预览联动」增量已并入 ⑥ 节(帧 verbatim 引自增量稿);各消息类型的帧覆盖情况与缺帧待补,见 ⑦「
组件索引与待补」。整页装配(单一顶栏 / 右栏四面板 / 输入框停靠)见
session-workspace 整页稿;本稿只管时间线行类型本身,两稿表述冲突时组件形态以本稿为准。
2026-07-23 补帧更新:新增回合级错误卡(②)、匹配文件卡(③)、用户消息内联代码评论卡(①)三帧;附件卡与子任务卡重锚 v2 形态(帧外注记「由 v1 形态更新」);渲染位 / 回合分隔 / 右栏历史参照三处帧外注记修正;待补清单同步。
2026-07-24 补帧更新:新增 bash 流式输出帧(③)、文件行徽章六态一览(③)、助手侧媒体预览行(②)、会话内空态帧(④)四帧;待补仅剩「消息导航(代码未接线)」一项。
① 用户输入侧
@@ -581,6 +606,11 @@ 实现要点
- 探查目录结构
- 读关键文件
- 浓缩成一句话简介
+ 媒体预览行(工具产出的图片 / 截图)
+
+
+
+
正在补 data-loading 态的 a11y 处理
@@ -597,6 +627,7 @@ 实现要点
新帧 · 回合级错误卡:助手回合末的全宽错误行(限流 / 接口报错 / 上下文超限三类场景),纯文本、无重试与换模型按钮。与 ③ 的「工具级错误卡」是两个组件:回合级 = 行模型的错误行,挂在回合末,只陈述事实与下一步;工具级 = 内嵌在具体工具卡里、带动作按钮。未知错误代码按原样 mono 展示(fail-closed,不猜翻译)。
+ 新帧 · 媒体预览行:工具产出的图片 / 截图以「缩略图 + 文件名 + 尺寸元信息」成行,挂在产出它的助手回合内;点击 → 右栏「产物」面板聚焦该文件 —— 联动契约与产物链接行同一套(见 ⑥ 与 session-workspace 稿),此处只定行形态。
③ 工具卡:通用外壳 + 4 态
@@ -612,6 +643,14 @@ 每个工具一张卡;运行 / 完成 / 错误 / 待批 都有明
$ ls -la
app/ docs/ tests/ docker-compose.yml pyproject.toml
+
+
+
跑一遍单元测试,输出实时可见
+
$ bun test src
+✓ indicators · kama 收敛 (12ms)
+✓ prompt_builder · 字段齐全 (8ms)
+admission · 阈值边界 …
+
{"detail":"Not Found"} — 代理 baseURL 或模型 ID 不存在
@@ -668,6 +707,18 @@ 每个工具一张卡;运行 / 完成 / 错误 / 待批 都有明
删除src/main/ legacy.ts−10
+ 文件行徽章 · 六态一览(2026-07-24 补齐 读取 / 写入 / 移动)
+
+
+
+
读取app/ prompt_builder.py
+
写入AGENTS.md+96
+
移动src/legacy/ util.ts → src/main/ util.ts
+
新增src/main/ proxy.ts+30
+
修改src/main/ ipc.ts+14−2
+
删除src/main/ legacy.ts−10
+
+
抓取网页developer.mozilla.org/…/aria-busy
完成
@@ -695,6 +746,7 @@ 每个工具一张卡;运行 / 完成 / 错误 / 待批 都有明
由 v1 形态更新(子任务卡):子任务卡从通用 spinner 重锚为 v2 形态 —— agent 主题色点缀(名称旁色点)+ 环形进度指示 + 「打开子会话」跳转。新帧(匹配文件):glob 工具卡,标题行 = 图标 + 「匹配文件」+ 模式 + 计数,展开为匹配列表,形态对齐既有读取 / 检索卡。
+ 新帧 · bash 流式输出:运行中的命令卡沿用通用运行态(强调边框 + 扫线 + 运行 chip),输出体 = 终端流实时增行、尾行块状光标;命令结束即转为其上方的完成态帧 —— 状态翻「退出 N」、光标消失、输出定格,卡片本体不换。新帧 · 文件行徽章六态一览:读取 / 写入 / 移动为本次补齐,新增 / 修改 / 删除与应用补丁卡同一套;徽章只表动作类别,统计徽标照旧。
渲染位注记:本节的「请求审批」待批卡、任务清单卡、提问可选项卡,真实渲染位为
输入框上方的停靠区(不是时间线行);落地时挂载点以
session-workspace 稿的审批停靠帧为准。此处帧只定卡片形态。
@@ -720,6 +772,16 @@ 分组 / 本回合改动 / 压缩 / 回合分隔
回合分隔注记:带时间戳的回合分隔条在 v2 真机仅渲染为不可见间隔;此帧为设计意图(可见分隔),是否落地归 seam 实现时决定。
+ 会话内空态 · 刚进入的着陆形态(2026-07-24 补)
+
+
+
整理架构说明
+
这个会话还没有内容 —— 在下方输入框说点什么,或用 / 调用命令开始。
+
+
+
+ 与首页空态的分工:首页问候面(composer 稿)= 全局着陆,带问候语、最近项目与工作区选择;会话内空态 = 已建会话、零消息时的轻着陆 —— 只有会话名 + 一句指向下方输入框的引导,不复制问候面、不放快捷卡。输入框本体与停靠位置归 session-workspace 稿。
+
⑤ 右侧审查面板(整块裸 → 接管换肤)
左侧紧凑卡「在面板打开」→ 右侧 alpha 化的审查 / diff / 终端
@@ -870,12 +932,12 @@ 每类消息的帧在哪 · 哪些还没有帧
| 右栏审查 / 终端(换肤基线) | ⑤ 审查面板;整页四面板形态另见 session-workspace 稿 | 有帧 |
| 产物链接行 + 右栏预览联动 | ⑥ 产物链接行 | 有帧 |
| glob(按模式匹配文件)工具卡 | ③ 工具卡(2026-07-23 补) | 有帧 |
- | bash 运行中的流式输出子消息(终端流实时增行) | —(现有 bash 帧为完成态) | 待补 |
- | 文件 part 徽章全集(读取 / 写入 / 移动;新增 / 修改 / 删除已有) | —(新增 / 修改 / 删除见 ③ 应用补丁卡) | 待补 |
- | 助手侧截图 / 图片 / 媒体预览行 | —(仅有用户附件缩略图,① 节) | 待补 |
+ | bash 运行中的流式输出子消息(终端流实时增行) | ③ 工具卡(2026-07-24 补,完成态帧旁) | 有帧 |
+ | 文件 part 徽章全集(读取 / 写入 / 移动 / 新增 / 修改 / 删除) | ③ 工具卡 · 六态一览条(2026-07-24 补齐) | 有帧 |
+ | 助手侧截图 / 图片 / 媒体预览行 | ② 助手输出侧(2026-07-24 补) | 有帧 |
| 行内代码评论(用户消息内) | ① 用户输入侧(2026-07-23 补);右栏审查侧评论见 session-workspace 稿 | 有帧 |
| 消息导航(上一条 / 下一条跳转) | —(仅有「滚动到底」按钮,④ 节;上一条 / 下一条导航代码未接线) | 待补 |
- | 空态(新会话欢迎面) | —(首页问候面归 composer 稿;会话内空态待补) | 待补 |
+ | 空态(会话内轻着陆) | ④ 结构(2026-07-24 补);首页问候面归 composer 稿 | 有帧 |