Files
deepseek-harness/.agents/notes/implemented/simplification/2026-08-04-remove-tui-package.zh.md
2026-08-11 14:20:53 +08:00

3.7 KiB
Raw Blame History

Agent Note: 移除 TUI 包

Status: implemented

English | 中文

问题

移除隐式的 dsh 终端应用后,@deepseek-ai/dsh-tui 不再拥有任何已交付的组合。该包仍包含终端渲染器、交互式命令与问答适配器、扩展浮层、快照 fixture测试前置数据、已打补丁的 pi-tui 依赖,以及仍将 TUI 宣称为受支持应用接口的 SDK 脚手架。保留这一表面意味着继续维护一个产品规模的前端,而其唯一剩余消费方就是项目生成器本身。

该包还会使仓库所支持的应用清单产生误导。当前可运行产品使用 Web、ACPAgent Client Protocol、JSON-RPC 或一次性 CLI命令行界面入口SDK 却仍提供终端选项,而没有任何示例或产品命令会实际运行它。

决策

删除 packages/ui/tui 包,不提供兼容包或别名。其源码、包测试、终端快照、依赖声明、已打补丁的 pi-tui 产物、workspace 引用、生成的服务目录条目和文档会一并移除。通用宿主能力与 agent loop智能体循环能力保持不变。

作为 TUI 包最后消费方的 SDK 项目工具链已由工具链移除决策删除。宿主应用仍可直接挂载提供方无关的 dsh-user-interactiondsh-commands 和呈现服务。

本决策取代显式配置 dsh 入口决策中保留可复用包的决定,也使已归档 TUI 实现记录不再适用于当前状态。这些历史记录继续保持冻结,但不再作为受支持包或应用清单的依据。

本记录汇总了因移除该包而无法继续保持现行有效、现已删除的仅涉及该包的记录。终端 UI 曾在长对话期间保持会话身份可见、移除重复模型标签、为消息附加耗时与阶段状态、在提示词旁显示 workspace 与分支上下文,并保守地解析完整 XML 包装层,以生成人类可读的回退输出。这些选择改善了一个终端前端,但在没有部署的情况下,并不足以证明应保留它。未来的 XML 回退仍必须使用真正的解析器而非正则表达式。

验证

仓库搜索结果与生成的服务目录中不再包含 TUI 包、依赖补丁、服务键或包链接。常规源码构建、类型检查、lint、hygiene、文档门禁以及其余组装快照测试套件均可在没有已删除 workspace 的情况下运行。

考虑过的替代方案

保留未交付的包。 不予采纳,因为这会保留维护成本,并继续将一个没有真实组合证明其生命周期的、不受支持的终端前端呈现为可复用产品表面。

为外部消费方保留 SDK 选项。 不予采纳,因为生成器会成为该包在仓库内唯一的消费方,并会搭建一个仓库不再进行端到端验收的应用。预发布兼容性立场不要求保留该选项。

将包移入 examples 或 experimental 组。 不予采纳,因为移动代码无法提供当前产品需求、受维护的部署或组装验收。未来的终端前端应以其实际宿主和交互需求为起点,而不是默认继承此实现。

后果

DeepSeek Harness 不再提供终端 UI 包。现有 import 和依赖该包的 cordis.yml 条目会直接失败不会得到兼容转换。Web 仍是已交付的交互表面ACP、JSON-RPC 与一次性 CLI 仍是 Web 之外的入口。

提供方无关的命令、用户交互、审批、工具呈现、PTY 与会话投影能力仍可供其他宿主使用。重新引入终端前端时,必须为其提供具名产品或部署、显式包边界、具体交互提供方,以及组装后的生命周期与 transcript文本记录验收。