dsh-task-board 使用指南
为 DSH Web GUI 增加多列任务看板:本地持久化任务,真正驱动 agent 会话执行,可配 5 段 cron 定时执行。
本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。
本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。
快速上手
dsh-task-board
— 源: plugin_wiki.wiki_content
安装与验证
dsh plugin --profile web add @captain1275/dsh-client-ui-task-board
复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。
— 源: plugins.install
关键要点
- 毛玻璃输入框:高斯模糊(backdrop-filter 30px)+ 半透明玻璃底 + 细边框 + 内高光
- 自定义背景:URL / 本地图片 / 动图(GIF/WebP)/ 视频(mp4/webm) / 透明度 / 模糊调节,
- 仿Claude Code推理等级滑块:点击模型菜单的「推理等级」弹出 Effort 滑块面板——无极拖动、松手吸附、
- 用户消息气泡毛玻璃:与输入框统一的玻璃质感
- 图片资源(社区同人资源,codex-pet-DeepSeek-girl)
— 源: plugin_wiki.readme_zh (fallback readme_raw)
常见问题
装上后在 DSH Web GUI 里能看到什么?
侧边栏「新会话」按钮下方多出一行「任务看板」入口(折叠为 rail 时变为纯图标)。点击入口,中间列整列切换为五列看板(待规划/待办/进行中/已完成/已失败);卡片可拖到不同列、点开有详情(标题/描述/Prompt/执行记录),详情内可「执行/重新执行/删除/查看会话」并设置 5 段 cron 定时(src/client/index.ts:75-181、src/client/sidebar-entry.ts、src/client/board-mount.tsx:18-110)。
「执行」是真的驱动 agent 还是只是改卡片状态?
真实驱动。点执行时插件通过客户端 runtime 调用 workspaces.connectWorkspace 复用或新建一个空白会话,把会话改名为任务标题,然后用 session.prompt([{type:'text',text}], 'queue') 把任务 Prompt 发出去,再订阅会话快照,等到该轮次真实结束后按 lastAgentError 把卡片落「已完成」或「已失败」并写入执行记录(src/core/execution.ts:104-258、src/client/index.ts:104-124)。
任务数据存在哪里?卸载后会不会丢?
存在浏览器 localStorage 键 dsh.taskBoard.v1(与 DSH 客户端快照存储同源,跨刷新/重启 DSH 均持久)。卸载插件不会清数据,浏览器控制台执行 localStorage.removeItem('dsh.taskBoard.v1') 可彻底清除(README.md:147-154、src/core/store.ts:31)。
定时任务的执行时机是什么?
在浏览器端调度:插件每分钟 tick 一次(页面从后台切回可见时立即补 tick),到点的任务走与手动「执行」完全相同的真实执行链路;同一 tick 内不会重复触发,到点前先顺延到下一个 cron 匹配点再执行。前提是 DSH Web GUI 的浏览器标签页要保持打开;标签页关闭期间错过的调度按「错过即跳过」处理,下次打开时只补跑已顺延的到期任务(src/core/scheduler.ts:48-104、README.md:82-84)。
5 段 cron 表达式支持哪些写法?有没有预设?
支持 */*/n/a-b/逗号列表的 5 段表达式 分 时 日 月 周,未通过校验会被识别为非法并丢弃(不持久化为不可触发的 schedule)。预设四个:每天 09:00(0 9 * * *)、每小时(0 * * * *)、每 10 分钟(*/10 * * * *)、每周一 09:00(0 9 * * 1)(src/client/board/TaskDetail.tsx:61-66、src/core/store.ts:77-91、src/core/schedule.ts)。
任务进行中刷新页面/重启 DSH,会发生什么?
不会丢。任务执行会话由真实 DSH 会话驱动,关闭/刷新后插件加载时会对遗留的「进行中」任务按会话现状对账(reconcile):会话列表缺失→已取消、会话还在跑→继续等待、会话 turn 已结束→按 lastAgentError 或历史尾部的 turn/end 错误节点判定成功/失败(src/core/execution.ts:156-199、README.md:75-78)。
需要重启 DSH 进程才能让插件生效吗?
是。profile 层(bundle 行、dsh.client 元数据)在 dsh web 启动时读取,安装/卸载后重启 dsh web GUI 才生效;只刷新页面不会激活(README.md:101-103、cordis.patch.yml:1-12)。
Agent 会自动知道这个看板的存在吗?
默认会。host 半边通过 systemPrompt.section(name plugin:task-board、order 200)向所有 agent 公告本插件的入口、能力与限制;用户提到「任务看板/看板/定时任务」时模型即知道对应本插件。在 Web 设置里把 announceToAgent 改成 false 即可关闭该公告段(src/index.ts:25-93)。
— 源: plugin_wiki.faq_json
兼容性
- DSH: 0.1.0-rc.6+
- Node: 未声明(仓库根与本包 package.json 均未声明 engines;README 仅写 Node ≥ 20 作为构建前置)
— 源: plugin_wiki.compatibility_json
踩坑提醒
安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。
— 来源:通用规则