Totoro-qaq/dsh-plugin-bridge
DeepSeek Harness 的跨预设会话迁移:使用固定 schema 交接摘要,而非绕过预设锁定。包含 26 轮基准测试与 A/B 对照证据。
项目介绍Project Overview
dsh-plugin-bridge 是 DeepSeek Harness 的迁移插件,把进行中的会话连同目标、状态、关键决策、文件与下一步以五段摘要迁入新预设,原会话保持只读。它通过 /bridge <预设> 预览、再 --go 执行,支持图片直传与文本回退。需先重启 WebUI;预览 20–60 秒,纯文本模型无法识别未解读图片。
dsh-plugin-bridge is a DeepSeek Harness plugin that migrates an in-progress session to a new preset via a previewable five-part handoff: goal, current state, key decisions, key files, and next step. The source session stays read-only. Run /bridge <preset> to preview, then --go to apply, with image carryover and a text fallback. Requires one WebUI restart; previews take 20–60 seconds, and text-only models cannot inspect unresolved images.
请帮我了解并安装插件:【dsh-plugin-bridge】【https://github.com/Totoro-qaq/dsh-plugin-bridge】
把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.
或使用命令行安装(适合开发者)Or use CLI install (for developers)
命令行安装CLI Install
dsh plugin --profile web add dsh-plugin-bridge
把 Totoro-qaq/dsh-plugin-bridge 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-plugin-bridge
English | 中文
Halfway through a task and need another tool preset? Switching the produced session in place would leave tool history that belongs to the old assembly. Bridge previews a bounded five-part handoff, opens a clean target, and leaves the original session untouched.
Quick start · Why Bridge · Evidence · Decisions · Compatibility
Quick start
Install from npm:
dsh plugin --profile web add dsh-plugin-bridge
# restart dsh web once
Pinned GitHub fallback:
dsh plugin --profile web add github:Totoro-qaq/dsh-plugin-bridge#v0.3.0
Then type in the official WebUI:
/bridge list target presets
/bridge --doctor check the host contract after a DSH upgrade
/bridge code preview the handoff; change nothing
/bridge code --go migrate, restate, then wait
/bridge code --go --continue restate and start work in the same target request
On DSH rc.7 and later, the official WebUI renders /bridge as a native card. Text exposes the fixed five sections as ordinary fields and list rows; Markdown preserves full source freedom; Preview renders Markdown or a complete JSON tree. Long content scrolls inside the card while the action bar stays reachable. Confirm migration opens the created target session.
UIs that implement the official conversation.chat.commandview slot receive the same card automatically. Other custom UIs retain the complete server result, summary-file workflow, and target title/session-ID fallback; UI authors can reuse the framework-free dsh-plugin-bridge/client-contract export instead of reimplementing the wire. On an older or non-slot client, correct the printed summary file and run:
/bridge code --go --file <path>
Uninstall with dsh plugin --profile web remove dsh-plugin-bridge, then restart dsh web.
Why Bridge
| Promise | What it means |
|---|---|
| Preview before execution | /bridge <preset> creates no target and changes no source session. Review or edit the five-section handoff first. |
| Move state, not tool traces | Decisions, paths, current state, and next steps move to a clean preset. Incompatible calls from the old tool assembly do not. |
| Fail closed | The target goal is paused before kickoff. If that cannot be guaranteed, Bridge clears/cancels the target and sends no model request. |
Installing Bridge adds zero prompt tokens to ordinary sessions. It is a host slash command, not a model tool or skill.
Evidence at a glance
The release gate is intentionally small and reproducible; these are regression results, not population guarantees.
| Gate | Result |
|---|---|
| Five-part summary facts | 30/30 |
| Target restatement / first useful work facts | 60/60 · 60/60 |
| Critical facts / obsolete-value resurrection | 90/90 · 0 |
| Existing image evidence / unresolved raw image | 5/5 · 5/5 |
Confirm / --continue target request shape |
2 · 1 to first useful work |
| Confirm extra, paired nominal median | +8.1% vs --continue |
| Summary worker share of clean acceptance components | 20.74% nominal |
| Native WebUI repeat gate (preview / target facts) | 3/3 · 3/3, five facts each |
The token percentage varies widely with preset, response length, and cache state. The worker share is composition, not causal overhead versus no Bridge; the stable product claim is one additional confirmation request. Read the design and evidence boundaries, full release report, and vision report.
How it works
fold history -> five-part handoff -> preview/edit -> clean target session
-> pause stored goal -> inject -> restate -> wait or continue
image history -> verbatim assistant evidence; unresolved originals use the attachment gateway
The five sections are Goal, Current state, Key decisions and conventions, Key files, and Next step. The original session is never rewritten; archive the target and return to the source if the handoff is unsatisfactory.
Migration decisions
| Situation | Bridge behavior | Cost / fidelity effect |
|---|---|---|
Plugin installed, no /bridge call |
No prompt injection or model tool | 0 Bridge prompt tokens |
/bridge code |
One bounded summary worker; preview only | No target session is created |
Default --go |
Target restates and waits | One explicit confirmation request before useful work |
--go --continue |
Restate and work in one target request | Lower request count; no background goal round |
| Image already has assistant analysis | Copy that response verbatim | No raw image is resent by default |
| Image is unresolved and target accepts images | Copy the original attachment and preserve the source VLM | Vision pricing comes from the selected provider |
| Image is unresolved and target is text-only | Prompt admission rejects the image; Bridge sends a visible text fallback | No hidden local VLM and no silent claim of visual understanding |
Compatibility
| DSH baseline | Server handoff | Native card | Verification boundary |
|---|---|---|---|
| 0.1.0-rc.6 | Yes | No | Narrow RPC contract and text compatibility tests |
| 0.1.0-rc.7 / rc.8 | Yes | Contract-checked | Client-module/command-slot contract plus server fallback |
| 0.1.1-rc.2 | Yes | Yes | Installed official WebUI: doctor 13/13, edit/confirm/auto-open, three-run repeat gate |
CI covers Node.js 22 and 24. Run /bridge --doctor after every Harness upgrade; it names missing required gateway methods instead of failing vaguely.
Current limits:
- installation needs one WebUI restart;
- the native card auto-opens the created target through the official Session runtime; older clients still receive the title and session ID fallback;
- progress appears immediately while the worker runs; the current fixed three-run sample took 7.4–12.8 seconds of worker time, while
previewTimeoutMsremains the hard bound; - text-only models cannot inspect unresolved images;
- the native-card repeat gate is still only three fixed runs, so it is release evidence rather than a statistical guarantee.
The server command stays the compatibility core. The same package now adds an optional official client half for rendered editing and navigation; if that prerelease client contract fails to load, /bridge still returns the complete server result. See the implementation boundary.
Documentation
- Design, safety, image policy, cost, and evidence
- Chinese install, configuration, rollback, and FAQ
- Release acceptance report
- Vision migration report
- Native WebUI repeat acceptance
- Historical compression benchmark
Development
npm ci
npm run verify
verify builds and type-checks both plugin halves, runs 160 tests, checks generated lib/ and datasets, then packs, installs, and imports the actual npm tarball. Tests spend no model tokens. prepublishOnly runs the same gate; GitHub releases also require the tag to match package.json before trusted npm publishing.
Community listings: Awesome DSH Plugin · Awesome DeepSeek Harness
Ecosystem discovery: dsh-TUI. Bridge remains a standard DSH plugin; TUI/std conformance is tracked separately.
License
MIT
nexu-io/open-design
ruvnet/ruflo
amruthpillai/reactive-resume
esengine/DeepSeek-Reasonix
volcengine/OpenViking
Molunerfinn/PicGo
titanwings/distilly
titanwings/colleague-skill