dsh-workbench · 个人工作台插件
把「时序」式个人工作台搬进 DeepSeek Harness:任务、计划、专注、复盘、记事本(AI 完善)、Bug、产品设计(导图 / 模块 / 业务 / 端 / Demo)、测试(AI 用例 / 实时 3D 执行 / Bug 回归 / 报告 / Docker)、定时新闻在同一块面板完成,数据落在本机 SQLite,主题跟随 DSH,兼容 dsh-startup-moss 与 dsh-opencode-palette 的换肤。
版本:1.10.0 | 形态:独立面板 + 侧栏入口 | 数据:
~/.dsh/dsh-workbench.sqlite
| 看板(MOSS 550W 主题) | 日历 |
|---|---|
![]() |
![]() |
| 专注 | 统计 |
![]() |
![]() |
| 主题切换 | 定时新闻 |
|---|---|
![]() |
![]() |
| 记事本(多笔记本) | 导出 PDF | 导出目录设置 |
|---|---|---|
![]() |
![]() |
![]() |
| 导出成功页(打开文件夹) |
|---|
![]() |
| Bug 管理(Teambition 风格) | 多选提交工作区会话 |
|---|---|
![]() |
![]() |
| 产品思维导图 | 产品设计笔记 | 多风格产品 Demo |
|---|---|---|
![]() |
![]() |
![]() |
| 测试用例(AI 生成) | 3D 动画测试报告 |
|---|---|
![]() |
![]() |
| 项目门户(默认落点:先选项目 / 产品,再进功能) | AI 协同(选目标会话 / 改提示词,直接发出) |
|---|---|
![]() |
![]() |
| 导图右向布局 | 双翼布局 | 节点右键菜单 |
|---|---|---|
![]() |
![]() |
![]() |
| 一个产品多张导图(左侧清单 + 每张独立画布) |
|---|
![]() |
独立原型(浅色):
preview/06-原型六视图.png
一、为什么是“工作台”而不是“待办清单”
参考应用的 7 张截图指向同一套模型:任务只有一份数据,看板 / 清单 / 时间轴 / 日历 / 专注 / 统计只是它的六种投影。
因此插件的核心不是六个页面,而是:
- 一份任务模型(标题、空间、日期、时段、状态、优先级、标签、分组、子待办、附件、记录);
- 一套派生逻辑(今天 / 完成率 / 周趋势 / 连续天数 / 专注分钟);
- 一个能持续保存的本地库(不是 localStorage 草稿)。
二、功能清单
项目门户(1.2)
- 默认落点:从侧栏「工作台」或底部 dock 的「门户」进入,先看到门户页,而不是任务看板。
- 项目即工作区:一张项目卡聚合同一个 DSH 工作区下的产品 / Bug 项目 / 测试项目;卡片显示任务、Bug、测试、笔记四项计数与工作区路径,当前范围有高亮与勾选标记。
- 范围切换:点项目卡(或左侧项目列表)即切换全局项目范围;任务 / 看板 / 清单 / 时间轴 / 四象限 / 日历 / 专注 / 统计 / 门户计数都按它过滤;
全部项目与未归属(历史任务)是两张固定卡。 - 功能卡片:任务清单、看板、日历、统计、专注、Bug 管理、测试、产品设计、记事本、新闻共 10 张;点卡片进入对应页面,并把 Bug 项目 / 测试项目 / 产品 / 笔记本的当前选择对齐到该项目。
- 项目管理:门户内直接新建项目 / 产品(写产品名、简介、关联工作区,自动建「产品:名称」笔记本),卡片内编辑 / 删除;卡片上的「进入」会先切到该项目的范围再进页面。
- 范围持久化:所选项目写入设置(
settings.project),重开面板后恢复。 - 任务归属:新建 / 详情编辑都可选项目;快速记录默认落到当前项目。
任务
- 看板:下一步 / 进行中 / 等待中三列;卡片显示空间、标题、描述、时间、子待办进度、附件与优先级标记。
- 行动清单:正在进行 / 接下来 / 等待中 / 已完成四组;顶部快速记录,
Enter直接创建。 - 时间轴:按开始时间排列今天安排;状态胶囊 + 一键完成;底部总数。
- 四象限:重要且紧急 / 重要不紧急 / 紧急不重要 / 不重要不紧急。
- 作用域:今天 / 全部;项目过滤(
tasks.project_path);空间过滤;全局搜索(⌘K)。 - 筛选:全部 / 高优先级 / 有子待办 / 有附件 / 未排时间。
- 排序:按时间 / 按优先级 / 按创建 / 按标题。
- 密度:标准 / 紧凑(持久化)。
- 新建:标题、备注、项目、空间、日期、起止时间、优先级、标签。
- 复制 / 删除:删除前确认,删除后自动选中下一条。
- 详情字段编辑:点击项目、空间、日期、时间、执行状态、优先级、标签、分组即可修改;写入操作记录。
- 子待办:增删、勾选、独立备注、计划开始 / 完成时间;主视图显示
1/3进度。 - 附件:文件选择或从剪贴板粘贴图片(当前只保存元数据:名称 / 类型 / 大小)。
- 通知:今天已完成、等待中、已过期任务三组汇总。
计划
- 日历周视图:7 天 × 小时网格;全天条;事件按空间着色;右侧「今天 N 项安排」。
- 日历月视图:6 周网格;每天最多 3 条 + “+N 项”;点日期回到周视图。
- 日历年视图:12 个月缩略图;有任务的日期着色;点月份进入月视图。
- 周 / 月 / 年切换;上一页 / 下一页;跨年正确。
专注
- 15 / 25 / 45 / 60 分钟预设 + 自定义 1–180 分钟。
- 圆环倒计时;开始 / 暂停 / 重置;用
Date.now()计算剩余,切后台不漂移。 - 专注队列:搜索、当前任务置顶、切换当前任务(计时中禁止切换,避免记错任务)。
- 计时结束自动写入一条
focus_sessions,累计到今日专注与统计。 - 「沉浸」模式:隐藏队列,专注卡居中放大。
统计
- 周期:本周 / 本月 / 本年(趋势桶分别为 7 天 / 本月各周 / 12 个月)。
- KPI:实际完成、今日专注、连续完成天数、计划完成率。
- 趋势柱状图 + 空间完成结构(工作 / 学习 / 生活 / 自建空间)。
- 5 张洞察:完成最多的时间桶、已拆步骤任务、等待中任务、今日专注轮次、连续天数。
- 所有数字实时派生,不写死。
记事本
- 多笔记本:一个笔记本可放多篇笔记;左栏顶部选择 / 新建 / 管理笔记本,笔记可随时移动到其他笔记本;删除笔记本时笔记自动移到其他笔记本。
- 两栏布局:左栏笔记本选择 + 笔记列表(搜索 / 全部 / 收藏 / 标签过滤),右栏标题 + 所属笔记本 + 标签 + 编辑 / 预览。
- Markdown:标题、列表、任务清单、引用、代码块、链接、图片;安全转义,链接只放行 http/https。
- 自动保存:停止输入 650ms 落库,切笔记 / 切视图 / 页面隐藏时立即冲刷;工具栏显示「保存中 / 已保存 / 保存失败」,另有保存按钮与
⌘S。 - 整理:收藏置顶、标签、全文搜索(标题 / 正文 / 标签)、字数统计、更新时间。
- AI 完善:编辑器「AI 完善」直接按通用编辑标准完善;「按要求完善」可先输入要求(补异常流程/压缩字数/改文档语气等)。AI 通过
workbench_note_update写回原笔记,保留笔记本、标签与收藏;产品设计笔记同样适用。 - 转为任务:一键把当前笔记标题 + 正文摘要变成今天的看板任务。
- 另存 Markdown:把当前笔记写成
.md到「设置 → 笔记保存目录」,文件名取笔记标题,重名自动加(2)。 - 导出 PDF:同一目录生成 A4 PDF(标题、所属笔记本、标签、正文、代码块、引用),使用本机 Chrome 无头打印;Chrome 不可用时尝试 Electron。
- 导出成功页:显示文件名与完整路径,提供「打开文件夹」(Finder 中定位文件)、「复制路径」与「完成」。
- 保存目录:设置里可改,默认本机用户目录(
~);支持~/子目录与相对路径,自动创建并校验可写。 - 预置欢迎笔记:首次启用写入一篇 Markdown 指南(只播一次,删除后不会重建)。
Bug 管理
参考 Teambition 的任务卡片看板与统计:
- 多项目:一个项目关联一个 DSH 工作区(路径从
workspaces服务读取,也可手填);项目卡片、筛选、新建 / 编辑 / 删除。 - 看板:待处理 / 进行中 / 待验证 / 已解决四列;卡片显示项目、优先级 P0–P3、严重程度、计划日期、标签、指派人、AI 线程标记。
- 统计:总数、各状态、今日计划、完成率进度条、严重程度分布。
- 选择:卡片复选框多选;未选中时点卡片打开详情(单选);批量操作栏支持提交 / 设置计划 / 清除。
- 按计划提交:提交计划日期 ≤ 今天且未解决的 Bug;也可先批量设置计划日期。
- 工作区会话修复:不依赖 Better Sidebar 侧边对话。提交时用 DSH
sessions服务在项目关联工作区新建普通会话(create({ workspaceId }),未知工作区退回{ cwd }),把 Bug 列表、工作区绝对路径和修复/验证提示词用session.prompt(...,'queue')直接发出,然后切到该会话——不刷新页面、不回退到当前工作区。失败时提示词留在剪贴板。 - 优化提示词:要求逐条读代码/复现、根因、最小改动、实际验证;一次一条;禁止改无关文件/依赖/lockfile/git;无法完成置 verify;完成后必须调用
workbench_bug_update。 - 自动回写:Agent 调用
workbench_bug_update工具更新状态与验证记录;看板每 6 秒轮询刷新,卡片 / 详情显示验证结果。 - 安全:提交前二次确认,提示会启动 Agent 并可能修改工作区文件。
灵感(1.6)
独立的「灵感」模块(研发分组),把一句想法炸成一张可继续生长的图:
- 三种输入:文字(标题 / 正文 / 补充)、截图(粘贴 / 拖入 / 选择,客户端先压到 1600px webp,落盘到
<工作区>/.dsh-workbench/ideas/<id>/inputs/)、URL(生成时由 Agent 抓摘要,失败不阻塞)。 - AI 六方向发散:用户与场景 / 痛点与机会 / 方案形态 / 技术与可行 / 商业与传播 / 风险与反例,可选「跨界类比」,还可自定义角度(每个灵感最多 6 个);每方向 3–5 条,每条含「为什么成立」,并自动生成 2–3 条跨支关联。
- 节点编辑:画布右键菜单(改文案 / 加子节点 / 加同级 / 删除 / 发散)与双击改名,所有修改直接落草稿。
- 双引擎图视图:思维导图用 mind-elixir 5.15.1(双击改名、Tab/Enter 加节点、拖拽换父级、撤销重做、折叠),力导图用 ECharts 6.1.0 graph force(分类配色、虚线关联、拖拽、缩放、悬停邻接高亮);两个库都是 vendor 资产,进入视图才加载,主包不变。
- 继续发散:点任意方向/节点「沿这个方向再发散」,只追加这一支 2–4 条,其他节点坐标与文案不动,自动产生新版本。
- 版本:AI 每次生成 = 一个不可变版本;手动编辑进草稿(防抖保存),「存档版本」才落版本;版本对比可选任意 A/B 并交换,显示节点与边级差异,可回滚到 A、也可删除(至少保留一个)。
- 导出:PNG / SVG / JSON / Markdown 大纲,可下载或直接存到项目工作区
exports/。 - Agent 工具:
workbench_idea_expand(可分批写入,final:true冻结版本)与workbench_idea_progress(里程碑上报);提示词契约与 6 方向维度由宿主生成,客户端只负责派发。 - 项目与门户一致:门户里新建的产品 / Bug / 测试项目会按其工作区路径自动出现在灵感项目下拉里(同路径不重复建)。
- 旧「灵感调研库」已移除:产品页不再有「灵感」页签与
workbench_inspiration_publish工具,历史数据自动归档为product_inspirations_legacy。
产品设计
- 一个产品多张导图:产品只是项目壳(名称 / 工作区 / 笔记本);导图独立成「图」,可建多张(如「收银主链路」「移动端」「V2 改版」),每张独立存库并镜像到
.dsh-workbench/products/<产品 id>/maps/<mapId>.json。- 设计笔记 / 模块 / 灵感 / Demo 都带
mapId:默认落在当前导图下;其他页签可用「全部导图 / 单张导图」切换浏览范围。 - AI 协同与各类生成提示词会写明当前导图与
mapId,工具写入时带上它,避免不同导图的产物混在一起。
- 设计笔记 / 模块 / 灵感 / Demo 都带
- 思维导图布局:右向树 / 左右双翼 / 纵向组织 / 环形导图 四种布局一键切换(写入
settings.mapLayout,重开保留);折叠状态在四种布局下都生效。 - 节点右键菜单:节点上右键 = 添加子节点 / 添加同级 / 重命名 / 改为功能或需求 / 折叠展开子树 / 删除;画布空白处右键 = 新增功能 / 新增需求 / 全部展开 / 全部折叠。菜单项带快捷键提示,Esc 或点击空白关闭。
- 产品项目:一个产品关联一个 DSH 工作区;保存时自动创建「产品:名称」笔记本并关联同一工作区。
- 思维导图:产品 / 功能 / 需求三层树;可增删改节点;自动保存到
<工作区>/.dsh-workbench/products/<productId>/mindmap.json,同时落库。 - AI 设计笔记:把导图、功能勾选、工作区与结构化 PRD 提示词提交到工作区新会话;Agent 调用
workbench_product_note_publish按功能/需求逐条写入现有笔记接口与产品笔记本;笔记默认镜像到工作区.md。 - 产品 Demo:双通道生成——「快速渲染」由本地渲染器从设计笔记 + 灵感即时出稿(稳定、零额外额度);「AI 深度生成」在工作区会话产出高保真可交互原型(≥3 类交互)。支持单页面 / 产品系统(多页)形态,目标端可选自适应 / PC / 移动 / 平板。
- Demo 进度监控:本地与 AI 生成共用
product_demo_progress进度卡(步骤条 + 最近日志);生成中 4 秒快轮询实时刷新。 - 12 套分端 UI 主题:通用(极简白 / 玻璃拟态★ / 新拟态)、PC(编辑杂志 / 暗色仪表盘★ / Bento 网格★ / 科技终端)、移动(流光渐变★ / 温暖奶油★ / 黏土拟态 / 新粗野)、平板(平板双栏);每套绑定设计令牌(进 AI 提示词)+ 本地 CSS,两条生成路径视觉一致;预览支持 PC / 平板 834px / 移动 390px 视口切换。
- 预览:工作台内 iframe 预览,
/workbench-api/products/demo?id=...读取工作区 HTML;Demo 列表可切换风格/范围。 - 笔记本工作区:任意笔记本可设置工作区路径;关联后笔记保存时同步写
<工作区>/.dsh-workbench/notes/<笔记本>/*.md,删除笔记同步删除文件。 - 提示词:产品经理角色;固定 PRD 结构;逐节点调用工具;禁止遗漏/空泛;Demo 提示词含灵感上下文、主题设计令牌、进度上报硬性要求与唯一交付契约(
workbench_product_demo_publish)。
UI 展示(1.1)
参照 Plane(issue/board/views/command 交互)、Huly(all-in-one 工作台与紧凑信息层级)、Qase(测试用例/运行/报告结构)做了三类改造:
- 全局命令面板:⌘K 或点顶栏 ⌘K,搜索/跳转所有视图与新建动作;视图、命令、快捷入口统一。
- 视图头部信息层级:产品/测试/Bug 增加
head-pills统计胶囊;模块页增加节点/端覆盖条;卡片 hover 抬升、模块类型左侧色条。 - 信息密度与动效:统一圆角/间距/hover/焦点;模块卡、Bug 卡、用例卡过渡;测试执行实时 3D 动画保留。
- 样式仍全部在 Shadow DOM,跟随 DSH/MOSS/opencode 主题 token;不改主 DSH 全局样式。
统一研发域(1.0)
- 层级:产品 → 模块 → 业务 → 功能 / 需求;端:PC / 移动 / 平板 / 全部。
- 产品「模块」页:AI 按导图拆分模块/业务/功能/需求,调用
workbench_module_publish;每个模块用workbench_product_note_publish生成详细设计笔记(moduleId/platform 关联)。 - Bug:新增
platform/moduleId;表单可选端;测试失败录入 Bug 自动带端/模块。 - 测试项目/用例:带
platform/moduleId;AI 用例提示词包含默认端与模块。 - AI 协同:产品/测试/Bug/笔记提供「AI 协同」;可选择新建工作区会话或追加到已有会话(下拉标注会话所属工作区)。新建走
sessions.create({ workspaceId | cwd })+session.prompt(...,'queue'),追加走retainAgentScope+prompt(...,'queue'),两条通道都不刷新页面;Bug 提交后立即回写aiThreadId与doing状态。 - 执行页新增实时 3D 用例塔、扫描光束、通过率环;报告 3D 柱状/环/时间线保留,尊重 reduced-motion。
- 数据迁移在宿主启动时执行;旧 products/bugs/tests 数据保留,模块/端默认 all。
测试
- 测试项目:多项目;关联 DSH 工作区;项目/用例/运行 JSON 与报告保存到
<工作区>/.dsh-workbench/tests/<projectId>/;自动创建「测试:名称」Bug 项目。 - AI 用例生成:三种来源——手写需求、产品设计笔记、产品 Demo + 笔记。新会话 +
workbench_testcase_publish逐条写入;覆盖正例/反例/边界/异常/权限/回归。 - 执行:按用例逐条标记通过/失败/阻塞,填写实际结果;运行汇总与状态自动计算。
- Bug 闭环:失败用例「录 Bug」自动写入 Bug 管理(含前置/步骤/预期/实际/优先级),结果保留 Bug id。
- 回归:一键把失败/阻塞用例带入新运行;回归通过后自动把关联 Bug 置
verify,继续用 Bug 管理完成 resolved。 - 动画报告:2D KPI + CSS 3D 等距柱状(逐条生长)+ 通过率环 + 时间线;可保存自包含 HTML 到工作区
reports/。 - Docker 部署:本机或 SSH 服务器;配置镜像/容器/端口/远端目录,宿主执行
docker build → rm -f → run -d -p并回传日志。Docker 未启动/未配置时会明确失败,不影响用例与报告。
定时新闻
- 订阅:主题名称 + 检索关键词 + 频率(每天 / 工作日 / 每周 / 自定义 cron)+ 多个检索时间 + 每次检索条数(3–20 条)。
- 预置主题:AI 行业动态 / 科技产品 / 财经市场 / 国际时事 / 健康生活 / 体育赛事 / 游戏动漫 / 开源项目,点一下填入标题与关键词。
- AI 总结:Agent 为每条新闻生成 100–180 字总结(事件、关键数据、影响),卡片正文展示;标题下保留来源与日期。
- 定时执行:每个时间在 @goodandready/dsh-cron 创建一个
llm任务;到点由 DSH Agent 用网页搜索检索,再通过workbench_news_publish工具把结果写回工作台。 - 展示:订阅卡(状态 / 频率 / 条数 / 下次运行 / 上次入库)+ 小红书式瀑布流新闻卡片;卡片高度随 AI 总结长度变化,3 列(窄屏 2/1 列),按主题筛选、立即检索、暂停 / 恢复、编辑 / 删除。
- 去重:服务端按 URL 哈希去重;同一订阅最多保留 200 条。
- 成本可见:订阅弹窗明确提示会消耗模型额度;任务权限固定为只读。
- 刷新:进入新闻页、手动刷新、以及页面打开时每 25 秒轮询一次;触发检索后 4 分钟内每 6 秒轮询。
全局
- 主题:跟随 DSH / 浅色 / 深色。
- 侧栏入口:克隆 DSH 原生「新建会话」按钮,紧跟在「定时任务」后面,尺寸 / 图标 / 文字 / 收起行为与定时任务完全一致(不再占用面板列表里的小图标位)。
- 面板内侧栏自动收起(宽度 < 1250px),顶栏按钮展开;窗口 / DSH 侧栏尺寸变化会自适应,手动切换后保持手动选择。
⌘K/Ctrl+K聚焦搜索;Esc关闭弹窗;字段行支持Enter打开编辑器。- 自动保存状态(保存中 / 已自动保存 / 保存失败);外部修改冲突时自动重载并提示。
- 导入 / 导出 JSON;数据存储健康信息(引擎、SQLite 版本、revision、条目数)。
三、主题适配(MOSS / opencode-palette)
机制
工作台不写死一套“深色”。CSS 变量默认映射到 DSH 主题服务注入的 --dsw-alias-* token:
| 工作台变量 | DSH token | 用途 |
|---|---|---|
--bg |
--dsw-alias-bg-base |
页面底 |
--panel / --panel-2 / --panel-3 |
--dsw-alias-bg-layer-1/2/3 |
面板、卡片、胶囊 |
--line / --line-strong |
--dsw-alias-border-l1/l2 |
发丝线 |
--text / --text-2 / --text-3 |
--dsw-alias-label-primary/secondary/tertiary |
三级文字 |
--accent / --accent-ink |
--dsw-alias-brand-primary/brand-text |
主色、选中、进度 |
--green / --amber / --red |
--dsw-alias-state-success/warn/error-primary |
状态色 |
--accent-soft 等柔和底 |
color-mix(token, var(--panel)) |
选中底、提示底 |
因为 Shadow DOM 会继承宿主 CSS 变量,MOSS 在任意祖先节点(html / body / 壳层)切换 token 时,工作台无需重挂载即可跟着变色。
三种主题模式
| 模式 | 行为 |
|---|---|
| 跟随 DSH(默认) | 完全使用 --dsw-alias-*;MOSS 550W 深红、MOSS 浅色暖纸、opencode 38 套皮肤都自动同步 |
| 浅色 | 固定使用工作台自带浅色(data-wb-theme="light"),不受宿主皮肤影响 |
| 深色 | 固定使用工作台自带深色(data-wb-theme="dark") |
顶栏主题按钮 / 设置页均可切换;默认 auto,设置持久化在 SQLite 的 settings.theme。
实测
- dsh-startup-moss:当前运行在 550W 深红主题,工作台自动取到
#0b0605 / #120908 / #ff3b2f,按钮、进度环、选中态、卡片全部同步(见截图 01–04)。 - dsh-opencode-palette:使用同一套 token;为不改动当前皮肤,用 Tokyo Night token(
#1a1b26 / #7aa2f7 / #c0caf5)注入祖先节点做等效验证,工作台即时切换为冷蓝紫色。 - 切回
auto后 token 立即恢复;显式浅色 / 深色也验证过。
四、安装与启用
已安装在本机 ~/.dsh/profiles/desktop(link 模式):
dsh plugin --profile desktop add link:/Volumes/软件目录/work/zkxh/deepseek/个人工作台/工作台插件
本机 PATH 没有 dsh 时:
ELECTRON_RUN_AS_NODE=1 "/Applications/DeepSeek Harness.app/Contents/MacOS/DeepSeek Harness" \
--expose-internals "/Applications/DeepSeek Harness.app/Contents/Resources/app.asar/dsh/node_modules/@deepseek-ai/dsh-desktop-host/lib/cli.js" \
plugin --profile desktop add link:/Volumes/软件目录/work/zkxh/deepseek/个人工作台/工作台插件
- 安装后重启 DSH;侧栏出现「工作台」。
- 不抢启动落点:每次启动仍落在原来的面板,工作台按需进入。
- 卸载:
dsh plugin --profile desktop remove dsh-workbench(数据库文件不会自动删)。
五、记事本设计调研(GitHub)
| 项目 | 规模 / 许可 | 可借鉴 | 本项目取舍 |
|---|---|---|---|
| XieZongChen/dsh-md-notes | DSH 笔记插件,MIT,15★ | Markdown 管理/预览、全文搜索、每工作区文件、Git 同步、@ 引用、对话记入笔记 |
取:Markdown 编辑/预览、搜索、自动保存、标签/收藏;舍:独立全屏管理器、Git 同步、@ 引用(v1 保持轻量,融入现有工作台) |
| usememos/memos | 轻量随手记,MIT,63k★ | 快速捕获、时间线、标签、置顶 | 取:列表 + 编辑器、标签、收藏置顶;舍:社交/多用户 |
| laurent22/joplin | 本地优先笔记,56k★ | Markdown、本地数据、搜索 | 取:本地 SQLite、Markdown、搜索;舍:同步/端到端加密 |
结论:工作台已有 SQLite 和多模块导航,不另起一套全屏笔记管理器;把记事本做成与看板 / 新闻同级的视图,数据落现有 SQLite,保留 Markdown + 搜索 + 标签 + 收藏 + 自动保存,并利用工作台上下文加一个「转为任务」。
六、数据与接口
存储
- 主库:
~/.dsh/dsh-workbench.sqlite(WAL、外键、synchronous=NORMAL)。 - 可用环境变量
DSH_WORKBENCH_DB指定别的路径。 - 若运行环境没有
node:sqlite,自动降级为同目录dsh-workbench.json,接口与行为不变。
表
| 表 | 内容 |
|---|---|
spaces |
空间(工作 / 学习 / 生活 / 自建),名称、颜色、排序 |
tasks |
任务主表:标题、描述、备注、空间、项目(project_path,DSH 工作区绝对路径,空串=未归属)、状态、优先级、日期、起止、时长、标签、分组、完成时间 |
subtasks |
子待办:标题、完成、计划起止、独立备注、排序 |
attachments |
附件元数据:名称、类型、大小 |
logs |
操作记录:创建、改字段、完成、专注等 |
focus_sessions |
专注记录:任务、开始时间、分钟、是否完成 |
settings |
主题、密度等键值 |
news_topics |
新闻订阅:主题、关键词、频率、时间、每次条数、cron 任务 id、启用状态、上次入库 |
news_items |
新闻条目:标题、URL、来源、发布时间、一句话摘要、AI 总结、入库时间、URL 哈希(唯一) |
notebooks |
笔记本:名称、创建/更新时间 |
notes |
记事本:所属笔记本、标题、Markdown 正文、标签、收藏、工作区文件路径、创建/更新时间 |
modules |
产品模块/业务/功能/需求:父级、kind、platform、noteId、状态 |
test_projects |
测试项目:名称、工作区、产品、模块、端、Bug 项目、Docker 部署配置 |
test_cases |
测试用例:项目、标题、前置、步骤 JSON、预期、优先级、类型、来源 |
test_runs |
测试运行:项目、状态、结果 JSON、汇总、部署日志、时间 |
products |
产品:名称、简介、工作区、产品笔记本、导图 JSON、风格 |
product_demos |
产品 Demo:产品、风格、范围、功能 id、标题、HTML 文件路径 |
bug_projects |
Bug 项目:名称、关联工作区路径 / 名称、创建/更新时间 |
bugs |
Bug:项目、编号、标题、描述、状态、严重程度、优先级、计划日期、标签、验证记录、AI 线程、指派人 |
meta |
schema / revision / seeded 标记 |
写入采用整份快照 + 事务:单用户本地数据量小,语义简单,永远不会出现半写状态。每次写入 revision + 1。
接口(同源,挂 DSH webServer)
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /workbench-api/state |
整份状态 + revision |
| PUT | /workbench-api/state |
写入整份快照;revision 不匹配返回 409 + 当前状态 |
| GET | /workbench-api/health |
引擎、文件名、SQLite 版本、revision、任务/空间/专注数 |
| GET | /workbench-api/export |
带 content-disposition 的 JSON 下载 |
| GET | /workbench-api/news |
新闻订阅 + 条目(与任务快照分开) |
| POST | /workbench-api/news/topics |
新建 / 更新订阅(含 cron 任务 id) |
| DELETE | /workbench-api/news/topics/:id |
删除订阅及其条目 |
| GET | /workbench-api/notes |
全部笔记(收藏优先、更新时间倒序) |
| POST | /workbench-api/notes |
新建 / 更新笔记(标题、正文、标签、收藏) |
| DELETE | /workbench-api/notes/:id |
删除笔记 |
| GET | /workbench-api/notebooks |
通过 /notes 一并返回;也可单独读取 |
| POST | /workbench-api/notebooks |
新建 / 重命名笔记本 |
| DELETE | /workbench-api/notebooks/:id |
删除笔记本,笔记移到其他笔记本 |
| GET | /workbench-api/notes/config |
读取保存目录与默认目录 |
| POST | /workbench-api/notes/config |
设置保存目录(自动创建 + 可写校验) |
| POST | /workbench-api/notes/export |
`{noteId, format: 'md' |
| GET | /workbench-api/bugs |
返回 {projects, bugs} |
| POST | /workbench-api/bugs/projects |
新建 / 编辑项目(名称、工作区路径) |
| DELETE | /workbench-api/bugs/projects/:id |
删除项目及其 Bug |
| POST | /workbench-api/bugs |
新建 / 更新 Bug |
| DELETE | /workbench-api/bugs/:id |
删除 Bug |
| GET | /workbench-api/products |
返回 {products, demos} |
| POST | /workbench-api/products |
新建/编辑产品(自动建产品笔记本) |
| DELETE | /workbench-api/products/:id |
删除产品与 demo 登记 |
| GET | /workbench-api/modules?productId= |
模块/业务/功能/需求列表 |
| POST | /workbench-api/modules |
新建/编辑模块节点 |
| DELETE | /workbench-api/modules/:id |
删除模块节点 |
| POST | /workbench-api/products/mindmap |
{productId, mindmap} 保存导图并写工作区 JSON |
| POST | /workbench-api/products/demo |
{productId, scope, style, featureId, title, html} 保存 Demo 到工作区 |
| GET | /workbench-api/products/demo?id= |
返回 Demo HTML(iframe 预览) |
| GET | /workbench-api/tests |
返回 {projects,cases,runs} |
| POST | /workbench-api/tests/projects |
新建/编辑测试项目(自动建 Bug 项目) |
| DELETE | /workbench-api/tests/projects/:id |
删除测试项目及用例/运行 |
| POST | /workbench-api/tests/cases |
新建/编辑用例 |
| DELETE | /workbench-api/tests/cases/:id |
删除用例 |
| POST | /workbench-api/tests/runs |
新建/更新运行(结果/汇总/状态) |
| DELETE | /workbench-api/tests/runs/:id |
删除运行 |
| POST | /workbench-api/tests/report |
保存自包含报告 HTML 到工作区 |
| POST | /workbench-api/tests/deploy |
Docker 部署(本机或 SSH),返回日志 |
| POST | /workbench-api/bugs/status |
回归通过后更新 Bug 状态 |
| POST | /workbench-api/notes/reveal |
{path} 在系统文件管理器中定位导出文件(限制在当前保存目录内) |
新闻定时任务使用 dsh-cron 的官方同源接口:GET/POST /dsh-cron/tasks、POST /dsh-cron/tasks/:id/run|pause|resume、DELETE /dsh-cron/tasks/:id。工作台不直接操作 cron 的存储。
冲突处理:浏览器半侧保存前带上 revision;409 时丢弃本地待写快照、载入服务端状态并提示“数据已在别处更新,已重新载入”。
Agent 工具:宿主半侧注册 workbench_news_publish,参数 { topicId, items:[{title,url,source,publishedAt,summary,aiSummary}] }。它只做校验、URL 协议过滤、按 URL 去重与落库,并按订阅的「每次条数」截断;定时任务的提示词会显式要求 Agent 在完成后调用它(没有新闻时传空数组)。
笔记工具:workbench_note_update,参数 {noteId, title?, content}。AI 完善后调用它;保留所属笔记本、标签、收藏,并同步工作区 Markdown。
统一域工具:workbench_module_publish(productId/parentId/name/kind/platform/description)。
测试工具:workbench_testcase_publish,参数 {projectId,title,precondition,steps[],expected,priority,type,source};AI 按用例逐条调用。
产品工具:workbench_product_note_publish(写设计笔记,走现有 notes)、workbench_product_demo_publish(供外部 Agent 写 Demo;工作台 UI 默认用本地渲染器)。
Bug 工具:workbench_bug_update,参数 {bugId, status:'open'|'doing'|'verify'|'resolved', verification?, note?}。工作区会话里的 AI 修复并验证后调用它;不传 verification 时保留原验证记录,note 会追加到验证记录。
备份 / 恢复:设置 → 导出 JSON;导入 JSON 会整份覆盖(导入前建议先导出)。新闻 / 笔记 / Bug 数据不在任务快照里,需要时直接用 SQLite 工具备份整个 .sqlite 文件。
七、使用速查
| 想做的事 | 操作 |
|---|---|
| 快速记一条 | 清单 / 时间轴顶部输入 + Enter |
| 找任务 | ⌘K 或顶栏搜索;也可用空间 / 筛选 / 排序 |
| 改时间或优先级 | 右侧详情点对应字段 |
| 拆步骤 | 详情 →「子待办」→ 输入 + Enter;点备注图标写独立备注 |
| 专注一轮 | 专注 → 选预设或自定义 → 开始;结束后统计自动 +1 轮 |
| 看这一周 | 日历(周)或统计(本周) |
| 复盘这个月 | 统计 → 本月;侧栏「数据复盘」直达本月 |
| 记一条 | 记事本 → 新建笔记;停止输入自动保存,⌘S 立即保存 |
| 找笔记 | 记事本左栏搜索标题/正文/标签,或点标签过滤 |
| 把笔记变任务 | 笔记右上「转为任务」 |
| 分笔记本 | 左栏顶部选择 / + 新建 / 齿轮管理;编辑区可改所属笔记本 |
| 做产品 | 产品设计 → 新建产品并选工作区 → 导图加功能/需求 → 模块页 AI 生成模块/详细设计 |
| AI 协同 | 产品/测试/Bug 顶部「AI 协同」→ 选新会话或已有会话 → 执行下一步 |
| 生成设计笔记 | 产品 → 设计笔记 → 勾选节点 → AI 生成;笔记在「记事本」中 |
| 生成 Demo | 产品 → Demo → 选风格 / 范围 → 生成,右侧 iframe 预览 |
| 做测试 | 测试 → 新建项目并关联工作区/产品 → AI 生成用例 → 执行 → 录 Bug → 回归 → 报告 |
| 部署 | 测试 → 部署 → 配置镜像/容器/端口 → 保存并部署(本机或 SSH) |
| 管 Bug | 侧栏工作台 → Bug 管理;新建项目并选 DSH 工作区,再新建 Bug |
| 提交 AI 修复 | 勾选 Bug → 提交到工作区会话;或打开详情单选提交;或「按计划提交」 |
| 验证回写 | Agent 完成后看板自动刷新,详情显示验证记录与状态 |
| 另存 / PDF | 笔记右上「另存」/「PDF」;在设置里改保存目录(默认用户目录) |
| 订阅新闻 | 新闻 → 订阅主题;选预置主题或填关键词、频率、时间、条数 |
| 立即看一次 | 新闻订阅卡 →「检索」;完成后自动刷新 |
| 暂停新闻 | 订阅卡 →「暂停」(同时暂停对应的 dsh-cron 任务) |
| 换肤 | 顶栏主题按钮 → 跟随 DSH / 浅色 / 深色 |
| 备份 | 设置 → 导出 JSON |
八、架构与文件
个人工作台/工作台插件/
├── src/
│ ├── host/index.ts # SQLite、schema、播种、/workbench-api 路由、JSON 降级
│ └── client/
│ ├── index.ts # main 注册 + 侧栏入口克隆(与定时任务同款)
│ ├── app.ts # Shadow DOM 内的看板/清单/时间轴/日历/专注/统计/新闻/记事本/笔记本/导出/Bug/产品
│ └── styles.ts # 主题 token 映射与全部样式
├── lib/ # 构建产物(宿主 index.js / 浏览器 client.js)
├── scripts/verify-bundle.mjs
├── preview/ # 真实 DSH 截图 + 原型六视图
├── cordis.patch.yml
├── package.json
└── README.md
- 浏览器半侧为 React 组件挂载 + Shadow DOM 原生渲染:React 只负责生命周期,DOM 与事件完全隔离,不污染 DSH 样式。
- 模块工厂形态:
window.__ModuleLoader__.load({ id: "dsh-workbench", factory: ... })。 - 面板 key:
workbench;侧栏入口:克隆「新建会话」按钮并紧跟「定时任务」,不使用sidebar.panellist。 - 主题:
data-wb-theme(显式模式)+data-wb-scheme(color-scheme),变量默认取--dsw-alias-*。
开发
pnpm install
pnpm bundle # tsdown:宿主 ESM + 浏览器 CJS 模块
node scripts/verify-bundle.mjs # 16 项产物检查
九、验收记录(2026-10-19)
在真实 DSH 桌面端 + 独立测试服上逐项验证:
| 类别 | 项目 | 结果 |
|---|---|---|
| 任务 | 新建(弹窗 / 快速记录) | ✅ 写入 SQLite |
| 任务 | 勾选完成 / 重新打开 | ✅ completed_at + 完成日志 |
| 任务 | 复制 / 删除 | ✅ 复制选中副本,删除需确认 |
| 任务 | 字段编辑(空间/日期/时间/状态/优先级/标签/分组) | ✅ 全部入库 |
| 任务 | 子待办 新增 / 勾选 / 备注 / 计划时间 | ✅ 独立备注与时间入库 |
| 任务 | 附件 选择 / 粘贴 / 删除 | ✅ 元数据入库 |
| 视图 | 看板 / 清单 / 时间轴 / 四象限 | ✅ 同一数据源 |
| 视图 | 今天 / 全部、空间、搜索、筛选、排序、密度 | ✅ 即时生效并持久化 |
| 日历 | 周 / 月 / 年、上一页 / 下一页、点日期/月下钻 | ✅ |
| 专注 | 预设 / 自定义 / 开始 / 暂停 / 重置 / 队列搜索 / 沉浸 | ✅ |
| 专注 | 计时结束写专注记录 | ✅ 1 分钟实测:focus_sessions +1,统计 +1 分钟 |
| 统计 | 本周 / 本月 / 本年、趋势桶、结构、洞察 | ✅ |
| 通知 | 已完成 / 等待中 / 已过期 | ✅ |
| 新闻 | 创建订阅(多时间)、定时任务生成、编辑、暂停/恢复、删除 | ✅ 08:30 + 20:00 生成两个 cron 任务;编辑后旧任务清理 |
| 新闻 | Agent 检索 → 工具写回 → 列表展示 | ✅ 23:29 首次运行写入 6 条;23:31 第二次运行新增 6 条、去重保留旧 6 条 |
| 新闻 | 立即检索 / 轮询刷新 / 主题筛选 | ✅ |
| 新闻 | 自定义 cron、每周、工作日 | ✅ 每周五 18:20 → 20 18 * * 5;自定义 → 15 7 * * * |
| 新闻 | 每次条数设置 | ✅ 改为 10 后两个任务提示词同步为「最多 10 条」,改回 6 |
| 新闻 | 预置主题 | ✅ 8 个主题可一键填入标题/关键词 |
| 新闻 | AI 总结 + 瀑布流 | ✅ 18 条中 6 条含 186–236 字 AI 总结;3 列瀑布流,高度随内容变化 |
| 侧栏 | 与「定时任务」同款入口 | ✅ 同一 newSession 按钮克隆、38px 高、16px 图标、紧跟定时任务 |
| 笔记 | 新建 / 编辑 / 自动保存 / 刷新后保留 | ✅ 标题、正文均入库 |
| 笔记 | 编辑 / 预览 / Markdown 渲染 | ✅ 标题、列表、引用、代码块、链接、图片 |
| 笔记 | 搜索 / 标签 / 收藏置顶 / 字数 / 删除 | ✅ |
| 笔记 | 转为任务 | ✅ 生成当天任务(测试后已清理) |
| 笔记 | SQLite 与 JSON 降级 | ✅ 两套都跑通 CRUD 与欢迎笔记播种 |
| 笔记 | AI 直接 / 按要求完善 | ✅ 7 秒调用 workbench_note_update,补异常流程/验收并写回原笔记 |
| 笔记本 | 新建 / 重命名 / 筛选 / 移动笔记 / 删除迁移 | ✅ 删除后笔记自动移动 |
| 导出 | 另存 Markdown 到自定义目录 | ✅ 自定义目录生成 .md,标题/笔记本/标签正确 |
| 导出 | PDF 直出、中文、标题不重复、重名 (2) |
✅ 1 页 A4,193 KB,Chrome 无头 |
| 导出 | 默认目录 / 恢复默认 | ✅ 默认 /Users/ysmac |
| 导出 | 非法目录 / 不可写提示 | ✅ 服务端校验并返回错误 |
| 导出 | 成功页「打开文件夹」 | ✅ Finder 定位;非保存目录路径拒绝 |
| Bug | 多项目关联工作区 / 卡片看板 / 统计 | ✅ 从 DSH workspaces 选择深色/Desktop 工作区 |
| Bug | 单选 / 多选 / 设置计划 / 按计划提交 | ✅ 多选栏与计划日期写入;按计划逻辑 |
| Bug | 新建工作区会话并自动回写 | ✅ 单条冒烟 Bug 由 Agent 调 workbench_bug_update 置 resolved,写回验证记录 |
| Bug | 多选批量同一会话修复 | ✅ 勾选 2 条 → 新建会话 → 同一会话内两次工具调用,均 resolved |
| 测试 | AI 用例生成/执行/Bug/回归/报告 | ✅ 14 用例;3 条首轮 1/3;回归 2/2 通过;Bug verify;报告保存 |
| 产品 | 产品关联工作区 + 自动笔记本 | ✅ 「时序工作台」→ 产品笔记本,笔记文件落到工作区 |
| 产品 | 导图增删改 + workspace JSON | ✅ 6 节点;mindmap.json 已生成 |
| 产品 | AI 按功能生成多条设计笔记 | ✅ 5 条笔记,全部写入工作区 .md |
| 产品 | 多风格 Demo / 整体与单功能 | ✅ clean/glass 整体 Demo;按功能生成 3 个 Demo;iframe 预览正常 |
| 产品 | 笔记本关联工作区 | ✅ 产品笔记本/笔记文件;通用笔记本 UI 可设置路径 |
| 测试 | 多项目/工作区/Bug 项目 | ✅ 时序工作台测试,自动建 Bug 项目 |
| 测试 | AI 从需求生成用例 | ✅ 22 秒生成 11 条,工具逐条写入 |
| 测试 | 执行 / 失败录 Bug / 回归 | ✅ 3 条运行;失败录 Bug;回归 2/2 通过,Bug 置 verify |
| 测试 | 3D 动画报告 / 保存 | ✅ 报告渲染;HTML 保存到 reports/ |
| 测试 | Docker 部署 | ✅ 宿主 runner 执行并回传日志;本机 Docker 未启动时明确报错 |
| 统一域 | 模块/端模型 | ✅ 表/API/工具/产品模块页;API 实测 4 节点;旧数据迁移 all |
| 协同 | 15 个 AI 入口 | ✅ 笔记×3 / Bug×4 / 产品×5 / 测试×3(含跨项目批量、执行、调研)全部实测创建会话并发出提示词 |
| 导图 | 四种布局 + 右键菜单 | ✅ jsdom 实测布局切换/折叠/菜单动作,截图核对右向/双翼/环形 |
| 协同 | 新建 / 追加通道 | ✅ 改为 sessions.create + prompt('queue');jsdom 桩测:按 workspaceId 新建、发送、切会话、Bug 回写、追加、失败兜底全部通过;真实 UI 未点测(不往用户会话发测试消息) |
| 动画 | 执行实时 3D | ✅ CSS 3D 用例塔/扫描/环,构建通过;未视觉截图 |
| Bug | 状态切换 / 删除 / 项目级联 | ✅ |
| 数据 | 导出 / 导入 / 刷新 / 冲突重载 / 健康信息 | ✅ 409 实测:自动载入服务端状态 |
| 主题 | MOSS 550W 自动同步 | ✅ #0b0605 底、#ff3b2f 主色 |
| 主题 | opencode-palette token 等效验证 | ✅ Tokyo Night token 注入后即时变色 |
| 主题 | 跟随 / 浅色 / 深色 + 持久化 | ✅ 刷新后保持 |
| 异常 | 空数据(各视图) | ✅ 不崩溃,空态正常 |
| 异常 | API 500 → 错误页 → 重试成功 | ✅ |
| 全局 | ⌘K、Esc、面板收起/展开 |
✅ |
产物自检:scripts/verify-bundle.mjs 48/48 通过。
当前验收库:GET /workbench-api/health 返回 engine: sqlite、sqlite: 3.53.4;记事本有 1 篇欢迎笔记(收藏);Bug 管理有 2 个项目(工作台 + 测试:时序工作台测试)和 6 条 Bug(5 条示例 + 1 条测试录入);产品设计有 1 个示例产品「时序工作台」、4 个模块/业务节点、5 条设计笔记、6 个 Demo;测试有 1 个示例项目「时序工作台测试」、14 条用例(3 手工 + 11 AI)、2 次运行、1 个测试 Bug;任务/新闻以本机实际数据为准。
十、已知边界
- 附件只存元数据:文件名 / 类型 / 大小;不保存文件内容,也没有缩略图。图片粘贴与文件选择走同一套元数据入口。
- 不支持拖拽排序、列间拖动、重复任务、提醒、多人同步、跨设备。
- 专注计时依赖前端时间戳;关闭 DSH 会停止未完成的计时,不写未完成记录。
- 日历年视图是 12 个月缩略图,不是逐日大图。
- 接口未额外加鉴权,依赖本机回环访问;多人 / 公网暴露前需要补鉴权。
- 冲突处理是“服务端优先”,本地未保存修改会被丢弃(会提示);不做字段级合并。
- 首次启动播种 10 条示例任务;删除后不会再次播种(
meta.seeded已置位)。 - 新闻检索依赖 @goodandready/dsh-cron 与 DSH Agent 的网页搜索能力;cron 不可用时订阅仍可展示,但不能创建/运行任务。
- 新闻是模型检索与摘要结果,不保证覆盖全部来源;URL 已校验 http/https 并去重,但内容仍需自行核实。
- 每次检索会消耗模型额度(实测一次约 0.02–0.04 美元、40–90 秒;条数越多 / 总结越长越贵);示例订阅默认先保持暂停,确认后再恢复。
- 瀑布流使用 CSS columns,卡片按列自上而下排布(不是严格的横向优先 masonry);同屏高度差来自 AI 总结长度与来源。
- 旧新闻若没有
aiSummary,卡片回退显示一句话摘要(标记「摘要」);只有新检索会补 AI 总结。 - 「工作台」入口按定时任务样式克隆到侧栏,不再作为面板列表条目出现;如果你的「工作台门户」需要把它列为卡片,需要另加隐藏注册。
- 记事本 v1 不包含 Git 同步、
@引用、对话一键记入、图片上传;Markdown 预览是轻量自研渲染器(覆盖常用语法,不追求 GFM 全量)。 - 设置里的 JSON 导出目前仍只导任务快照;笔记/新闻/笔记本在同一个 SQLite 文件里,完整备份请复制
~/.dsh/dsh-workbench.sqlite。 - PDF 依赖本机 Chrome 无头打印;没有 Chrome 时回退 Electron。PDF 目录必须可写,默认用户目录,导出不会覆盖同名文件(自动加
(2))。 - 「另存 / PDF」直接写入设置里的目录,不弹系统保存对话框;需要每次选路径时请先改目录。
- 「打开文件夹」只允许当前保存目录内的路径;通过 Finder / 资源管理器定位,不在目录内会拒绝。
- AI 会话提交全部走 DSH
sessions服务(新建 / 追加),不再刷新页面,也不再依赖侧栏按钮与输入框 DOM;旧版sessionStorage待发送队列已移除。 - AI 修复会消耗模型额度并可能修改关联工作区文件;提交前有二次确认。v1 不做 worktree 隔离与自动回滚。
- 当前库保留 1 个示例项目「工作台」、1 个测试 Bug 项目(测试录入 1 条 verify)和 5 条示例 Bug;Bug 测试会话已删除,产品设计生成会话保留可查看。
- 产品 Demo 由本地渲染器依据设计笔记生成,不额外消耗模型;风格是可扩展的 CSS token,不是任意 AI 生成视觉。
- 导图/产品笔记/Demo 必须关联工作区;未关联时阻止写入文件,只保留库内数据(Demo 不可生成)。
- 当前保留示例产品「时序工作台」、5 条设计笔记与 6 个 Demo(2 整体 clean/glass + 4 单功能),可整产品删除。
- 笔记 AI 完善会新建 DSH 会话并消耗模型额度;提交前有确认/要求输入。AI 只改该笔记,不改工作区其他文件;保留原意、不编造。
- 测试执行目前是「按用例逐条人工/AI 辅助执行」,不内置 Playwright 等浏览器自动化;执行结果与证据由测试者确认。
- Docker 部署依赖本机 Docker 或系统 SSH 密钥/远端目录;本机 Docker 当前未启动,部署按钮会返回明确错误日志。镜像/Dockerfile 需由测试项目准备。
- 测试报告为单文件 HTML + CSS 3D 动画;2D/3D 是视觉演进,不是 3D 引擎渲染。
- 统一域迁移在宿主下次启动执行;旧数据保留,模块/端默认 all。
- 1.1.0 UI 改造已完成构建,但当前 GUI 认证失败,未做浏览器截图复核;命令面板/统计胶囊/模块覆盖条需在认证窗口点验。
- 新建与追加都依赖 DSH
sessions服务;服务不可用或创建失败时不会退回刷新链路,提示词会被复制到剪贴板,引导手动粘贴。
十一、排障
| 现象 | 处理 |
|---|---|
| 侧栏没有「工作台」 | 重启 DSH;确认 ~/.dsh/profiles/desktop/package.json 的 bundles 含 dsh-workbench |
| 面板空白 / 一直“正在读取工作台” | 打开 http://127.0.0.1:<port>/workbench-api/health 看宿主是否就绪;看 DSH 日志中 [dsh-workbench] |
| 提示“保存失败” | 检查 SQLite 文件权限 / 磁盘空间;看 Network 中接口返回 |
| 提示“数据已在别处更新” | 正常冲突保护:重新载入服务端状态;重新操作即可 |
| 颜色不像当前皮肤 | 主题设为「跟随 DSH」;确认 MOSS / opencode palette 已启用 |
新闻页提示未检测到 /dsh-cron/tasks |
安装 / 启用 @goodandready/dsh-cron,重启 DSH;到「插件」页确认 Cron 已启用 |
| 点了「检索」一直没结果 | 在「定时任务」面板看该任务运行日志;模型可能未调用工具或搜索失败;4 分钟后状态自动回退 |
| 新闻订阅任务重复/残留 | 工作台删除订阅会同时删除对应 cron 任务;若手动在 cron 面板删过,重新保存订阅即可重建 |
| 忘记数据在哪 | ~/.dsh/dsh-workbench.sqlite,可用任意 SQLite 工具打开 |
十二、设计文档(智能体团队)
十三、变更记录
- 1.10.0(2026-10-23)
- 成员提示词重写:主理人按「建任务板 → 派成员 → 收进展 → 失败重派 → progress(done) → 总结」执行;各角色明确产出方式(workbench_idea_expand)、边界(只读/写文件)与禁止项。
- 成员配置改为从 DSH 读取真实目录:
/agents/options汇总llm.listProviders/listModels、skills.list、tools.schemas与mcp__*服务名;表单用 Provider/Model 下拉与工具/技能/MCP 多选 chips,不再手填。 - 修复灵感右键菜单:弹窗内按钮曾因先命中遮罩判断而取消(“点确定没反应”);采纳/放弃/新增子节点/同级现在生效并有 toast 反馈。
- 团队改为按功能绑定执行人(灵感发散/继续发散/评审、产品设计、Bug 修复、测试设计):灵感页不再显示团队/成员选择,派发时按功能自动选团队,主理人调度、绑定的成员作为候选执行人(可多选)。
- 自检:host E2E 26、bundle 80。
- 1.9.4(2026-10-23)
- 修复门户「智能体团队」UI:团队卡片显示成员 chips(此前列表接口不带成员,卡片只有“7 名成员”),新增团队区标题栏独立操作区,去掉重复的“新建团队”。
- 修复成员面板:弹窗改用自包含
.agent-modal样式 + 宽容器(此前依赖灵感视图的.idea-modal,未进灵感时无样式、420px 宽度挤坏双列表单)。 - 修复成员配置:编辑接口兼容
{member}包装(此前编辑必报“名称不能为空”);记忆范围改中文;模型拆成 Provider + Model;补 tools/skills/mcp/concurrency 字段并落库。 - 修复主理人 chip 重复显示「主理人 · 主理人」。
- 自检:host E2E 21 项、verify-bundle 78 项。
- 1.9.3(2026-10-23)
- 修复「工作台数据读取失败」:灵感/智能体团队模块初始化或工具注册抛错时只降级对应模块,不再中断整个
apply(),主工作台/state保持可用。 - 说明:此前任一可选模块初始化失败会导致 webServer 未注册,表现为整个面板读不到数据。
- 修复「工作台数据读取失败」:灵感/智能体团队模块初始化或工具注册抛错时只降级对应模块,不再中断整个
- 1.9.2(2026-10-23)
- kickoff 团队花名册带上成员级
model / skills / mcp配置,主理人创建成员时按此约束(1.10 的成员级配置先行落地)。 - 自检:
verify-agent30 项。
- kickoff 团队花名册带上成员级
- 1.9.1(2026-10-23)
- 页内会话读取 Lead 会话的
agentTeam投影(sessions.list.projectionsBySession),头部显示成员 N · 任务 done/total;读不到时保持事件解析降级。 - 投影订阅随派发建立、随灵感切换/卸载退订;新增
teamStateOf纯函数与 2 条自检。 verify-bundle77 项。
- 页内会话读取 Lead 会话的
- 1.9.0(2026-10-23)
- 记忆:个人(
<DSH_HOME>/dsh-workbench/memory/personal.md)/ 项目(<工作区>/.dsh-workbench/memory.md)/ 团队(SQLiteagent_memory)三层;派发时按作用域注入,默认手动采纳。 - 知识:工作区文本索引(跳过 node_modules/.git/dist 等,单文件 ≤512KB),分块 600 字,SQLite FTS5 检索(中文退化 LIKE),派发时自动 top-5 注入并带来源路径。
- 接口与工具:
/agents/memoryCRUD、/agents/knowledge/index|status|search、workbench_memory_search/write、workbench_knowledge_search。 - 门户团队区新增「记忆 / 知识」入口:记忆列表与新增、索引/状态/检索测试。
- 自检:
verify-agent-memory.mjs14 项、host E2E 18 项、verify-bundle76 项。
- 记忆:个人(
- 1.8.0(2026-10-23)
- 灵感「页内会话」:右侧抽屉(320–560,可拖宽),生成时由主理人按 kickoff 建任务板与成员,实时渲染
session/event(用户/主理人/成员/工具/系统行),支持停止、重试、在完整会话打开。 - 灵感工具栏新增团队选择(写入
ideas.agent_team_id);未选团队时退回原来的单会话派发。 - 派发状态机:
dispatching → running → done/partial/failed/timeout/cancelled;15 分钟预算、同灵感并发互斥、失败/超时保留部分结果。 - 自检:
verify-agent-ui.mjs9 项、verify-agent29 项、verify-agent-host12 项、verify-bundle74 项。 - 说明:成员/任务投影视图与记忆/知识在 1.9 继续;真实窗口内的流式与建队需人工验证(R0 结论)。
- 灵感「页内会话」:右侧抽屉(320–560,可拖宽),生成时由主理人按 kickoff 建任务板与成员,实时渲染
- 1.7.1(2026-10-23)
- 新增「智能体团队」:门户功能区下方展示团队与成员,默认「产品研发」7 人(主理人/产品/架构/前端/后端/测试/评审),支持新建团队、新建/编辑智能体、按角色设置文件权限、加入/移出团队。
- 宿主新增
agent_*六张表与/agents系列接口、workbench_team_list工具;派发记录与成员快照独立存储,不进整份任务快照。 - 灵感新增
agent_team_id(团队选择字段,供页内会话派发),旧库自动补列。 - 自检:
verify-agent.mjs29 项、verify-agent-host.mjs12 项、verify-bundle72 项。 - 说明:页内会话(右侧抽屉 + 主理人调度)在 1.8.0 交付,本版先落数据与配置面。
- 1.7.0(2026-10-23)
- 灵感支持自定义发散角度:每个灵感最多 6 个自定义角度(≤12 字),参与生成提示词与节点
angle;颜色按 id 哈希分配。旧库自动补ideas.custom_angles列。 - 思维导图节点可改/可增/可删:所有编辑改为数据模型驱动(不再依赖 mind-elixir 编辑态),新增应用内输入弹窗,修掉 Electron 下
window.prompt不可用导致"点了没反应"的问题。 - 新增画布右键菜单:修改文案 / 新增子节点 / 新增同级 / 发散思维 / 采纳 / 放弃 / 删除该节点;双击节点也可改名。
- 版本对比重做:弹窗内可选 A/B 版本、可交换、显示节点与边级差异(改文案显示旧→新),并支持回滚到 A;入口在版本列表标题旁。
- 自检:
verify-idea42 项、verify-bundle69 项。
- 灵感支持自定义发散角度:每个灵感最多 6 个自定义角度(≤12 字),参与生成提示词与节点
- 1.6.3(2026-10-23)
- 移除底部悬浮导航栏(dock):导航统一走左侧栏 + 门户 + ⌘K 命令面板;设置入口移到侧栏底部的齿轮,不再依赖 dock。
- 顺带修掉顶栏面包屑在灵感视图显示
undefined(MODULE_OF/NAME_OF漏了idea)。 - 内容区底部留白从 80px 收到 48px(原先是为 dock 预留的)。
- 1.6.2(2026-10-23)
- 灵感「添加文字」入口补齐:列表标题旁
+、空画布改成「+ 新建灵感」(原来空态显示「生成」但没灵感时点了没反应)、详情「输入」区新增快速输入框(Ctrl/⌘+Enter 直接加入输入)。 - 新建灵感拆成「仅保存」与「保存并生成」:可以先只写文字/截图/链接,稍后再点「✦ 生成」发散。
- 工具栏新增「+ 节点」:未选中节点时挂到根,选中时作为子节点,用于手工补文字节点。
- 灵感「添加文字」入口补齐:列表标题旁
- 1.6.1(2026-10-23)
- 门户项目自动同步到灵感:打开灵感时把门户里的产品 / Bug 项目 / 测试项目 / 任务工作区路径去重后写进
idea_projects,项目下拉直接可选;项目管理弹窗增加「⟳ 从门户同步项目」。 - 灵感项目按工作区路径 upsert:同名/同路径不会重复建,改名会同步更新;修掉新建项目返回 id 为空的问题。
- 门户项目自动同步到灵感:打开灵感时把门户里的产品 / Bug 项目 / 测试项目 / 任务工作区路径去重后写进
- 1.6.0(2026-10-23)
- 新增「灵感」模块:多模态输入(文字 / 截图 / URL)、AI 六方向发散、思维导图(mind-elixir)与力导图(ECharts force)双视图、节点级继续发散、版本对比/回滚、PNG/SVG/JSON/Markdown 导出。
- 新增 5 张表(idea_projects / ideas / idea_inputs / idea_versions / idea_runs)、24 条
/ideas接口与 2 个 Agent 工具(workbench_idea_expand/workbench_idea_progress);灵感数据独立端点,不进整份任务快照。 - vendor 引入 mind-elixir 5.15.1(MIT)与 ECharts 6.1.0(Apache-2.0),经
/workbench-api/assets/vendor/*白名单路由懒加载;见THIRD_PARTY_NOTICES.md。 - 移除旧「灵感调研库」:产品页灵感页签、
/products/inspirations路由、workbench_inspiration_publish工具与相关提示词全部删除;历史表自动改名归档为product_inspirations_legacy。 - 自检:新增
scripts/verify-idea.mjs(36 项纯函数断言),verify-bundle扩到 60 项。
- 1.5.0(2026-10-23)
- 侧栏宽度可拖动:右缘新增拖拽把手,拖动实时改宽度、松手写回
settings.sideWidth(随任务快照一并持久化),双击复位;范围 156–420,收起态自动隐藏把手,dock 位置跟随宽度。 - 门户功能区按业务分组:「工作」(任务清单 / 看板 / 日历 / 统计 / 专注 / 记事本 / 新闻)与「研发」(产品设计 / Bug 管理 / 测试)两组,每组整行铺满、组内卡片
auto-fill自适应宽度;分组配置集中在PORTAL_GROUPS一处。
- 侧栏宽度可拖动:右缘新增拖拽把手,拖动实时改宽度、松手写回
- 1.4.0(2026-10-21)
- 产品重构为「项目壳 + 多导图」:新增
product_maps表;每张导图独立 JSON 与工作区文件;删除时至少保留一张。 - 模块 / Demo / 灵感 / 产品笔记增加
map_id(notes同步加列),写库与 AI 工具(workbench_module_publish/workbench_product_demo_publish/workbench_inspiration_publish/workbench_product_note_publish)都接受mapId;同名模块可分属不同导图。 - 迁移:旧
products.mindmap自动迁成「主导图」,products.mindmap继续作为第一张导图的镜像。 - 产品页新增导图清单(新建 / 重命名 / 删除 / 切换)、其他页签的导图范围选择器;AI 提示词带当前导图与
mapId。
- 产品重构为「项目壳 + 多导图」:新增
- 1.3.0(2026-10-21)
- 思维导图:四种布局(右向 / 双翼 / 纵向 / 环形)+ 节点右键菜单(增删改、功能⇄需求、折叠、画布空白处新增);布局写入设置持久化。
- 门户:功能卡放大到 88px 高、按域着色(图标砖 + hover 边框)、无数量卡显示进入箭头;项目卡增加「产品 / Bug 项目 / 测试项目」域标签。
- 修复产品侧栏点击不切换产品(原来复用了「勾选功能」的 act,会去勾选一个不存在的节点)。
- AI 审计:15 个入口全部实测可提交(另「按计划提交」复用同一通道);补上「未选产品 / 测试项目 / 笔记 / 无 Bug」时的拦截提示,避免落到 Bug 提示词;Demo 提交失败时把进度卡置为 failed,不再永远「生成中」。
- 1.2.2(2026-10-21)
- 修复 1.2.1 的发送通道:
retainAgentScope不调用attachOpening,它的ready永远不会 resolve,等它会稳定超时(表现就是「AI 修复提交失败」)。 - 改用公开的
sessions.retain(id, { source })(会启动 session opening,ready可用);老版本缺retain时退回只借binding、不等 ready;会话已绑定(正开着)则直接发送。 - 按
workspaceId建会话失败自动退回cwd重建,应对工作区列表过期。 - 失败原因写入设置(「最近 AI 提交」一行),便于自助排查。
- 修复 1.2.1 的发送通道:
- 1.2.1(2026-10-21)
- 修复 AI 会话链路:新建会话改用 DSH
sessions.create({ workspaceId | cwd })+session.prompt(...,'queue'),不再location.reload(),不再模拟点击侧栏「新建会话」、也不再向 Lexical 派发合成beforeinput(这条链路此前一次都没成功送达,还会把 DSH 打崩)。 - 删除
sessionStorage待发送队列与 4 段consumePending*;失败时统一把提示词放进剪贴板并在 toast 里说明。 - Bug 提交后立即回写
aiThreadId与doing(追加已有会话同样回写);跨项目批量提交按项目分组各建一个会话,不再只提交第一组。 - 「AI 协同」未选 Bug 时,默认提示词与实际提交的 Bug 清单同源;会话下拉标注所属工作区。
- 修复 AI 会话链路:新建会话改用 DSH
- 1.2.0(2026-10-21)
- 新增「项目门户」:工作台默认落在门户页,选项目 / 产品后进入功能;项目 = DSH 工作区,聚合产品、Bug 项目、测试项目与计数。
- 任务新增
project_path(旧库自动迁移,历史任务为「未归属」);看板 / 清单 / 时间轴 / 四象限 / 日历 / 专注 / 统计全部支持项目过滤,统计的空间/搜索口径一并修正。 - 新建任务、详情字段、快速记录可选项目;所选项目写入
settings.project,重开面板恢复。 - 门户内直接新建 / 编辑 / 删除项目 / 产品,卡片计数随数据实时刷新。
- 「AI 协同 / 提交 AI 修复 / 笔记完善 / 产品与测试生成」改走 DSH
sessions服务:新建会话直接发送并切过去,不再location.reload();Bug 提交后立即回写aiThreadId与doing;会话下拉标注所属工作区;跨项目 Bug 批量提交按项目分组各建一个会话。
- 1.1.0(2026-10-19)
- UI 参考 Plane/Huly/Qase:⌘K 命令面板、视图统计胶囊、模块端覆盖条、卡片 hover/过渡、信息密度优化。
- 修工作台打开后点侧栏会话空白(1.0.1 继承)。
- 统一模块笔记回写、Bug/测试模块选择、Demo 去重。
- 1.0.1(2026-10-19)
- 修复:工作台面板打开时点击侧栏会话导致主区域空白。会话点击捕获阶段先
selectPanel(null),卸载 try/catch,并在 80ms 后兜底清理。
- 修复:工作台面板打开时点击侧栏会话导致主区域空白。会话点击捕获阶段先
- 1.0.0(2026-10-19)
- 统一研发域:产品 → 模块 → 业务 → 功能/需求;PC/移动/平板/全部。
- 产品模块页 + AI 模块/详细设计生成;Bug/测试带端/模块。
- AI 协同支持新建会话或追加已有会话。
- 测试执行实时 3D 用例塔/扫描/通过率环;报告保持 3D。
- 0.9.0(2026-10-19)
- 新增测试:多项目/工作区、测试用例(AI 按需求/产品笔记/Demo 生成)、执行、失败录 Bug、回归、3D 动画报告。
- 新增 Docker 部署(本机/SSH)与部署日志;测试报告可保存到工作区。
- 测试 Bug 项目自动创建;回归通过回写 Bug 为 verify。
- 0.8.0(2026-10-19)
- 笔记新增「AI 完善 / 按要求完善」;新会话调用
workbench_note_update写回原笔记并同步工作区;产品设计笔记通用。 - 新增产品设计:产品项目 / 工作区 / 自动产品笔记本;思维导图编辑器,导图保存到工作区 JSON。
- AI 按功能生成多条产品设计笔记,走现有 notes API 与工作区 Markdown 镜像。
- 本地多风格产品 Demo(clean/editorial/neo/glass),支持按功能与整个产品生成,iframe 预览。
- 笔记本支持关联工作区,笔记默认保存到工作区目录。
- 笔记新增「AI 完善 / 按要求完善」;新会话调用
- 0.7.0(2026-10-19)
- 新增 Bug 管理:Teambition 风格四列卡片看板、统计、多项目关联 DSH 工作区、单选/多选/计划提交。
- 批量提交到项目关联工作区的新 DSH 会话;优化修复提示词;新增
workbench_bug_update工具,Agent 修复验证后自动回写状态与验证记录。 - 新增
bug_projects/bugs表与/workbench-api/bugs接口;看板 6 秒轮询。
- 0.6.1(2026-10-19)
- 导出成功页新增「打开文件夹」,在 Finder / 资源管理器中定位文件;限制当前保存目录。
- 0.6.0(2026-10-19)
- 新增笔记本:多笔记本分类、新建/重命名/删除、笔记移动、按笔记本筛选。
- 新增「另存 Markdown」与「导出 PDF」;PDF 使用 Chrome 无头打印,中文与 Markdown 样式保留。
- 新增「笔记保存目录」设置,默认本机用户目录,自动创建与可写校验。
notes增加notebook_id,旧库自动迁移到「随手记」。
- 0.5.0(2026-10-19)
- 新增记事本:两栏布局、Markdown 编辑/预览、自动保存、标签、收藏、搜索、字数、删除、转为任务。
- 新增
notes表与/workbench-api/notes接口,SQLite / JSON 双实现,首次播种欢迎笔记。 - 调研 GitHub 上的 dsh-md-notes / Memos / Joplin,按工作台现有 UI 与 SQLite 架构做轻量落地。
- 0.4.0(2026-10-18)
- 侧栏「工作台」改为克隆「新建会话」按钮,与「定时任务」同款,紧跟其后。
- 新闻订阅支持每次检索条数(3–20),同步写入任务提示词。
- 新增 8 个预置新闻主题,一键填入。
- Agent 新增
aiSummary(100–180 字)并落库;新闻卡片改为小红书式瀑布流,高度随内容变化。 - 检索状态改为乐观更新(点击即显示「检索中」),完成/失败自动回退。
- 修复旧库迁移:自动补
count与ai_summary列;新闻入库时间精确到秒。
- 0.3.0(2026-10-18)
- 新增「新闻」模块:多主题、多时间的定时检索,接入 dsh-cron 与 DSH Agent。
- 宿主注册
workbench_news_publish工具;新增news_topics/news_items表与/workbench-api/news接口。 - 新闻视图:订阅卡、状态、下次运行、新闻流、主题筛选、立即检索、暂停/恢复、编辑、删除。
- 完成真实端到端验证:Agent 检索 → 工具写回 → UI 展示;两次运行 12 条,URL 去重生效。
- 新增请求体 URL 校验、每订阅 200 条保留上限、只读权限的 cron 任务。
- 0.2.0(2026-10-18)
- 主题改为
--dsw-alias-*token 驱动:适配 dsh-startup-moss 与 dsh-opencode-palette;新增主题三选一菜单。 - 补齐筛选、排序、紧凑模式、通知、统计周期、自定义专注、队列搜索、沉浸模式。
- 任务字段可编辑;子待办计划时间与独立备注可编辑;空间支持改名 / 改色 / 删除(有任务时阻止删除)。
- 修复复制按钮缺少任务 id;冲突后立即重绘并恢复“已自动保存”;删除/改名等操作补齐持久化。
- 错误态与重试、空态、
⌘K、键盘操作、dock 定位修复。
- 主题改为
- 0.1.0(2026-10-18)
- 首个可用版本:七屏全量、SQLite、独立面板、自检脚本。























No comments yet. Be the first to write one.