dsh-doctor
asdf17128
Find what your DeepSeek Harness (dsh) patches silently broke — dead patches, config fields dropped by whole-config repla…
PROJECT TOPICS
PROJECT README
Native VS Code client for DeepSeek Harness.
Connect to your existing local Harness instance and continue the same workspaces and sessions directly inside VS Code.
Same Harness. Same Workspace. Same Session. VS Code Client.
This is not a Cursor replacement, a Claude Code replacement, or a full coding agent. It connects VS Code to your already-running local dsh web instance:
Browser ─────┐
│
▼
DeepSeek Harness
▲
│
VS Code ─────┘
VS Code reads the workspaces and sessions the browser already has, and continues the same session — so a browser refresh of that session sees exactly what VS Code sent.
Diff Review, Approval Workflow & File Context Inlining — closes the biggest experience gap with Cursor/Cline: code changes can now be reviewed and approved entirely inside VS Code.
+added/-removed line counts. Click Diff to open VS Code's native diff editor. Accept (keep) or Reject (safe revert via git checkout) per-file or all at once.approval/requested events now render inline as cards with Allow once / Deny buttons. No more switching to the browser to approve. A security allowlist restricts which tools can be approved from VS Code; high-risk operations still require the Web UI.@file:path or @file:path:L10-L20) now have their content read and inlined directly into the user message, guaranteeing the agent can see file content. Context metadata (active file, selection) is only sent on the first prompt of a session.See CHANGELOG.md for the full diff.
dsh web (loopback only — 127.0.0.1 / localhost).Read src/foo.ts, Search "pattern", Run npm test).@file:path or @file:path:L10-L20 in your prompt; file content is read and inlined automatically. Right-click in explorer or editor for quick insertion.SYS button.For your safety, the following remain out of scope:
commands/execute, no credentials or settings API.bash with untrusted input) cannot be allowed from VS Code — the card shows "Review in Web UI".dsh.dsh web (default port 3080). This extension does not start it for you.Start Harness locally:
dsh web
# → http://127.0.0.1:3080
Install from the VS Code Marketplace or via command line:
code --install-extension lucasliang.harness-connector-deepseek
Or install the VSIX from GitHub Releases:
code --install-extension harness-connector-deepseek-0.0.3.vsix
Open a folder in VS Code that you want to bind to a Harness workspace.
The DeepSeek Harness activity-bar icon appears; the extension auto-connects. If your folder matches an existing Harness workspace, its sessions appear in the dropdown. Pick one and continue the conversation.
No matching workspace? Just type a prompt and hit Send — the workspace and session are created automatically.
Attach file context — type @file:src/main.ts or right-click a file in the explorer and choose Add to Harness Chat. Select text in the editor, right-click, and choose Send Selection to Harness for line-range references.
Open the same session in your browser at http://127.0.0.1:3080/ — both surfaces see the same turn.
| Setting | Default | Notes |
|---|---|---|
deepseekHarness.host |
127.0.0.1 |
v0.0.x only allows 127.0.0.1 or localhost. Any other value is refused. |
deepseekHarness.port |
3080 |
The default dsh web port. Override if you started dsh web --port <n>. |
deepseekHarness.showSystemMessages |
false |
Show plugin-injected system messages (runtime context, approval notices). Hidden by default; toggle live with the SYS button in the webview header. |
DeepSeek Harness: Connect / DisconnectDeepSeek Harness: New Session (in the active workspace)DeepSeek Harness: Refresh SessionsDeepSeek Harness: Move to Right Side Bar — dock the view in the secondary side bar (like Chat) so it stops competing with the file explorer. Also available via the ⇲ button in the webview header.DeepSeek Harness: Open Web UIDeepSeek Harness: Show Logs (the DeepSeek Harness output channel)@file:<relative-path> into the chat input.@file:<relative-path>:L<start>-L<end> into the chat input.See ARCHITECTURE.md for the one-page design and the protocol contract. (中文版: ARCHITECTURE.zh-CN.md)
test/fixtures/ holds sanitized captures of the live wire format, useful for detecting upstream Harness protocol drift:
host-describe.json, workspace-list.json, session-list.json, session-history.json, session-prompt.json, session-event.jsonNo credentials, API keys, or real prompt content are stored — only the JSON shapes (text fields are redacted).
A standalone Node script validates the full loop against your running dsh web:
npm run spike # read-only validation (connect / list / history / mux open)
npm run spike -- --prompt # also exercises prompt + live events + cancel
npm install
npm run build # esbuild → dist/extension.js
npm run watch # rebuild on change
npm run typecheck
npm run package # → harness-connector-deepseek-0.0.3.vsix
Press F5 in VS Code to launch an Extension Development Host with the extension loaded.
v0.0.1 (@deepseek-ai/dsh-root), default dsh web port 3080.packages/host/apiproxy/src/api/ (authoritative).git checkout — uncommitted changes to the target file will be lost on Reject.MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。