Introduction¶
In the DSH session flow, steps like research, implementation, and review are often scattered across different sessions. While each session holds value on its own, if a subsequent model needs to continue working based on multiple sessions, it requires an independent, persistent, and resumable new session context. dsh-fusion is designed to do this: it fuses the current text surface of two or more DSH sessions into a new target session, retaining them as native target-session log events. The source sessions are not modified.
What is this¶
dsh-fusion is a DeepSeek Harness bundle maintained by omdsh-dev. Documentation indicates this repository is a DSH bundle with a cordis.patch.yml. The entry/package name appearing in the docs is @deepseek-ai/dsh-fusion, with a license of MIT.
It does not merge the source sessions into a long-lived link; instead, it generates a point-in-time snapshot: creating a new session based on the current visible surface, title, sorting, and deduplication rules, which can then be continued like a normal session.
Core Features¶
- Fuse 2–32 sessions; deployment default limit is 8.
- Projected messages can be ordered chronologically or grouped by caller-selected source order.
- Use stable message IDs to deduplicate shared fork prefixes, avoiding collapsing coincidentally identical text.
- Only project text from user and assistant messages, excluding reasoning, tool calls, and tool results.
- Inherit caller’s cwd, provider/model options, and creation-time agent preset.
- When optional Host Workspace registry is available, mount the target to the caller/source Workspace group.
- Title priority: explicit title, Agent-planned title, generated readable title based on source session titles.
- Default limit sources to caller cwd; cross-workspace fusion requires deployment to be explicitly enabled.
- Optional run of a temporary, tool-free DSH Agent to judge fusion value and return a verified pruning, topic-grouping, and ordering plan.
- Provide UI Fuse conversations dialog,
/fusetext command,conversation_fusemodel tool, and Service API.
Installation and Enabling¶
Installation¶
After preparing the plugin path locally, run:
dsh plugin --profile web add /path/to/dsh-fusion
After installation, DSH needs to be restarted. The restart instruction provided in the documentation is:
Restart DSH after installation
Prerequisites¶
The selected profile needs to provide the following capabilities:
agents
commands
sessions
sessionQuery
systemPrompt
tools
Once enabled, /fuse will appear in the slash menu, and conversation_fuse will appear in the model tool catalog.
If the host combination provides the invariants service, an optional entry can be mounted separately:
@deepseek-ai/dsh-fusion/invariant
The default bundle does not enable this entry.
Typical Usage¶
Using the UI Dialog¶
Click Fuse conversations in any DSH conversation header. The dialog will automatically include the current session and list other non-empty sessions in the same workspace.
It supports:
- Source search and multi-select
- Optional title; if left empty, it will be generated based on source session titles
- Chronological or source-grouped ordering
- Fork-history deduplication
- Optional intelligent Agent planning
After creation, the new session joins the same Workspace group; documentation states it can be opened immediately after appearing in the session list.
Using the /fuse Text Command¶
The current session is automatically included, so the command only needs to pass other source IDs:
/fuse <other-session-id> [more-session-ids...]
The example in the documentation initiates this from session-research:
/fuse session-implementation session-review
This command runs in manual mode, does not initiate additional model requests, defaults to chronological ordering and fork-prefix deduplication, and reports the new session ID after creation. Both spaces and commas can be used as delimiters. Invalid, missing, or cross-workspace sources will be reported directly in the UI.
Calling the conversation_fuse Tool¶
The parameters for conversation_fuse are as follows:
| Parameter | Type | Required | Description |
|---|---|---|---|
sourceSessionIds |
string[] |
Yes | At least two unique source IDs. |
targetSessionId |
string |
No | New ID, defaults to fusion-<uuid>. |
title |
string |
No | New session title; defaults to Agent suggestion or source session title. |
strategy |
chronological \| by-source |
No | Defaults to chronological. |
deduplicate |
boolean |
No | Collapse shared stable message IDs; defaults to true. |
agentPlanning |
boolean |
No | Run a temporary DSH Agent to judge/prune/group; defaults to false. |
The specification result provided in the documentation includes: new ID, source and retained counts, Agent-pruned count, topic headings, planning reason, retained bytes, strategy, and whether a persistence listener participated.
Calling via Service API¶
Other Host plugins can call:
ctx.conversationFusion.fuse(request, { caller, signal })
The caller needs to provide workspace authority and new-agent defaults. Even if the current session is included, its ID must still be provided in sourceSessionIds.
Configuration¶
The default configuration provided in the documentation is as follows:
| Field | Default | Description |
|---|---|---|
maxSources |
8 |
Number of unique sources per call; hard limit 32. |
maxMessages |
500 |
Number of projected messages to retain and natively instantiate, before byte fitting. |
maxFusedBytes |
131072 |
UTF-8 byte limit for planning/provenance JSON. |
maxMessageBytes |
16384 |
UTF-8 byte limit per message. |
maxTitleBytes |
160 |
UTF-8 byte limit for titles. |
allowCrossWorkspace |
false |
Whether to allow sources with different cwd than the caller. |
enableAgentPlanning |
true |
Whether to allow the request to run a temporary planning Agent. |
plannerMaxTokens |
8192 |
Token limit for planning Agent output, range 256 to 8192; when the selected model exposes effort control, planner requests will disable reasoning. |
Use Cases and Notes¶
Suitable for scenarios where multiple related DSH sessions are merged into a context that can be continued later, such as when needing to reference research, implementation, and review results simultaneously.
Notes when using:
- The plugin runs with the permissions of the current
dshprocess; you should check the source code and license before installing. The documentation confirms the license isMIT. - Source sessions are never modified; the fusion result is a point-in-time snapshot, not a live link.
- Manual mode does not initiate additional model requests; intelligent planning only sends authorized, projected, and byte-bounded candidate snapshots to the temporary DSH Agent.
- The temporary planning Agent is tool-free, using an empty tool allowlist; a
skipverdict will not create a target conversation. - Default sources are limited to the caller cwd; cross-workspace fusion must be explicitly enabled by the deployment.
- The selected profile must provide
agents,commands,sessions,sessionQuery,systemPrompt, andtools.
Resources¶
GitHub:
https://github.com/omdsh-dev/dsh-fusion
Community Directory: This documentation does not provide a verifiable directory page URL; you can search for the plugin name dsh-fusion in the DSH Community Directory.