Bundle
@dsh-external/dsh-sidechat
Side chat drawer for DeepSeek Harness Web
- Source
- Mintcolour
- License
- MIT
- Updated
- Updated 14 days ago
Readme
# DSH Side Chat [中文说明](README.zh.md) A standalone [DeepSeek Harness Web](https://github.com/deepseek-ai/deepseek-harness) 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.  ## 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 |  | | Per-side-chat model and reasoning selector |  | | Compact idle Turn rail |  | | Hover preview and fisheye rail |  | | Dark-theme parent context and permission following |  | ## 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: ```text workspace/ ├─ deepseek-harness-proxy/ └─ dsh-sidechat/ ``` Build the plugin and install it into the Web profile: ```powershell 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 ```powershell 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](LICENSE).
Install
dsh plugin --profile web add github:Mintcolour/dsh-sidechat
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-external-dsh-sidechat from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.