packages/dsh-task-board
zhu1090093659/dsh-web侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。
Requires DeepSeek Harness ≥ 0.1.5 (compatibility update)
This plugin line is adapted for DeepSeek Harness 0.1.5+, which ships the official right sidebar (ui-sidebar-right). Workbench panels (Git, Usage, terminal, browser, control plane, and more) dock into that host sidebar instead of only using the plugin’s own chrome.On older harness versions you may still see an update available notice, but install is refused so your environment is not broken. Upgrade DeepSeek Harness to 0.1.5 or newer first, then install or upgrade this plugin.
A workbench plugin for the DeepSeek Harness Web UI. After Workbench is opened in Conversation, chat stays on the left. Two columns appear on the right: the editor (Agent Control Plane, syntax highlighting, and smart terminal) and the side dock for files, Git, the Usage panel, and the Ultra Slash panel.
Look for these first:
/ menu..canvas/*.canvas.tsx in the workspace (not in IDE config folders). After a write, the workbench auto-opens the file in preview; switch to edit or split like Markdown. Send /canvas to steer the model without interrupting the turn.$ ls) run as-is. Natural language is translated by AI command assist (Alt+I or the ✨ button) and typed into the current terminal. Notes are never executed. A blacklist blocks destructive commands the assistant would otherwise type. Alt+J opens another terminal tab.The workbench uses a three-column layout. Conversation stays on the left. The two columns on the right are the capability area: editor (Agent Control Plane, syntax highlighting, smart terminal) in the center; file tree, Git, Usage, and Ultra Slash on the far right. The right dock tabs are Files, Source Control, Usage, and Ultra Slash. The editor’s first tab is Control Plane by default.
$ ls) go straight to the terminal; natural language is translated and typed into the current shell. Notes are non-executable. A configurable blacklist blocks destructive commands the assistant would otherwise type..canvas/*.canvas.tsx), image and spreadsheet previews, Git diffs, tabs, breadcrumbs, save and dirty-close guards..gitignore marks, new / rename / delete, and open in a local editor (Cursor, VS Code, and others).git init, and model-facing git_* tools./ in chat and pick from the bottom Ultra Slash group. Built-in: /steer, /new, /skill, /docs, /canvas. Custom /name shortcuts are stored on this machine and shared by every session.v / V / `); :w saves, :q closes the tab, :qa closes all, :x / :wq save and close, :vs / :sp split left-right / top-bottom, :only unsplits; append !` to force (skip unsaved-change confirmation):vs / :sp splits only the editor body into two file views — the toolbar and tab bar stay single, nothing is duplicated; the split pane's tab is underlined, clicking a tab switches the focused pane's file; drag the sash to resize, :only or the "Unsplit" toolbar button merges back.canvas/.canvas.tsx under the workspace root; edit / preview / split like Markdown; host transpiles TSX, browser mounts a self-contained React component; auto-open in preview after Agent write/edit; manual open from the file tree defaults to preview too.xls is recognized but opens in an external app.gitignore ignored files are markedgit init plus user.name / user.email when the folder is not a repo--forcegit_status, git_diff, git_log, git_branch, git_commit (commit needs user approval; no delete / reset --hard / clean)¥ for CNY, $ for USD)— (or ¥— / $—) when the balance cannot be read/ icon). Chinese UI label: 插件命令/ in the chat box: plugin commands sit in the bottom group, below a divider/steer (inject guidance), /new (blank session; /new starts the new session with that first message), /skill (save under .dsh/skills/ after the task), /docs (write cause and fix under docs/ after the task), /canvas (create or update a Canvas under .canvas/ after the task)/name shortcuts send a fixed /steer payload. Fill review in the panel — do not type the slash — and /review appears in the menu~/.dsh/ultra-slash/commands.json; every session shares the same list (at most 40 custom commands)$ ls still count as commands# commentOpen the right-dock Usage tab (gauge icon). To keep spend in view while you chat, click the pin: the panel moves above the left Settings button. Click pin again to send it back to the right dock. Pin still works when the left rail is collapsed — you get a compact strip with balance, spend, and tokens.
What you see · Meaning Balance · Official API balance. Currency follows the API (¥ for CNY, $ for USD) Observed spend · Sum of balance drops recorded on this machine after you started watching. Top-ups do not erase it. This is not the lifetime total on the official website — the key API does not return that figure Session tokens · Input / output / cache hit / cache write / hit rate for this conversation only, not the whole account Context · How much of the current context window is used Official usage · Opens platform.deepseek.com/usage
Drag the top handle to change height; double-click resets. The session list above stays visible. The status bar (left of Feedback) always shows the same balance; — means it could not be read.
If the panel cannot load a balance:
Reset observed spend only clears the local running total on this machine. It does not change the official account.
Open the editor’s first tab Control Plane (Chinese UI: 控制面). If you do not see it, enable Show control plane in editor under Settings → Agent control plane (on by default).
Switch between two sub-pages at the top; your choice is remembered:
Sub-page · What it does Execution trajectory · Threaded view of the current session: user messages → each LLM round (expand for tool calls and agent reply) → context injections, and more. A left rail marks the timeline and branches. Expand LLM rows for in-episode detail; tools and replies show full input/output. Streaming turns are highlighted. Capabilities · Inspect and tune the current session agent: overview and stats on top, then a trajectory-style list of LLM, tools, prompt sections, sub-agents, and so on; environment plugins are listed at the bottom. Items marked Adjustable expose session knobs (model, tool switches, prompt section text, and more).
Common actions:
Notes:
dsh webOpen the right-dock Ultra Slash tab (/ icon; Chinese UI: 插件命令). These commands also appear when you type / in the chat box: they sit in the bottom group, below a divider, titled Ultra Slash.
They inject text into the next model step. The current turn is not stopped. You do not need Stop. If the model is running, the text is queued until the next model access; if it is idle, the next step starts immediately.
These five cannot be renamed or deleted.
Command · What it does /steer · Inject the guidance into the next model step without interrupting the turn. Example: /steer list the files you would change, do not edit yet /new [text] · Switch to a blank session; text after the command is sent as the first message of the new session. A running turn is not stopped; switch back from the left session list /skill · After the current task, write the solution to .dsh/skills//SKILL.md so DeepSeek Harness can load it. Same “do not interrupt” rule as /steer /docs · After the current task, write the cause and the fix as markdown under docs/. Same rule as /steer /canvas [topic] · After the current task, create or update a Canvas file under .canvas/ in the workspace (product prototype, dashboard, analysis, or custom interactive UI). Append a topic after the command to steer filename and layout. Same rule as /steer
If /steer is sent with empty text, the UI tells you to write the guidance first and shows a usage example. Nothing is injected.
The Default prompts section of the panel lets you set a default text for /new, /skill, /docs, and /canvas each (/steer stays manual and cannot be configured). Leaving a field empty uses the built-in text:
/new default is sent as the first message of the new session; /new still uses what you type./skill, /docs, and /canvas defaults are injected into the next model step; text you append after the command is added after the default (e.g. /canvas order admin prototype).Defaults are saved on this machine in the same commands.json as the custom commands and shared by every session; they survive a page refresh.
Typing /new, /skill, /docs, /canvas, or a custom command name highlights the name in the composer with the reference style (the same as DSH built-in commands and skill names), whether or not the session is running.
Give a short name to a /steer payload you use often. For example, fill review and a fixed paragraph; afterwards /review in chat sends that paragraph.
review becomes /review), optional Menu description, and Guidance to inject.Rules the panel enforces (you will see a Chinese or English reason under the field if something is wrong):
/steer, /new, /skill, /docs, /canvas, or DeepSeek Harness names such as /help and /plan.~/.dsh/ultra-slash/commands.json (or $DSH_HOME/ultra-slash/commands.json) and is shared by every session. A damaged file is not overwritten — fix or delete it, then try again.Canvas is the workbench’s way to ship standalone visual deliverables — product prototypes, dashboards, architecture reviews, timelines, and other React layouts — beside chat, without dumping everything into markdown.
Unlike Cursor’s user-config canvases/ folder, this plugin keeps Canvas in the current workspace:
Item · Rule Directory · .canvas/ at the workspace root Filename · .canvas.tsx (e.g. .canvas/order-dashboard.canvas.tsx) Format · One self-contained file per canvas: default-export a React component, inline style only, data embedded in the file (no fetch, no extra modules)
Only paths under .canvas/ ending in .canvas.tsx use the Canvas preview pipeline. Other .tsx files stay plain text.
/canvas or /canvas injects built-in guidance into the next model step without stopping the current turn. The model writes the file under .canvas/..canvas/my-prototype.canvas.tsx yourself and open it from the file tree.The Default prompts section in the Ultra Slash panel can override the shipped /canvas guidance.
When the Agent writes or edits a .canvas/*.canvas.tsx file, the workbench:
Opening a Canvas file yourself also defaults to preview. Switch to edit to change TSX source, or split for side-by-s