deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
A session change-review plugin for DeepSeek Harness (DSH): automatically tracks file write/edit operations inside your session and renders them as line-level diffs with customizable colors — session-isolated, subagent-aggregated, and pushed live via SSE.
One package carries both the Host logic and the browser UI (
dsh.bundle+dsh.clientmanifests).
| Feature | Description |
|---|---|
| Auto tracking | Listens to write / edit tool calls, records before/after content and timestamps |
| Diff view | LCS line-level diff: added (green) / removed (red) / context (gray) lines with both-side line numbers |
| Session isolation | Each session reviews only its own changes; switching sessions switches the review |
| Subagent aggregation | Changes made by subagents are aggregated into the root parent session |
| Live updates | SSE server push — the badge and list refresh instantly when files change (zero polling) |
| Revert changes | Undo ONE specific change (later non-overlapping changes are kept) or the WHOLE file (restore the pre-session snapshot; a file created in-session is deleted) — writes directly to disk |
| Per-turn review | Each turn's tail shows a card with THIS turn's changed files and expandable diffs (with per-op revert), distinct from the session-wide 「审查」tab |
| Count badge | The 「审查」(Review) tab shows the pending file count; badge background/text colors are customizable |
| Color customization | 12 colors configurable under Settings → 修改审查 (Review), including the turn-tail card's background, border, and added/removed counts (different defaults); every color has an opacity slider (rgba), persisted in localStorage |
| Clean sidebar | Hides the Cordis plugin run indicator (cordis-panel) from the left sidebar |
| Review tab — file list + diff preview | Per-turn review card |
|---|---|
![]() |
![]() |
| Expanded diff with per-change revert | Color customization (Settings → 修改审查) |
|---|---|
![]() |
![]() |
| Installed from the plugin market |
|---|
![]() |
dsh plugin add (after npm publish)dsh plugin --profile web add dsh-change-review
node_modules) and register it in the profile's cordis.patch.yml:- insert:
- id: diff-review
name: 'dsh-change-review'
- id: ui-diff-review
name: 'dsh-change-review'
This plugin targets the Web profile (
dsh --profile web).
| Item | Key | Light default | Dark preset |
|---|---|---|---|
| Added line background | addBg |
#e6ffec |
#10251c |
| Added line text | addFg |
#1a7f37 |
#7ee787 |
| Removed line background | delBg |
#ffebe9 |
#2d1415 |
| Removed line text | delFg |
#cf222e |
#ffa198 |
| Context background | ctxBg |
#f6f8fa |
#161b22 |
| Line numbers / markers | gutter |
#57606a |
#8b949e |
| Badge background | badgeBg |
#0969da |
#4493f8 |
| Badge text | badgeFg |
#ffffff |
#0d1117 |
| Added count (turn-tail list) | turnAdd |
#1a7f37 |
#7ee787 |
| Removed count (turn-tail list) | turnDel |
#cf222e |
#ffa198 |
| Card background (turn-tail) | turnBg |
rgba(255,183,77,.1) (light orange 10%) |
rgba(255,183,77,.1) (light orange 10%) |
| Card border (turn-tail) | turnBorder |
#ffb74d (light orange) |
#ffb74d (light orange) |
write/edit tool calls in the current process, bucketed per session; subagent changes are aggregated up the owner chain to the root parent session/diff-review/events); the client only processes events for the current sessiondsh.diff-review.colors); review records persist to disk (~/.dsh/profiles/web/diff-review-state.json, debounced auto-save + sync flush on exit) and are restored automatically after a dsh web restart — delete that file to wipe all historyturn/start/turn/end) directly — no event-listener dependency, so resumed sessions and multi-turn sessions are attributed correctly; subagent changes count toward the parent turn. Per-turn cards and the review page's 最新一轮 view show only that turn's ops. Records created before this upgrade carry no turn and never appear in per-turn cards (they still show in the 「审查」tab)es.onopen resyncwhich and /Applications paths. The button shows "用xxx打开" with the editor's own app icon (served by the /diff-review/editor-icon/:id route, which reads the .icns from the app bundle and converts it to PNG). The selected editor is used for all 打开文件 actions; with no selection, the OS default handler is used. The choice is persisted in localStorage. The server route /diff-review/open-with-editor dispatches the editor command on the Host side. Detection also resolves the app bundle's real executable path (execPaths), so editors open via their own binary even when the CLI is not on PATH. File paths are resolved using the recorded cwd from the tool execution, ensuring relative paths are correctly converted to absolute paths.open -R on macOS, explorer on Windows, xdg-open on Linux)..drv-view remains stable across all conversation phasesoverscroll-behavior: contain stops scroll chaining between the panes), making it easier to browse files while reviewing a diffdsh-change-review id (was @deepseek-ai/dsh-client-ui-diff-review), and the duplicate ui-diff-review insert was removed from cordis.patch.yml, so the plugin is injected once and loads correctly~/.dsh/profiles/web/diff-review-state.json; debounced auto-save + sync flush on exit)write/edit tool calls with LCS line diffs, subagent aggregation, SSE live updates, customizable colors, count badgeHost (lib/index.js)
· tools/result listener → per-session buckets
· LCS line diff
· HTTP routes: /diff-review/summary · /file · /clear · /revert · /turn (all with ?session=)
· SSE: /diff-review/events
│ HTTP + SSE (same origin)
Browser UI (lib/client.js, __ModuleLoader__ bundle)
· hidden session probe syncs the current session
· 「审查」view tab + badge
· Settings page「修改审查」color customization
· EventSource live subscription
Plugin code runs with the same privileges as your harness process. Review the source before installing; inclusion in community markets is not a security endorsement.
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。