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, /fuse text command, conversation_fuse model 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 dsh process; you should check the source code and license before installing. The documentation confirms the license is MIT.
  • 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 skip verdict 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, and tools.

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.