dsh-workspace-frontend
Manifest validRebuilds the sidebar into a workspace / group / session tree with drag-to-group, per-row status and context rings, and resizable sidebars; the per-session cost column needs the dsh-claude-style plugin
Workspace Frontend for DeepSeek Harness
Rebuilds the left sidebar of DeepSeek Harness into a grouped workspace → group → session browser, and repaints every session row.
DeepSeek Harness / 工作区美化:把左侧栏重做成「工作区 → 分组 → 会话」,并让会话行显示状态、上下文与花费。
Features
Grouped sidebar
- The plugin shadows the shipped
sidebar.workspaces(priority: -1) with its own browser: workspaces, then user-defined groups, then sessions. Sessions in no group stay in an Ungrouped section at the end of each workspace; sessions in no workspace at all appear in a No workspace section. - Group actions, revealed on hover: new session, move up, move down, change colour (8-colour palette), rename (inline), delete (two-click confirm).
- A session started from a group's
+lands in that group; a collapsed group is expanded first. - Sessions drag between groups and across workspaces. Same-workspace drops rewrite the group assignment; cross-workspace drops are recorded as a display-level move (Host workspace membership is untouched).
- Manual order:
↑/↓on a group reorders groups,↑/↓on a session reorders it inside its group. A group ordered by hand stops auto-sorting by time. - Workspace actions: add workspace (native directory picker), delete workspace (two-click confirm). Deletion removes the Host registration only — sessions and files stay on disk, their rows fall into No workspace.
Session rows
- Whole-row click opens the session.
- Leading ring: blue = a question awaits you, yellow = approval / plan review pending, green = finished while unread. Colour changes play a 1 s exit plus 1 s enter sweep.
- Context ring: green → red gradient by context usage, spins while the session runs; warns once at 20 % and again at 40 %.
- Clock icon when the session has an active scheduled task.
- Per-session cost and relative last-activity time; group and workspace headers show sums.
- Row menu: open, rename, move to group…, archive / unarchive, copy session ID.
Layout
Resize handles on both sidebar boundaries (a thin line plus a rounded pull tab); drag to resize. Limits come from the Host: left 264–420 px, right up to 70 % of the viewport.
Install
Client-only plugin bundle — no dependencies, no build step.
# point the harness plugin manager at this directory
plugin_manager install_bundle target: <absolute path to this directory>
Then refresh the page (Ctrl+R). The sidebar is rebuilt immediately and the Workspace entry appears in the sidebar icon column.
Group data is local to the browser: localStorage['dsh.session-groups.v1'] (sections, assignments, moves, orders). Nothing is written to the session log.
Compatibility
Built and verified against DeepSeek Harness 0.2.1-rc.3.
Extension points used:
- Slots:
sidebar.workspaces(shadowed,priority: -1),sidebar.panellist,main,sidebar.workspaces.session.menu.item,sidebar.session.row.leading,sidebar.session.row.hover,shell.overlay - Hooks:
useWorkspaces,useSessions,useSessionStatus(pendingInteraction.kind,completionUnread),usePanelInfo - Services:
uiWorkspace(openSession,openWorkspace+beforeOpen,startSession,archiveSession,unarchiveSession,pickDirectory),workspaces.create/.delete,sessions.using/.refreshProjections,layout.selectPanel,remote.schedule.catalog - Theme:
--dsw-alias-*tokens only, each with a fallback colour. Skins that style the shipped browser by DOM class do not reach this list; token-level theming does.
Session cost is read from GET /dsh-claude-style/session-cost?id=<sessionId>, provided by the dsh-claude-style skin (cny in units of 1e-6 yuan). Without that skin the cost column shows —.
Limitations
- Session order is plugin-local; the Host's own list order is never rewritten.
- No content search in the browser, no workspace nesting, no drag reordering of groups (use
↑/↓). - The shipped row menu and hover card are not reused; this plugin renders its own.
- No workspace may also list subagent sessions if the Host reports them in the session snapshot.
License
MIT
Comments
Loading…
Similar plugins
by minhaoli
Enhanced session tree for the DSH sidebar (fork of ui-workspace): tag chips, group-by-tag, drag-to-move across workspaces, delete with backup.
★ 0
MIT
JavaScript
Oct 17, 2026
dsh plugin --profile web add dsh-session-treeby z-col
DeepSeek Harness web client plugin: group sidebar workspaces into a configurable three-level tree (分类→项目→会话). Sidecar YAML rules. dsh-plugin.
★ 5
MIT
TypeScript
Aug 24, 2026
dsh plugin --profile web add dsh-workspace-groupsby ChrisLou-bioinfo
Show the workspace (project folder) on each session row in the flat, recency-sorted sidebar list
★ 0
MIT
JavaScript
Oct 8, 2026
dsh plugin --profile web add dsh-workspace-badgeby KannaKuron
DSH web plugin: a hierarchical workspace tree for the sidebar — titles containing / group into virtual folders; the add-workspace flow gains a parent-group popup
★ 28
↓ 1.1k/wk
MIT
JavaScript
Oct 30, 2026
dsh plugin --profile web add dsh-better-workspaceby shinelon
Custom workspace groups for the DSH sidebar: group directories, drag to regroup/reorder, inline search and sessions, one-click official-view fallback.
★ 1
NOASSERTION
TypeScript
Oct 21, 2026
dsh plugin --profile web add @local/workspace-group-managerby Knight-Zjy
DeepSeek Harness 侧边栏的工作区分类树:分类 > 工作区 > 会话(VS Code 风格)。Collapsible category tree for DSH workspaces.
★ 3
↓ 514/wk
MIT
JavaScript
Oct 23, 2026
dsh plugin --profile web add dsh-workspace-categories