146 篇 RFC 译文按 v4 基线(#348)重出:v4 模板+术语表、金标 few-shot、三段协议、切换行后处理;全量机械核对零异常(一处 task id 术语违规已修)。三篇超长 RFC(code-mode 已入,web-seam/ agent-scope/sandbox/cds-core 仍在长文档通道产出)随后补。
2.6 KiB
RFC:移除 ACP 终端 _meta 渲染
English | 中文
Status: rejected — Zed 是当前目标客户端,终端 _meta 约定是有意为之的 Zed UX 设计,同时为其他客户端提供纯 ACP(Agent Client Protocol)回退路径。
问题
ACP 桥接层通过 _meta.terminal_info、_meta.terminal_output 和 _meta.terminal_exit 实现了一套 Zed 特有的终端卡片约定。已实现的富 ACP bash 渲染 RFC 刻意回避了 ACP 客户端侧的 terminal/create(因为 bash 执行属于 harness 职责),但仍采用了参考 agent(智能体)的纯展示 _meta 约定。这在 Zed 中带来了更好的卡片效果,代价是桥接状态、能力协商、终端 id、特殊的 update 映射、文本回退测试,以及 dsh-tool-bash 中的 exit-pill 解析。
回退路径已经存在:将工具调用和完成输出渲染为普通 ACP 内容块。非 Zed 客户端本来就依赖这条路径,但 Zed 终端卡片是当前目标客户端的功能特性,而非推测性装饰。
提案
忽略 clientCapabilities._meta.terminal_output,通过纯 ACP 内容路径渲染 bash 结果。执行仍由 agent 侧的 dsh-bash 完成;仅移除展示相关的终端元数据。如果 ACP 日后标准化了 agent 执行的终端,或产品决定 Zed 特有展示值得其维护成本,终端卡片可以再回来。
本提案比收拢工具自有 UI 展示更窄:如果通用的 presentCall/presentResult 保留,本提案不影响它们,只移除终端子形态与 _meta 映射。
验收标准
- ACP 不再读取或存储
_meta.terminal_output能力状态。 TerminalRendering、终端 id、终端 cwd 解析与_meta.terminal_*update 映射从@deepseek-ai/dsh-acp中消失。ToolTerminal从@deepseek-ai/dsh-tools中消失,或在展示清理中因未使用而删除。- Bash 结果展示不再为终端 pill 解析退出状态。
- 已实现的富 ACP bash 渲染 RFC 作为已交付历史保留在
implemented/中;如被本提案取代,则加上交叉链接。
放弃的内容
Zed 用户将失去专用终端卡片:没有 cwd 头部、终端展示或 exit pill。他们仍能以纯内容形式看到命令和输出。在 ACP 桥接层尚未发布、_meta 键只是约定而非标准的阶段,这是合理的简化。