liangmianya/dsh-synapse
liangmianya/dsh-synapseDeepSeek Harness 的可视化非线性对话工作区:把会话、追问与分支变成可浏览、可拖拽的对话地图。
新增 /btw 与 /side 斜杠命令,在隔离的分叉子会话中回答临时旁问,不污染主会话上下文。
A DeepSeek Harness (DSH) plugin that adds a /btw slash command — a quick side-question channel you can use mid-session, modelled after the /btw feature in Claude Code, OMP (oh-my-pi / pi-coding-agent), and JCode.
/btw <question> runs an isolated side-agent to answer your question, then surfaces the answer as a compact command-result card. It never derails the active task and never writes the exchange into the main conversation's model context.
/btw what does the useDebounce hook in src/hooks do?
/btw where is the JWT secret configured?
/side is this failing test related to my last change?
ctx.subagents.start(...)), not by the main agent's turn loop.command/run, command/done). These are not model-turn messages, so the side Q&A never becomes part of the main agent's future context window.fork provider seeds the child with the parent session's completed-turn history, so the answer is grounded in your current work (files, recent edits, decisions) without copying that history into the main transcript.write, edit, and the cordis_* lifecycle tools are denied, so a "btw" can't silently mutate the working tree while your main task is running.The plugin registers two commands that share one handler:
| Command | Alias | Behaviour |
|---|---|---|
/btw <question> | — | Fork the session context, answer read-only |
/side <question> | alias of /btw | Same as /btw (matches pi-btw's /side) |
commands — human slash-command registry (@deepseek-ai/dsh-commands)subagents — subagent provider registry (@deepseek-ai/dsh-subagent)The fork in-process provider (@deepseek-ai/dsh-subagent-fork-in-process) is preferred; the plugin falls back to spawn if only that is mounted. Both are part of the standard DSH host composition.
Place this package under node_modules/dsh-plugin-btw (or link it).
Reference it in your cordis.patch.yml (or host composition):
- insert:
- id: plugin-btw
name: dsh-plugin-btw
Restart the host. Type /btw (or /side) in any session composer.
The same plugin can be mounted at runtime as a dynamic Cordis package via cordis_define + cordis_run with inject: ['commands', 'subagents'] — no restart required. That is how it was validated in the session that produced this package.
shell.overlay slot plus command-node suppression, which needs client-package approval and is out of scope for this host-only build./btw returns a clear error instead of failing silently.