omdsh-dev/dsh-daily-progress
项目介绍Project Overview
dsh-daily-progress 是 DSH Web 每日进度成就插件,采用 host/client 双半架构。host 半提供 storage-domain 持久化、streak 与周完成率指标及 loopback 路由;client 半提供对话输入温度计、计划面板 Modal 和 21:00 提醒。适合需要每日计划追踪与连胜统计的个人用户。注意「今天」由 client 携带 localDate 决定,存在防回溯/防篡改边界,外部插件无法扩展核心 RPC。
dsh-daily-progress is a DSH Web plugin for daily progress and achievement tracking, built on a dual half-architecture. The host half provides storage-domain persistence, streak and weekly completion metrics, and loopback-only HTTP routes. The client half offers a conversation input thermometer, a two-column planning modal, and 21:00 browser reminders. Use it for personal daily planning with streak stats. Note: "today" is determined by client-supplied localDate; anti-rollback/tampering is out of scope, and external plugins cannot extend the core RPC.
请帮我了解并安装插件:【dsh-daily-progress】【https://github.com/omdsh-dev/dsh-daily-progress】
把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.
或使用命令行安装(适合开发者)Or use CLI install (for developers)
命令行安装CLI Install
dsh plugin --profile web add github:omdsh-dev/dsh-daily-progress
把 omdsh-dev/dsh-daily-progress 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-daily-progress
Author / Maintainer: @Zacklinkk
每日进度成就系统(DSH Web 插件,双半架构):
- host 半(
src/→lib/index.js):daily_progress存储域(每日计划持久化于宿主 storage-domain 的 json 后端)+ 完成率 / streak / 周率指标 + 自有 HTTP 路由(/daily-progress/state、/daily-progress/mutate,loopback-only)。 - client 半(P1 起,
src/client/→lib/client.js):conversation.input.dock温度计 widget + 两栏计划面板(Modal)+ 21:00 浏览器提醒。
已确认口径
- 存储:storage-domain + json 后端(记录键
<scope>:<date>,V1 scope=default,按用户隔离预留)。 - streak:达成日 = 当日有 ≥1 条计划且完成率 100%;今天未达成不中断历史 streak(只暂停累计)。
- 周完成率:本周(周一为起点)截至今天的条目 done/total;未来日不参与。
- 日期一律是用户的本地日历日(YYYY-MM-DD 字符串,由 client 随请求携带);历史日锁定只读;跨日惰性 rollover(昨天未完成项自动 carry,
clearToday后不重携)。
开发
npm install
npm run typecheck # tsc --noEmit
npm test # node:test 单测(metrics/calendar)
npm run build # tsc 产出 lib/
npm run probe # 活体验证:真实 @deepseek-ai 运行时包 + json 后端全链路
probe 依赖本机 DSH 运行时包解析:把 node_modules/@deepseek-ai/ 下三个包软链到
${DSH_PROFILE:-~/.dsh/profiles}/node_modules/@deepseek-ai/{dsh-storage,dsh-storage-json,dsh-storage-domain}。
生产环境由宿主组合在运行时解析这些包,无需随包发布。
安装(DSH profile)
- 在 profile 的
package.jsondependencies 加入本包(或dsh plugin install渠道); - profile 的
cordis.patch.yml加一行{ id: daily-progress, name: dsh-daily-progress }(本包dsh.bundle.patch指向的cordis.patch.yml已含此 insert); - 重启 DSH Web;client 半由
dsh.clientmanifest 自动装配。
路由契约(host)
GET /daily-progress/state?localDate=YYYY-MM-DD&tz=IANA→SnapshotPOST /daily-progress/mutate{localDate, tz, op, payload}→{ok:true, snapshot} | {ok:false, code, message}- ops:
toggleItem{itemId}(仅当天)、addItem{target:'today'|'tomorrow', text}、removeItem、editItemText、setTomorrow{items}、clearToday
- ops:
- 所有路由仅接受 loopback Host;写操作落盘后广播
domain/changed(进程内)。
已知边界
- 「今天」以 client 上报的
localDate为准(host 不知道用户时区);单机个人工具语义下可接受,防回溯/防篡改不在威胁模型内。 - 数据通道为插件自有同源路由 + 轮询/乐观更新(外部插件无法扩展核心
/apiRPC 表或转发事件 allowlist)。
nexu-io/open-design
ruvnet/ruflo
amruthpillai/reactive-resume
esengine/DeepSeek-Reasonix
volcengine/OpenViking
Molunerfinn/PicGo
titanwings/distilly
titanwings/colleague-skill