Back to home@momo-gen

dsh-canvas

Toggleable infinite process canvas over the DSH conversation shell - pan/zoom the live process, annotate deviations, steer corrections.

Stars
0
Language
JavaScript
Created
Aug 21, 2026
Updated
Aug 21, 2026
GitHub repo

Introduction

dsh-canvas

Toggleable infinite process canvas over the DeepSeek Harness (DSH) web conversation shell — pan/zoom the live process, annotate deviations, and steer corrections, all on a canvas surface rendered in the browser.

license version

🌏 中文文档 · English

npm package: @deepseek-ai/dsh-client-ui-canvas

A browser-half (Client) Cordis plugin for the DSH web UI. It mounts a toggleable, infinite, pannable/zoomable canvas over the conversation shell and binds it to the live session process: you can freely pan around the current conversation, zoom into any step, annotate deviations from the intended flow, and send steer corrections back into the session.

Features

  • Infinite canvas over the shell — rendered into the frame-wide shell.overlay layer (declared by @deepseek-ai/dsh-client-ui-layout), so it floats above the session log without disturbing the underlying layout.
  • Live process binding — a root-scope observable (canvas-source.ts) follows the currently selected session and re-points the subscription as the selection changes.
  • Annotate deviations — mark steps that diverge from the plan directly on the canvas.
  • Steer corrections — a steer(text) verb feeds corrections back through the selected session's prompt(mode: 'steer') face.
  • Zero host contribution — the host half is deliberately empty; the canvas is a pure browser surface with no durable, model-visible, or host-registry footprint.
  • i18n-ready — ships canvas dictionaries through the locale service (@deepseek-ai/dsh-client-locale).

Install

The package is a client plugin for the DSH web client. Install it into the DSH web client's plugin set alongside its injected peer services:

  • @deepseek-ai/dsh-client-locale
  • @deepseek-ai/dsh-client-runtime
  • @deepseek-ai/dsh-client-ui-layout
  • react ^18.2.0 (peer)
npm install @deepseek-ai/dsh-client-ui-canvas

Then register the plugin in your DSH web client composition (e.g. as a plugin row in the client cordis.yml), and toggle the canvas from the shell.

Plugin surface

ExportKindPurpose
apply (client)Cordis client pluginregisters the canvas dictionaries, starts the current-session source, mounts the panel into the overlay layer
apply (host)Cordis host pluginempty — no host-plane contribution

Injected face (CanvasInjected):

MemberTypePurpose
hooks.canvasHostObservable<ConversationSnapshot | undefined>live snapshot of the current session (undefined while none)
steer(text: string) => Promise<boolean>feed a correction back into the selected session

Repository layout

dsh-canvas-pkg/
├── lib/                 # compiled ESM output + .d.ts types + source maps (published)
│   ├── client.js        # browser-half plugin bundle
│   └── types/           # TypeScript declarations
└── package.json

Tech stack

LayerChoice
PlatformDSH web client (Cordis client plugin)
LanguageTypeScript → ES2022 ESM
RenderingReact 18 (react/jsx-runtime)
Distributionnpm package (files: ["lib"])
LicenseMIT

License

MIT