# 兼容性与覆盖范围 [返回主页](../README.md) · [开发与验证](development.md) ## 翻译从哪里进入 | 接入点 | 处理内容 | 不代表什么 | | --- | --- | --- | | `system-prompt/assemble` | 已知 `sections` 和 `contexts`;MCP 指导说明;按可见工具组装文件、网络和委派策略 | 不会拦截宿主后续重新生成的上下文 | | 全局 `agent/pre-step` | 汇入 `decision.messages` 的已知注入文本,作为兜底 | 全局 `prepend` 不保证早于所有运行时注册 | | `agent/created` 后的作用域 `agent/pre-step` | factory setup 完成后通过 `agent.ctx` 注册;对已有 agent 回补;处理 preset 后挂载的时间等注入 | 不保证覆盖创建完成后新增的外层 `prepend` | `agents` 使用动态 `ctx.inject`;依赖恢复后重新回补。重复创建通知不重复注册。agent 注销时清理本 agent 的监听器;依赖或插件卸载时通过自己的 `effect` disposer 清理外部 `agent.ctx` 注册。 ## 已知文本覆盖 - 系统段落:身份/persona、计划模式、后台 Job、交付物引用、文件操作纪律、goal、委派、桌面操作和宿主 Web 界面等已知规则。 - MCP:已识别服务器的规则,包括 `context7`、`github`、`playwright`、`chrome-devtools`,以及本轮新增的 Blender 全文指导(手册、代码执行、场景/数据块、对象创建、变换/坐标空间);Blender 译表限定在自己的 MCP 区块内,不猜译未知正文。设置功能引入严格服务器版本门控:没有可核验服务器版本与精确基线时,运行时连标题也保留原文;不把客户端版本当作服务器版本。 - Git Bash:已核实的 `dsh-gitbash-shell` 0.39.0/0.39.4 指导文本,包括完整/严格 MSYS 盘根说明、`run_code` 旧版提示与新版开启/关闭分支、pwsh 可见/隐藏路由和 MSYS 工具附加说明。保留路径与 `$VARS` 等字面值,不把“尽力转换”译成保证转换。 - 工作区指令:来源说明、完整基线/替换基线、截断提示、文件更新包装;用户自己的指令正文不做通用翻译。 - 技能系统:目录引导、目录变化、调用纪律与资源路径说明;不翻译任意技能的自然语言摘要和完整正文。 - 时间上下文:时间采样、已知/缺省/混合浏览器时区、前序消息/步骤耗时;保留时间戳、IANA 时区列表和实际时长。 - Hindsight:记忆、知识页与刷新包装中的已知提示语;检索到的任意记忆内容不做通用翻译。 条目按已知 section 名或原文特征处理;带输入守卫的条目在上游措辞变化时保留原文。不宣称所有条目都能适配任意上游重写。 ## 设置与严格版本门控 本次 Host+Client 接入核验以 Core `0.2.1-alpha.2` 的 `settings`、`configForms` 和已认证 `connection.fetch` 契约为基线;不沿用旧纯 Host 版本对早期 Core 的界面兼容声明。缺少相应服务或 Schema 时不能冒充可保存配置。 每个内置译文条目使用同一运行时登记点,保存的覆盖值在真实 section、context、消息或附加说明替换函数中读取。组件关闭后保留原文。第三方按精确版本放行:Git Bash 0.39.0/0.39.4 的新旧 `run_code` 提示分别匹配对应版本,Hindsight 包装基线为 0.8.1;未知版本不放行。 界面所称“当前版本”是宿主公开包解析服务提供的 manifest 版本,不证明旧模块已经重载。命中次数、输出改变与版本是否一致分别展示;固定原文、正则、section 名和生成条件不能混称全文精确匹配。上下文条目明确标记刷新覆盖风险,计数不代表最终请求全量中文化。详见[设置说明]()。 ## 提示词语言与模型回复语言 主页横幅的“让Deepseek使用中文回复”表达语言引导目标:插件在 persona 提示词中加入“必须使用简体中文思考和回答。”,并中文化已知规则。它不改模型参数、解码器或模型权重,不保证某次回复必定使用中文。 其他模型可能不受中文提示词同样影响。中文提示词是否改变回复语言,应在实际模型、provider、指令优先级和会话条件下核验;本轮只验证翻译与宿主链路,未做 Deepseek 与其他模型的回复语言对照实验。 ## 为什么仍可能看到英文 1. **运行时快照被覆盖**:核心 `dsh-agent-loop` 在 `pre-step` 后通过 `refreshContext` 重新调用 context provider,并替换 `runtime-context` 消息。快照的标题、工作目录、文件策略与审批正文仍可能为英文。静态组装阶段存在相应译文,不意味着快照最终保留译文。新增 `gitbash-shell:posix-paths` 也遵循这条链路:译表和组装测试已覆盖,但刷新后仍可能恢复来源插件的英文;本次未修改 Core 或来源插件。 2. **注册发生得更晚**:创建完成后才挂载的外层 `prepend`(例如运行期间重组 preset),其返回内容仍可能晚于翻译处理。没有 Cordis `ctx` 的自定义 registry agent 也只能使用全局层,不保证覆盖其后追加的 preset 消息。 3. **宿主之外的系统消息**:provider、网关或远端服务追加的文本可能不经过本插件的两个翻译管线。 4. **刻意保留的工具契约**:参数 schema、工具调用名称、代码和动态值保持原状;通用 `description` 及未知附加内容不翻译。唯一新增的例外是 `bash` description 中已核实的 Git Bash 自然语言附加说明,使用安全浅拷贝翻译,不修改参数结构或其他工具。 5. **未知内容**:不调用额外模型猜译未知 MCP、任意技能正文或上游变化后的规则。 6. **工具返回值**:`skill` 等工具直接返回的全文不经过 `agent/pre-step` 注入翻译;有对应字符串译文,也不等于该工具结果被拦截。 不采用替换宿主方法、操作私有 hook 列表或改写冻结请求来绕过这些边界。`llm/stream` 的 `next()` 不接收替换消息参数,冻结的 options 也不能就地改写。 ## 验证证据与版本归属 本轮在 `tests/host-smoke.mjs` 中从实际安装的 Desktop `resources/app` 解析模块。全部验证在隔离内存上下文完成,不加载生产 Profile、凭据或真实 provider。 | 层级/包 | 本轮基线 | 核验范围 | | --- | --- | --- | | Desktop 桌面壳 | `2.0.17-next` | 安装包 manifest;不是 CLI 版本 | | `@deepseek-ai/dsh-system-prompt` | `0.2.1-alpha.2` | 真实组装、工具 schema 保留、`refreshContext` 覆盖边界 | | `@deepseek-ai/dsh-time-context` | `0.2.1-alpha.2` | 真实时间注入、已知与缺省时区 | | `@deepseek-ai/dsh-scope` | 随上述宿主解析 | 真实 agent 作用域路由与子作用域隔离 | | `@deepseek-ai/cordis` | `4.0.5-alpha.1` | 动态依赖、冻结消息、卸载/恢复、插件清理 | **这些是具体包和桌面壳的版本,不是 DSH CLI 或 DSH 自带 npm 管理器版本。** 本轮不以 `dsh --version` 推断 Core,也未单独验证 CLI 发行版本。 清单保留 `0.2.0-rc.1`、`0.2.0-rc.2`、`0.2.1-alpha.1`、`0.2.1-alpha.2` 的历史兼容声明;并非本轮逐版本重新安装验收。离线测试覆盖已有英文样本和真实契约,但不是所有 provider/插件组合的生产验收。 ## 权限与数据边界 - 纯 Host 插件,无客户端 UI、浏览器存储或设置页。 - 插件运行时无文件系统写入、无网络访问,不读账户凭据、不启动子进程。 - 消息翻译采用安全浅拷贝,保留身份和来源;无匹配时返回原消息数组,`reject` 决策原样透传。 - 精确命中的用户文本也可能被已有注入翻译器改写;它不是任意文本的语言隔离器。 - 没有工具时裁掉相关指引,但翻译插件不授予、扩大或代替宿主权限。 ## 报告漏译 请提供脱敏后的英文原文、插件版本、目标 Profile/preset 和发生阶段。优先给最小片段,不上传密钥、Cookie、完整生产配置或未经脱敏的会话日志。可使用导出的纯函数先确认是“字典未命中”还是“运行链路未经过翻译”,见 [开发文档](development.md)。