How to use dsh-ui-web
Add multi-column task kanban to DSH Web GUI with local task persistence, real agent session execution, and configurable 5-segment cron scheduling.
This article is auto-derived from indexed fields (wiki / faq / compatibility_json), not freshly AI-generated.
This article is derived from the plugin's already-indexed fields (wiki / faq / compatibility_json / readme), not freshly generated by AI. Source field is noted at the end of each section.
Quick start
dsh-task-board
— source: plugin_wiki.wiki_content
Install & verify
dsh plugin --profile web add @captain1275/dsh-client-ui-task-board
Run the command above in your DSH Web Profile. Then enable the plugin in the plugin list.
— source: plugins.install
Key points
- 毛玻璃输入框:高斯模糊(backdrop-filter 30px)+ 半透明玻璃底 + 细边框 + 内高光
- 自定义背景:URL / 本地图片 / 动图(GIF/WebP)/ 视频(mp4/webm) / 透明度 / 模糊调节,
- 仿Claude Code推理等级滑块:点击模型菜单的「推理等级」弹出 Effort 滑块面板——无极拖动、松手吸附、
- 用户消息气泡毛玻璃:与输入框统一的玻璃质感
- 图片资源(社区同人资源,codex-pet-DeepSeek-girl)
— source: plugin_wiki.readme_en (fallback readme_raw)
FAQ
What can be seen in DSH Web GUI after installation?
Sidebar new entry: 'Task Board' button under the 'New Session' button (collapsed to icon-only in rail mode). Clicking it switches the middle column to a five-column board (To Plan/Todo/In Progress/Completed/Failed); cards can be dragged between columns, and clicking opens details (title/description/Prompt/execution history). Details allow 'Execute/Re-execute/Delete/View Session' and set 5-field cron schedules (src/client/index.ts:75-181, src/client/sidebar-entry.ts, src/client/board-mount.tsx:18-110).
Does 'Execute' really drive the agent or just change the card status?
Real driver. When executing, the plugin uses client runtime to call workspaces.connectWorkspace to reuse or create a blank session, renames the session to the task title, then uses session.prompt([{type:'text',text}], 'queue') to send the task Prompt, and subscribes to session snapshots. After the round ends, it marks the card as 'Completed' or 'Failed' based on lastAgentError and writes the execution record (src/core/execution.ts:104-258, src/client/index.ts:104-124).
Where is task data stored? Will it be lost after uninstallation?
Stored in browser localStorage key dsh.taskBoard.v1 (same origin as DSH client snapshot storage, persists across refreshes/restarts). Uninstalling the plugin does not clear data; run localStorage.removeItem('dsh.taskBoard.v1') in browser console to completely clear (README.md:147-154, src/core/store.ts:31).
When do scheduled tasks execute?
Scheduled on browser side: plugin ticks every minute (and immediately ticks when page switches from background to visible), tasks due go through the exact same real execution path as manual 'Execute'; same tick won't trigger repeatedly, tasks are postponed to next cron match point before execution. Requires DSH Web GUI browser tab to stay open; missed schedules during tab closure are 'skip if missed', only run postponed due tasks when reopened (src/core/scheduler.ts:48-104, README.md:82-84).
What formats does the 5-field cron expression support? Are there any presets?
Supports 5-field expressions min hour day month dow with */*/n/a-b/comma lists; failed validation is recognized as illegal and discarded (not persisted as untriggerable schedule). Four presets: daily 09:00 (0 9 * * *), hourly (0 * * * *), every 10 minutes (*/10 * * * *), every Monday 09:00 (0 9 * * 1) (src/client/board/TaskDetail.tsx:61-66, src/core/store.ts:77-91, src/core/schedule.ts).
What happens if I refresh the page/restart DSH while a task is in progress?
Won't be lost. Task execution sessions are driven by real DSH sessions; on plugin load after close/refresh, 'In Progress' tasks are reconciled against session status: session missing→cancelled, session still running→continue waiting, session turn ended→determine success/failure based on lastAgentError or tail turn/end error node (src/core/execution.ts:156-199, README.md:75-78).
Does the DSH process need to be restarted for the plugin to take effect?
Yes. Profile layer (dsh.client metadata) is read when dsh web starts; install/unload requires restarting dsh web GUI to take effect; refreshing alone won't activate (README.md:101-103, cordis.patch.yml:1-12).
Will the agent automatically know about this board's existence?
Yes by default. Host side announces this plugin's entry, capabilities, and limitations to all agents via systemPrompt.section (name plugin:task-board, order 200); when user mentions 'Task Board/Board/Scheduled Task', the model knows it corresponds to this plugin. Set announceToAgent to false in Web settings to disable this announcement (src/index.ts:25-93).
— source: plugin_wiki.faq_json
Compatibility
- DSH: 0.1.0-rc.6+
- Node: 未声明(仓库根与本包 package.json 均未声明 engines;README 仅写 Node ≥ 20 作为构建前置)
— source: plugin_wiki.compatibility_json
Pitfalls
Review the upstream repo before installing. This guide is auto-derived from indexed fields and may lag the latest release. If anything contradicts the official docs, treat the upstream source as authoritative.
— source: general rule