READMESource: main@4d951e35
dsh-worklog
给 DSH agent 一个工作日志工具:把「刚做了什么 / 为什么这么定 / 卡在哪」写进按天分文件的 JSON,下一次会话可以捡起来继续。
它提供什么
| 类型 | 名字 | 说明 |
|---|---|---|
| Cordis 服务 | ctx.worklog |
add / list / days / read / write |
| Agent 工具 | worklog_add |
追加一条日志,带可选 tag |
| Agent 工具 | worklog_list |
读当天 / 指定日期 / 按 tag 过滤 / 列出有记录的日期 |
| Cordis 事件 | worklog/added |
每次写入后广播 { day, entry } |
数据落盘:$DSH_HOME/worklog/YYYY-MM-DD.json,默认最多保留 200 条/天(maxEntries)。
配置
- id: dsh-worklog
name: dsh-worklog
config:
dir: "" # 留空 → $DSH_HOME/worklog
maxEntries: 200
安装
从 GitHub 直装(推荐,装完自动进 bundle 层栈):
dsh plugin --profile web add github:qibo30/dsh-worklog
本地开发用 link: 前缀,改完代码重启即可,不需要重新 install:
dsh plugin --profile web add link:/path/to/dsh-worklog
desktopprofile 由 Electron 应用独占管理,dsh plugin会拒绝写入。 装进桌面版请在$DSH_HOME/profiles/desktop/cordis.patch.yml里加一条- insert: [{ id: dsh-worklog, name: dsh-worklog }]。
本地冒烟测试
node test/smoke.mjs
不启动 DSH,用一个假 tools 服务把插件装起来,验证:config 解析、工具注册、执行、render、磁盘写入、必填参数校验、卸载回收。
单独克隆仓库时 @deepseek-ai/* 解析不到,把 DSH 自带的 node_modules 链接进来即可:
mkdir -p node_modules/@deepseek-ai
ln -s "<DSH>/node_modules/@deepseek-ai"/* node_modules/@deepseek-ai/
结构
dsh-worklog/
├── package.json # dsh.bundle.patch 指向 cordis.patch.yml
├── cordis.patch.yml # 挂载声明
├── icon.png # 插件管理页图标
├── lib/
│ └── index.js # 服务 + 工具 + apply
└── test/
└── smoke.mjs # 本地冒烟测试
写 DSH 插件要注意的坑
inject是严格模式:ctx.inject([...], cb)里读没有列进列表的服务会直接抛cannot get property "xxx" without inject。哪怕这个服务是你自己在同一个apply里刚注册的,也得写进去。cordis.patch.yml里id:那一行不能写行尾注释,商城预检的正则会抓不到值。package.json必须有dsh.bundle.patch,否则安装后不会自动进层栈。- 前端插件(要出 UI)还得加
dsh.client字段和exports["./client"]指向lib/client.js;纯宿主插件不需要。
No comments yet. Be the first to write one.