dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
dsh 日记插件:纸感信纸风 web 页写日记,原文先落盘、AI 评注后生成 · Diary plugin for dsh (DeepSeek Harness)
dsh(DeepSeek Harness)的日记插件:在一个纸感信纸风的 web 页里写日记,原文先落盘、AI 评注后生成——总结失败永远不会丢你的字。
English · 使用指南(装好后页面右上角 ?,或 /diary/guide)
| 日常写作(亮色) | 暗色 |
|---|---|
| 首次使用·设置卡 | 内置使用指南(中/EN) |
|---|---|
| 谁 | 负责 |
|---|---|
| 插件代码(确定性) | 30 小时制日期判断(读系统时间)、按模板建档、条目追加、评注区排版、时间戳收尾、再提交时旧评注摘除 |
LLM(经 ctx.llm 直调) | 只产四样东西:【今日关键词】【一句话总结】【当日 emoji】【评注】——provider/model/temperature 默认取插件配置;页面「AI 评注模型」选择器可逐次覆盖 provider/model(仅采纳模型目录里存在的组合,其余静默回退默认)。另在评注落盘后产出一份新的用户画像全文(同一套路由,见「长期记忆」) |
git clone https://github.com/zhm20001/dsh-diary.git
cd dsh-diary
pnpm install # lib/ 产物随仓库提交,无需 build
dsh plugin --profile web add <本目录路径>
# 重启 dsh web,浏览器打开 http://127.0.0.1:<port>/diary
首次打开页面是设置卡:填一个日记目录(如 ~/Documents/日记,~ 会展开),保存即写入插件根 config.json,立即生效、无需重启。然后写第一篇 → 点「保存并生成总结」。
日常流程:打开页面 → 写 → 提交。原文即刻落盘;总结失败不丢原文,点「仅重试总结」补生成。草稿自动存浏览器 localStorage(按日期分键)。dsh web 侧栏底部也有「日记」入口(src/client.js,文案中英自适应)。每次提交还会静默更新一份用户画像(见「长期记忆」),失败只在页面给一条不影响保存的提示。
三层优先级(高 → 低):
| 层 | 说明 |
|---|---|
| cordis patch / profile config | 装载时注入,最高优先;此处设了 diaryDir 时页面设置卡会提示「被覆盖」 |
插件根 config.json | 页面设置卡与 prompt 卡维护的就是它;手工编辑也行,逐请求现读、改完即生效。字段见 config.example.json,相对路径按插件根解析、支持 ~/(summaryPrompt 为原文存取的文本键,不做路径处理) |
| 内置默认 | 模板兜底 assets/diary-template.md;无目录则进入设置卡模式;评注 prompt 兜底为内置默认 |
自定义评注 prompt:「AI 评注模型」选择器旁的 📝 打开 prompt 卡——阅读驱动 AI 评注的系统提示词,可编辑、保存、「恢复默认」;存 config.json 的 summaryPrompt,即时生效(优先级同上表)。保存时校验输出契约:【今日关键词】【一句话总结】【评注】三个标记必须保留(【当日 emoji】行可删,删后当日格子降级绿块);自定义只影响之后的总结,已写入日记的评注块不变。cordis patch 塞入的坏 prompt 会在总结时响亮报错(不静默回退)。
其余插件项(cordis patch 层):provider / model(总结模型,默认 deepseek-official / deepseek-chat)、temperature(0.6)、timeoutMs(120000)、nightCutoff(6)、pagePath(/diary;改动需同步 src/client.js 里的 href)、summaryPrompt(评注 prompt 覆盖)。
每次保存日记时,系统在总结之外并行维护一份用户画像——纯文本 markdown,存在日记目录的 .diary-meta/profile.md,与 emoji 元表相邻但概念独立,可以直接翻开看。
.diary-meta/profile.md。整套功能没有开关、没有新配置键:每日 LLM 用量约翻倍(多一次画像更新调用 + 总结多带一份画像),单用户场景绝对值可忽略。日记原文永远不被「遗忘」改动——画像是可重算的派生状态。
YYYY-MM-DD.md,当日 emoji 在同目录隐藏文件夹 .diary-meta/YYYY.json,用户画像在同文件夹 profile.md。备份 = 整个目录复制(迁移别漏 .diary-meta/,否则 emoji 静默降级成绿块、画像回到冷启动)。-后缀 文件),不落缓存:手建/手删/改名即时反映到热力图;meta 里的孤儿 emoji 会被无害忽略。nightCutoff(默认 6)之间写的算前一天,收尾时间显示 25:xx–29:xx——深夜补记不会劈成两个文件。<diaryDir>/YYYY-MM-DD.md,front matter 来自模板(支持空 date: 字段或 {{date}} 占位);同日 2026-04-28-note.md 这类后缀文件也计入 4-28,同日多文件不重复计数。stage:'summary' + hint(HTTP 502);保存失败返回 stage:'save'。pnpm install
pnpm typecheck
pnpm test # vitest:core 纯函数 + 路径解析 + 原子写
pnpm build # 重新生成 lib/(CI 会校验产物与 src 无漂移)
# 冒烟:dev overlay 把插件指向 /tmp/diary-sandbox,不污染真实日记
dsh web --patch dev.patch.yml # 浏览器访问 /diary-dev
结构:src/core.ts 纯函数(无 IO)→ src/paths.ts 路径变量(config.json 读写)→ src/service.ts 路由与编排(webServer/httpServer 双名兼容)→ src/summary.ts 总结 LLM 管线 → src/profile.ts 长期记忆(画像读写 / 注入组装 / 更新回路 / 全量重算)→ src/page.ts 页面 + src/guide.ts 指南。lib/ 为编译产物、随仓库提交(克隆分发免构建);src/ 改动必须带 lib/ 一起提交。
宿主要求:dsh web 宿主(内部 harness 版暴露 ctx.webServer,npm @deepseek-ai/dsh-host-webserver rc 线暴露 ctx.httpServer——两者均兼容)。