Workflow & Automation

dsh-watcher

aa2246740/dsh-watcher · ★ 123

aa2246740

Read-only Agent work-path observer for DeepSeek Harness, with truthful status and execution evidence

License
MIT
Added
2026-10-30
Maintenance
active
Install kind
npm
npm
dsh-watcher
Manifest status
Declared
Manifest path
package.json#dsh
Manifest checked
2026-10-30T09:38:14.460Z
Lifecycle scripts
None found

Static manifest checks report declarations only; they are not compatibility or security review.

安装

dsh plugin --profile web add 'dsh-watcher@0.8.0'

从 npm 安装预构建包

For install and environment setup, plus plugin development tutorials, see DSH community docs ↗

README

Source README · body: en · Read Chinese README

Table of contents
  1. Watcher
  2. Install / Update
  3. Install on DeepSeek Harness web or desktop
  4. Install with dsh cli
  5. Advanced installs
  6. What's new in 0.9.0
  7. 0.8.0
  8. 0.7.0
  9. 0.6.1
  10. 0.6.0
  11. 0.5.0
  12. Build from source

中文 · English

Watcher

npm version

Install / Update

Install on DeepSeek Harness web or desktop

Fill dsh-watcher in the Add plugin wizard's search box, and click Install:

Add plugin wizard

Install with dsh cli

Install dsh-watcher plugin from DeepSeek Harness:

dsh plugin --profile web add dsh-watcher

Or update the dsh-watcher plugin:

dsh plugin --profile web update dsh-watcher@latest

Then start the web UI with dsh web. No build step, no restart.

This official CLI command writes only the web profile; it cannot modify the Desktop App profile — use the in-app Add plugin wizard above for desktop. This release commits lib/; normal use needs no clone, build, or DSHX installation.

DeepSeek Harness 0.2.1-rc.2 (@deepseek-ai/dsh@0.2.1-rc.2, dsh-v0.2.1-rc.2). The @deepseek-ai/dsh-* peer and engines.dsh range is >=0.2.1-rc.1 <0.2.2: it accepts 0.2.1-rc.2 and stable 0.2.1, rejects alphas, and rejects 0.2.0-rc.2. Node ^22.19.0 or >=24.

A read-only plugin for DeepSeek Harness Web. Open the eye in the session header. A Session becomes a foldable work path: how many steps ran, how many tools fired, how long it took. Open a step for parallel branches, a tool result, or a reasoning row that stays folded until you ask.

It does not inject messages, invent hidden chain-of-thought, or replace the official Trajectory.

Switching from itemized to grouped: two package.json edits collapse to ×2

Three collapsed turns with phase counts, executions, and tok/s

Turn 3 expanded: the parallel step stays on its original Step

Step 2: glob and grep running as two parallel branches

Grouped: edit package.json ×2, still steps 5 and 6 when opened

Grouped view only stacks what it can prove. Two different bash calls stay apart. The model stage shows only provider-visible reasoning already written into the Session. If nothing was recorded, it says so.

Advanced installs

Pin to a GitHub tag:

dsh plugin --profile web add github:aa2246740/dsh-watcher#v0.8.0

From a clone (development/local testing):

git clone https://github.com/aa2246740/dsh-watcher.git
dsh plugin --profile web add ./dsh-watcher

That path also needs pnpm, then reopen that Web Host and reload the page.

dsh plugin --profile web remove dsh-watcher

The public CLI manages web only; use the in-app “Add plugin” entry above for the Desktop App.

The settings summary and session HUD show Estimated cost (not “total value”) next to total tokens. Input / output / cache buckets are priced from pricing/models.yaml. A missing row is Unknown, never $0. A partial estimate keeps the known dollar in the main number and footnotes Some models unpriced. It is an estimate, not a bill. The default table covers mainstream DeepSeek, MiniMax, OpenAI, Anthropic, Gemini, Grok, GLM, and Qwen rows and is static (no live fetch). Override it in Watcher settings (localStorage key dsh-watcher:pricing-override:v1). PRs to the default table are welcome.

The interaction contract lives in DESIGN.md. MIT.

What's new in 0.9.0

  • Targets official DeepSeek Harness 0.2.1-rc.2 (dsh-v0.2.1-rc.2, SHA 687f282e8625c6b8d11ff58211a90524be2e4317). @deepseek-ai/dsh-* peers and engines.dsh are >=0.2.1-rc.1 <0.2.2: the range accepts 0.2.1-rc.2 and stable 0.2.1, rejects alphas, and rejects 0.2.0-rc.2.
  • Icons stay IconChevronRightOutlineRegular, IconRefreshOutlineRegular, IconCheckOutlineRegular, and IconCopyOutlineRegular. Those four names are still exported by primitives at 0.2.1-rc.2. The size-suffixed names are still absent.
  • Terminal card labels add the required commandLine copy (命令行 N) introduced in 0.2.1.

0.8.0

  • The daily chart books each token settlement on the local calendar day. A session total is no longer piled onto the last active day. Version 1 caches keep the old display until that session is refolded into version 2.
  • With dsh-better-sidebar installed, the right sidebar gains a Watcher page for the work picture. Without it, the header button and the settings section stay as they are. The sidebar package is not a dependency.

0.7.0

  • Targets official DeepSeek Harness 0.2.0-rc.2 (dsh-v0.2.0-rc.2, SHA 639ed015397290b3745d163aafe02ffee4aa3f84). @deepseek-ai/dsh-* peers are >=0.2.0-rc.1 <0.2.1: the range accepts 0.2.0-rc.2 and stable 0.2.0, rejects alphas, and rejects 0.1.7-rc.2.
  • Icons stay IconChevronRightOutlineRegular, IconRefreshOutlineRegular, IconCheckOutlineRegular, and IconCopyOutlineRegular. Those four names are still exported by primitives at dsh-v0.2.0-rc.2. The size-suffixed names are still absent.

0.6.1

  • Checked on official DeepSeek Harness 0.1.7-rc.2. @deepseek-ai/dsh-* peers stay >=0.1.7-rc.1 <0.1.8, so install accepts 0.1.7-rc.1 and 0.1.7-rc.2 and rejects 0.1.7-alpha.*.
  • Icons stay IconChevronRightOutlineRegular, IconRefreshOutlineRegular, IconCheckOutlineRegular, and IconCopyOutlineRegular. rc.2 still does not export the size-suffixed names.

0.6.0

  • Targets official DeepSeek Harness 0.1.7-rc.1. @deepseek-ai/dsh-* peers are >=0.1.7-rc.1 <0.1.8, so install accepts 0.1.7-rc.1 and rejects 0.1.7-alpha.*.
  • Icons are IconChevronRightOutlineRegular, IconRefreshOutlineRegular, IconCheckOutlineRegular, and IconCopyOutlineRegular. rc.1 removed the size-suffixed exports and ships no aliases.

0.5.0

  • The panel resizes. Drag the right edge, the bottom edge, or the corner grip; the frame stays put while it grows, and it can never shrink below the size it opened at.
  • The HUD folds to one line. A ▾ next to the scope switch collapses the timing panel to just the top bar, and the choice is remembered.
  • "定位现场" lands on the actual failure. It now selects the exact failing step and opens the inspector on it instead of scrolling to a bare turn header.
  • Repeated failures no longer stack. One failure chain updates one card, and the title names its turn (第 N 轮).

Plus the 0.4.5 fixes: the inspector back control no longer re-arms follow, the first range pick no longer rescans sessions, the projection state no longer stores a copy of its own view, and the timing panel's non-terminal slice is labelled correctly.

Older releases: CHANGELOG.md.

Build from source

Skip this for a normal install. Rebuild the committed lib/ with pnpm after TypeScript changes:

pnpm install
pnpm test
node scripts/link-harness-dependencies.mjs /path/to/harness
pnpm build

pnpm build needs a local Harness checkout that can resolve the @deepseek-ai/dsh-* peers. Do not use this path to install the plugin.

Watcher waits for the Chat projection on cold sessions before mounting its panel.