Skip to content

Repository files navigation

DSH Side Chat

中文说明

A standalone DeepSeek Harness Web plugin that adds a Codex-style side chat beside the main conversation. It uses Harness public Session, Storage Domain, Workspace Registry, and Connection RPC surfaces without modifying the official Harness source.

Split-screen side chat

Highlights

  • Split the main conversation and side chat into two resizable panes instead of covering the main chat.
  • Create a side chat from the current conversation, including selected-text quoting without automatic sending.
  • Keep the child Session out of the official left sidebar while preserving its original log after relationship removal.
  • Show parent title, short Session ID, summary, and a live “follows main-chat permissions” indicator.
  • Choose a model and reasoning effort independently for each side chat; a new side chat initially inherits the main chat model.
  • Use /sidechat to open the current or most recently updated side chat, or /sidechat content to fill its draft.
  • Render user messages, Markdown, reasoning, tool activity, approvals, questions, slash-command lifecycle, and unknown events through a generic timeline.
  • Navigate both conversations with compact Codex-style Turn rails: quiet equal ticks when idle, fisheye expansion and a preview card on hover.
  • Generate a title from the first side-chat question, with manual rename taking permanent precedence.

Screenshots

The screenshots use synthetic conversation content and contain no real project data.

Feature Preview
Resizable split view and parent context Split view
Per-side-chat model and reasoning selector Model selector
Compact idle Turn rail Idle history rail
Hover preview and fisheye rail Hover history rail
Dark-theme parent context and permission following Dark side-chat context

Install into a Harness checkout

The plugin is currently distributed as a local link: package. Keep the plugin checkout next to the Harness checkout so its relative development links resolve:

workspace/
├─ deepseek-harness-proxy/
└─ dsh-sidechat/

Build the plugin and install it into the Web profile:

cd path\to\dsh-sidechat
$env:HTTP_PROXY='http://127.0.0.1:7890'
$env:HTTPS_PROXY='http://127.0.0.1:7890'
pnpm install
pnpm run build

cd ..\deepseek-harness-proxy
pnpm dsh plugin --profile web add link:..\dsh-sidechat
pnpm dsh web --host 127.0.0.1 --port 3080

The package has no prepare script. After changing src/, run pnpm run build and restart the Web profile so it loads the new lib/client.js.

Development

cd path\to\dsh-sidechat
$env:HTTP_PROXY='http://127.0.0.1:7890'
$env:HTTPS_PROXY='http://127.0.0.1:7890'
pnpm install
pnpm run typecheck
pnpm test
pnpm run build

The development dependencies use link: references to a sibling Harness checkout. Harness remains a peer/runtime dependency; this repository does not vendor or patch the official source.

Architecture

The Host half owns the dsh_sidechat storage domain, parent/child lineage validation, title and summary persistence, archive retry, permission synchronization, model inheritance, and the private loopback /dsh-sidechat RPC channel.

The Client half registers the native header action, split-screen overlay, selection action, slash-command source, model selector, generic timeline, and main/side Turn history rails. Draft text and pane width stay local to the browser; relationship records and titles are the only side-chat metadata persisted by the plugin.

Compatibility and privacy

  • Designed for the DeepSeek Harness Web profile and its public plugin surfaces.
  • Uses peer dependency ranges matching the current Harness checkout; test against the Harness revision you deploy.
  • Side-chat RPC is restricted to the local Web connection boundary.
  • Images and message drafts are sent through the child Session and are not written to the relationship table.
  • Removing a side-chat relationship does not delete or unarchive the underlying Session log.

License

MIT. See LICENSE.

About

A DeepSeek Harness Web plugin that adds a Codex-style split-screen side chat with model switching and compact history navigation.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages