How aisland-sjl/dsh-worktable works
dsh-worktable is a Cordis plugin that adds a project drawer, dockable split workspaces, and a live control room to DeepSeek Harness. Users select or create a project, open its panes, and can bind it to a host conversation; window-task artifacts can then mount into a workspace window. The host plugin exposes filesystem, site, workspace, and terminal services. The README documents the major capabilities; sampled source supports the route and client details shown, while unsampled client behavior is represented only where documented.
Main entry points: index.tsx Client entry · split.tsx Workspace panes · index.ts Terminal socket · updateCheck.ts Update checker
Components 18
Workbench client
- Project drawer
01_content/src/client/index.tsx - Client entry
01_content/src/client/index.tsx
Workspace features
- Split workspace
01_content/src/client/split.tsx - Workspace panes
01_content/src/client/split.tsx - Control room
01_content/src/client/index.tsx - Window tasks
01_content/src/client/index.tsx - Update checker
01_content/src/client/updateCheck.ts
Host services
- Host plugin
01_content/src/index.ts - Worktable routes
01_content/src/index.ts - Terminal socket
01_content/src/index.ts
Runtime state
- Browser storage
- Photo store
01_content/src/client/photoStore.ts
Other components
- Workbench user
- Harness shell
- Project files
- PTY shell
- Session runtime
- Harness agent
Connections 23
- Harness shell → Host plugin: loads plugin
- Harness shell → Client entry: injects client
- Workbench user → Project drawer: selects projects
- Project drawer → Split workspace: opens layout
- Client entry → Project drawer: renders drawer
- Client entry → Control room: renders room
- Client entry → Window tasks: mounts artifact
- Client entry → Session runtime: subscribes snapshots
- Control room → Session runtime: reads snapshots
- Project drawer → Session runtime: opens sessions
- Split workspace → Workspace panes: hosts panes
- Workspace panes → Worktable routes: requests file services
- Worktable routes → Project files: reads and writes
- Workspace panes → Terminal socket: opens terminal
- Terminal socket → PTY shell: spawns shell
- Terminal socket → Workspace panes: streams terminal data
- Window tasks → Worktable routes: fetches artifact
- Harness agent → Project files: writes task result
- Project drawer → Browser storage: persists projects
- Split workspace → Browser storage: persists layouts
- Client entry → Photo store: uses photo assets
- Client entry → Update checker: checks updates
- Update checker → Harness shell: checks version