English | 中文
Formal Web client plugin for Side Chat. It occupies the single conversation.chat.branch-action seat rendered after the finalized assistant action strip. The conversation owner supplies a guarded fork(): Promise<SessionId> callback for the assistant tail, so transcript-prefix eligibility and child-title policy stay in ui-conversation; this plugin owns the branch button, pending/error presentation, and the handoff to layout.openSideChat(childId).
The addressed-Session lease, second authorized conversation occurrence, and mutually exclusive right-column geometry remain framework support in runtime, web-react, ui-layout, and ui-conversation. Removing this package from the Web composition removes the branch action without weakening those foundations or deleting existing child Sessions.
The /client public entry exports only the Cordis plugin body (apply and inject).
This repository contains the plugin package plus an integration patch. The patch adds the addressed-Session, right-column, conversation Slot, Web composition, tests, and generated-catalog changes required by this plugin; stock 0.1.0-rc.6 does not expose that complete foundation.
The patch is verified against upstream commit 47f943859bef60e4160492346772ded9b24f765a:
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
git checkout 47f943859bef60e4160492346772ded9b24f765a
git submodule add https://github.com/Rookiecom/dsh-client-ui-side-chat.git packages/client/ui-side-chat
./packages/client/ui-side-chat/integration/install.sh
pnpm install
pnpm --filter @deepseek-ai/dsh-client-ui-side-chat bundleThe installer applies integration/deepseek-harness-side-chat.patch without staging or committing Harness files. For a newer Harness revision, first try git apply --3way packages/client/ui-side-chat/integration/deepseek-harness-side-chat.patch and resolve any upstream contract changes before building.
None, as this browser-side branching control registers no prompt, tool, or model-visible context.
The plugin adds no tokens and changes no cache policy. Any prefix reuse comes from the ordinary forked Session and selected model provider.
- Completed assistant tails only — user messages, streaming turns, and assistant messages followed by later Chat nodes expose no usable branch action.
- One auxiliary column — Side Chat occupies the existing right column instead of coexisting with Tool details; narrow viewport concession may reduce that column to zero width.
- Rename failure after creation — the current
sessions.fork({ increaseTitle: true })contract rejects when post-create title incrementing fails, so the durable child can exist without opening in Side Chat.