How to use deepseek-harness-desktop
Fixes several compatibility issues for DeepSeek Harness desktop client: queue messages not sent after cancellation, stop prompt displaying [object Object], and tool calls for some models having an extra arguments wrapper.
This article is auto-derived from indexed fields (wiki / faq / compatibility_json), not freshly AI-generated.
This article is derived from the plugin's already-indexed fields (wiki / faq / compatibility_json / readme), not freshly generated by AI. Source field is noted at the end of each section.
Quick start
dsh-desktop-compat
— source: plugin_wiki.wiki_content
Install & verify
dsh plugin --profile web add --allow-build=@linxin666/dsh-desktop-compat github:ningbainb/deepseek-harness-desktop#path:packages/dsh-desktop-compat
Run the command above in your DSH Web Profile. Then enable the plugin in the plugin list.
— source: plugins.install
Key points
- 可靠 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 验证后才交给系统。
— source: plugin_wiki.readme_en (fallback readme_raw)
FAQ
Is this plugin for Web UI or desktop?
For desktop. README.md:29 explicitly states "DeepSeek Harness Desktop 2.0 will automatically mount this bundle in an isolated desktop profile. This bundle is not provided as a general Web UI plugin". It relies on DSH desktop's isolated profile behavior, with a different lifecycle from regular Web UI plugins.
Will it modify the DeepSeek Harness itself?
No. All behavior is implemented through public SDK hooks (src/index.ts:51-58, src/recovery.ts:15-30, src/tool-call-normalization.ts:339-352), no DSH source files are modified; cordis.patch.yml only declares inserting its own bundle.
What visible problems can it solve after using it?
Three types: (1) After user cancels the current reply, regular queued subsequent messages are no longer silent - the plugin will wake up the official agent to continue sending (src/recovery.ts:15-30, src/index.ts:51-53). (2) Tool results after cancellation no longer display as "code run failed (abort): [object Object]", but instead give a Chinese-friendly prompt "Current execution stopped, queued messages will continue sending" (src/recovery.ts:6, src/recovery.ts:64-73). (3) Some model adapters output tool calls with an extra layer of wrapping like {"arguments":{...}}, the plugin will strip one layer after schema validation (src/tool-call-normalization.ts:93-152).
What configuration is needed to use it?
Both README.md:33 and README.zh.md:30 state "this bundle has no user configuration items". Neither queuing behavior nor steering message behavior will be changed by it. The only runtime switch is DSH_DESKTOP_BACKGROUND_AUTOMATION=1 - when the desktop background automation mode is enabled, it will additionally enable the Task Board's Host scheduler (src/index.ts:33-44).
When should it be uninstalled?
It can be uninstalled after upstream DSH fixes these three issues: (1) Official can automatically continue pushing queued messages after cancellation, (2) Tool cancellation results have a stable display format, (3) Upstream adapters or agent loop handle the arguments wrapper layer themselves. The removeWhen field in the patch list (src/patch-registry.ts:49-86) specifies the removal conditions.
Will it work on versions other than 0.1.0-rc.7?
Only guaranteed for 0.1.0-rc.7. Each patch in src/patch-registry.ts:49-86 has applicableVersions hardcoded to ['0.1.0-rc.7'], and dependencies in package.json:38-44 are also locked to 0.1.0-rc.7. Please verify the three behaviors are still necessary in desktop before switching to other versions.
Should I be concerned when I see dsh-desktop-compat warnings in the logs?
Not necessarily. Tool call parameter restoration outputs outcome/reason/provider/model/tool/callId in diagnostic logs (src/tool-call-normalization.ts:154-171, 340-352), where outcome=rejected means "shouldn't modify so didn't modify", outcome=normalized means "successfully stripped one layer of wrapping" - both are normal information and won't log raw tool parameters. Queue recovery failures also write a warn (src/index.ts:46-49).
— source: plugin_wiki.faq_json
Compatibility
- 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)
— source: plugin_wiki.compatibility_json
Pitfalls
Review the upstream repo before installing. This guide is auto-derived from indexed fields and may lag the latest release. If anything contradicts the official docs, treat the upstream source as authoritative.
— source: general rule