Repository navigation
Releases
Releases · SiriusWJ/dsh-lite-memory
v0.4.1 — 声明支持的 DSH 版本
声明宿主兼容性,并让插件市场能展示截图。无可感知的行为变更。
engines.dsh: ">=0.1.5-rc.1"—— 插件市场按 package.json 的engines.dsh(或dsh.engines.dsh)判定宿主兼容性;此前未声明,市场里只会显示「未声明」engines.node修正为">=22.5.0":原>=20不准确,node:sqlite自 22.5 起提供,22.5–23.3 还需--experimental-sqlite(24 起默认可用)- README 新增「兼容性 / 支持的 DSH 版本」:实测版本、Node 要求,以及用到的全部宿主能力清单(便于自行判断其他 DSH 版本)
- 新增
screenshots.json:插件市场详情页会读取它展示截图,日后换图只需推自己的仓库
实测环境
- DSH
0.1.5-rc.1(@deepseek-ai/dsh-tools/dsh-base为0.1.5-rc.2) - Node
24.12
v0.4.0 — 定时任务
定时任务(新功能)
DSH 原生的进程内定时任务:SQLite 落库、cron 表达式驱动、到点由 DSH 拉起会话执行提示词。不读写系统 crontab,没有守护进程。
- 面板(设置 → 记忆 → 定时):工作区与模型都是下拉,选中模型后才出现它真正支持的推理强度,表达式原文 / 超时 / preset / 触发落点收进「高级设置」
- 表达式实时预览未来 5 次;执行记录(状态 / 耗时 / 摘要 / 会话)
- 手动新增、编辑、删除、启停、立即运行
- 任务级模型路由:
provider/model/reasoningEffort(只对「新建会话」生效),留空跟随部署默认 - 触发落点:新建会话(缺省)或投递到指定会话(活着直接投递,否则在原会话上续跑)
- 模型工具:
cron_add/cron_list/cron_run/cron_toggle/cron_remove - 中英双语
触发边界
- 只在
dsh web进程运行期间触发;关闭期间错过的时刻不会补跑(错过即丢) - 同一分钟内最多触发一次;同任务不重入、全局并发上限 2、单次超时缺省 600 秒(超时取消并记为
timeout) - 每次触发是一轮真实的 agent 会话,会消耗 token;建议用模型路由 + preset 控制成本与工具范围
- 无人值守执行:请确认 preset 的审批策略与工具限制,否则任务可能卡在审批上
真机测试中发现并修复的问题
这些是离线单测抓不到、只有在真实 DSH 进程里跑才暴露的:
- 回合完成判定错误:原先用
whenIdle()等一轮结束,但新建 agent 的 driver 起来之前它就是 idle,于是 47–124ms 就"完成",任务记成功却实际没跑(会话日志里只有一行session表头)。改为按事件判定:agent/statusrunning↔idle +session/event turn/end+agent/error - 程序化建会话缺默认模型与 cwd:部署的 persona 模板引用
{{provider}}/{{model}}/{{cwd}},缺任一项这一轮 prompt 装配直接抛错。现在像dsh-headless/dsh-webhook一样补齐agentDefaultModel.currentSelection()与 cwd - 日历提醒的「会话已移除 → 新建会话投递」是同一路径、同一缺陷,一并修复
- 顺带修:日历面板「完成」按钮用了不存在的字典键(中文界面漏出英文 key);两个面板的 React key 警告
验证
| 套件 | 结果 |
|---|---|
| 真机端到端(真 LLM 回合 + 多帧 zstd 会话日志逐帧校验 + 自然分钟 tick + 路由失败路径) | 27 / 27 |
| 隔离 harness(真 SQLite + 假 agents/timer/webServer) | 70 / 70 |
| 面板 SSR(真 React + fixture,含日历默认页回归) | 39 / 39 |
| 老库逐列迁移(旧 schema cron_jobs 含数据 → 自动补列) | 13 / 13 |
| 双语文案完整性 | 无缺失 |
请求头级证据:下拉选中的模型与推理强度确实进了这一轮请求 —— {"provider":"deepseek-official","model":"deepseek-flash","reasoningEffort":"low","maxTokens":256000}。
安装
cd ~/.dsh/profiles/web
pnpm add github:SiriusWJ/dsh-lite-memory然后在 package.json 的 dsh.profile.bundles 数组里追加 "dsh-lite-memory",重启 dsh web 生效。本地开发可用 dsh plugin --profile web add link:/path/to/dsh-lite-memory。
