dsh-desktop-compat 使用指南
为 DeepSeek Harness 桌面端修补若干兼容问题:取消后队列消息不发送、停止提示显示 [object Object]、部分模型的工具调用多一层 arguments 包装。
本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。
本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。
快速上手
dsh-desktop-compat
— 源: plugin_wiki.wiki_content
安装与验证
dsh plugin --profile web add --allow-build=@linxin666/dsh-desktop-compat github:ningbainb/deepseek-harness-desktop#path:packages/dsh-desktop-compat
复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。
— 源: plugins.install
关键要点
- 可靠 Windows 启动:移除 PowerShell 5.1
-WindowStyle Hidden与 Electron Node 模式的冲突,隐藏窗口仍由spawn的windowsHide处理;空旧补丁、状态订阅竞态和 IPC 错误不会再把启动页永久留在 8%。 - 验证过的 Runtime 组合:内置
@deepseek-ai/dsh0.1.0-rc.7、dshmarket1.15.0、Web UI 聚合0.2.3、兼容 rc.7 的 Codex Connect 与dsh-live-stats0.1.20,Stable 继续精确锁定而非追随latest。 - 托盘与后台自动化需显式选择:默认关闭仍会退出。选择“最小化到托盘并启用后台自动化”后,关闭主窗口才保留 Runtime 和到期任务;显式退出、更新、安全模式和崩溃路径一律完整停止。
- Host 持久任务调度:Task Board 保存时区、cron 槽位、租约、misfire/running 策略和确定性运行键;启用后台自动化时通过真实 DSH Session 执行并回写 Task Run,Host 不可用时仍回退浏览器调度。
- 可审计的扩展边界:扩展坞校验
dsh.compatibility的版本、Desktop API、能力、Surface 与运行时证据,并在 profile 写入desktop-plugins.lock.json。browser-safe SDK 不导入 Electron 或私有 DSH 模块;预览的外部打开仅传工作区根和相对路径,Host 验证后才交给系统。
— 源: plugin_wiki.readme_zh (fallback readme_raw)
常见问题
这个插件是给 Web UI 用的还是桌面端用的?
给桌面端。README.md:29 明确写「DeepSeek Harness Desktop 2.0 会在隔离的 desktop profile 中自动挂载这个 bundle。这个包不作为通用 Web UI 插件提供」,它依赖 DSH 桌面端的隔离 profile 行为,跟普通 Web UI 插件的生命周期不同。
它会改动 DeepSeek Harness 本体吗?
不会。所有行为都通过公开 SDK 钩子实现(src/index.ts:51-58、src/recovery.ts:15-30、src/tool-call-normalization.ts:339-352),不修改任何 DSH 源码文件;cordis.patch.yml 也只声明插入自己一个 bundle。
用了之后能解决什么看得见的问题?
三类:(1) 用户取消当前回复后,普通排队的后续消息不再沉默——插件会把官方 agent 重新叫醒继续发送(src/recovery.ts:15-30、src/index.ts:51-53)。(2) 取消后的工具结果不再显示成 code run failed (abort): [object Object],而是给一句中文友好提示「当前执行已停止,排队消息将继续发送」(src/recovery.ts:6、src/recovery.ts:64-73)。(3) 部分模型适配器输出 {"arguments":{...}} 这种多一层包装的工具调用,插件会按 schema 验证后剥掉一层(src/tool-call-normalization.ts:93-152)。
需要配置什么才能用?
README.md:33 和 README.zh.md:30 都写「这个 bundle 没有用户配置项」。排队行为、steering 消息行为都不会被它改变。唯一的运行时开关是 DSH_DESKTOP_BACKGROUND_AUTOMATION=1,桌面端后台自动化模式打开时才会额外启用 Task Board 的 Host 调度器(src/index.ts:33-44)。
什么时候应该卸载它?
上游 DSH 把以下三个问题修掉之后就可以卸载:取消后官方能自动续推排队消息、工具取消结果有稳定的展示格式、上游适配器或 agent loop 自己处理 arguments 包装层。补丁清单(src/patch-registry.ts:49-86)的 removeWhen 字段就是移除条件。
它在 0.1.0-rc.7 之外还能工作吗?
仅保证 0.1.0-rc.7。src/patch-registry.ts:49-86 给每个补丁的 applicableVersions 都写死 ['0.1.0-rc.7'],package.json:38-44 的 dependencies 也都锁到 0.1.0-rc.7。换到其他版本之前请先在桌面端验证三项行为是否还有必要。
日志里看到 dsh-desktop-compat 警告要紧张吗?
不一定。工具调用参数恢复会在诊断日志里输出 outcome / reason / provider / model / tool / callId(src/tool-call-normalization.ts:154-171、340-352),其中 outcome=rejected 是「不该改所以没改」、outcome=normalized 是「成功剥掉一层包装」,都是正常信息,不会写原始工具参数。queue 恢复失败也会写一条 warn(src/index.ts:46-49)。
— 源: plugin_wiki.faq_json
兼容性
- DSH: 0.1.0-rc.7(package.json:38-44 的 dependencies 全部锁到 0.1.0-rc.7;src/patch-registry.ts:49-86 的 applicableVersions 也只列 0.1.0-rc.7)
- Node: ^22.19.0 || >=24.0.0(package.json:7-9 的 engines.node)
— 源: plugin_wiki.compatibility_json
踩坑提醒
安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。
— 来源:通用规则