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 @@

实现要点

  1. 探查目录结构
  2. 读关键文件
  3. 浓缩成一句话简介
+
媒体预览行(工具产出的图片 / 截图)
+ + +
界面截图.png1440 × 900 · PNG · 240 KB
+

正在补 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
运行中
+
跑一遍单元测试,输出实时可见
+
$ bun test src +✓ indicators · kama 收敛 (12ms) +✓ prompt_builder · 字段齐全 (8ms) +admission · 阈值边界 …
+
模型网关错误404 · Not Found
{"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 稿有帧