周报生成器:聚合最近 N 天的 git 提交、会话活动与每日记忆,自动生成 Markdown 周报,全程只读。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:lucky8197/dsh-weekly-digest
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
Weekly Digest Generator for DeepSeek Harness. Aggregates the last N days (default 7) of git commits, DSH session activity and daily memory entries into a Markdown weekly report — commits per day, top contributors, recent commit list, per-project session counts, and daily memory highlights. Read-only end to end. Install with:
dsh plugin --profile web add "github:lucky8197/dsh-weekly-digest#main".
每周五下午写周报是最烦的事:翻 git log、数会话、回忆这周干了什么。dsh-weekly-digest
把三份现成数据源自动聚合:
- git 提交(当前仓库):每天提交数、贡献者排行、最近提交明细;
- DSH 会话活动(
~/.dsh/sessions):按项目统计窗口内会话数与体积; - 每日记忆(
~/.dsh/memories/daily):窗口内每天的记忆条目与摘录。
输出一份可直接粘贴的 Markdown 周报。全程只读,不写任何文件。
快速安装
dsh plugin --profile web add "github:lucky8197/dsh-weekly-digest#main"
工具用法
weekly_digest
参数:
cwd?: string 仓库目录(git 提交统计用;默认当前会话工作目录)
days?: number 聚合窗口(天,默认 7)
maxEntries?: number 最近提交/记忆条目最大展示数(默认 10)
输出:canonical JSON 报告(主输出渲染为 Markdown 周报)
周报示例(节选)
# 周报(2026-08-08 ~ 2026-08-15)
## Git 提交(106 个)
- 每天:2026-08-11 ×5、2026-08-12 ×23、2026-08-13 ×49、2026-08-14 ×25、2026-08-15 ×4
- 贡献者:dev(69)、luoliang(37)
最近提交:
- `97e47b73` 2026-08-15 luoliang:test: 测试覆盖审查补测第3批(实现 v1.43 / 技术 v1.39)
## 会话活动(32 个 / 0 B)
- game01:24 个会话
## 每日记忆(26 条)
### 2026-08-15(15 条)
- [09:54] [git master] [game01] 三篇文档结构修订完成并提交(fe9f119)…
canonical JSON
{
"tool": "weekly_digest", "version": 1, "cwd": "/path", "days": 7,
"period": { "from": "2026-08-08", "to": "2026-08-15" },
"git": { "isRepo": true, "totalCommits": 106, "perDay": [...], "authors": [...], "recent": [...] },
"sessions": { "root": "...", "totalSessions": 32, "totalBytes": 0, "projects": [...] },
"memories": { "root": "...", "days": [...], "totalEntries": 26 },
"digest": "# 周报(…)\n…",
"stats": { "commits": 106, "sessions": 32, "memoryEntries": 26 }
}
配置(cordis 配置节)
- insert:
- id: weekly-digest
name: 'dsh-weekly-digest'
config:
days: 7 # 聚合窗口(天)
maxEntries: 10 # 最近提交/记忆条目最大展示数
sessionsRoot: "~/.dsh/sessions" # 会话目录(默认值)
memoriesRoot: "~/.dsh/memories/daily" # 每日记忆目录(默认值)
安全边界(硬性要求)
- 只执行白名单只读 git 命令(
git log --since/rev-parse,见src/git.ts), 拒绝 checkout/push/reset 等一切写操作; - 会话/记忆目录仅 只读 stat/list/readText,单文件 > 256 KB 跳过;
- 报告不含完整会话/记忆内容:只含统计与 ≤160 字符摘录;
- 不写、不删、不执行(有测试断言)。
数据源说明
| 数据源 | 位置 | 说明 |
|---|---|---|
| git 提交 | cwd 所在仓库 |
git log --since="N days ago",白名单只读 |
| 会话活动 | ~/.dsh/sessions |
按工作目录分组,统计窗口内 mtime 的会话文件 |
| 每日记忆 | ~/.dsh/memories/daily |
YYYY-MM-DD.md,按文件名日期过滤窗口,摘录 [HH:MM] 条目 |
工程结构
dsh-weekly-digest/
├── package.json # name=dsh-weekly-digest, main=./lib/index.js, dsh.bundle.patch
├── cordis.patch.yml # - insert: [{ id: weekly-digest, name: 'dsh-weekly-digest' }]
├── scripts/ # setup-dsh-deps / build.sh / build-win.mjs(纯 tsc 构建)
├── src/
│ ├── index.ts # apply(ctx):注册 weekly_digest 工具 + 配置读取
│ ├── audit.ts # 编排:git + 会话 + 记忆三源聚合
│ ├── git.ts # 白名单执行器(只读 log/rev-parse)
│ ├── scan.ts # git 输出解析 / 会话与记忆扫描 / 周报渲染
│ └── types.ts # canonical 类型 + 配置
└── tests/ # node --test(16 用例,真实 git 仓库端到端)
开发 / 测试 / 构建
npm install && npm run setup
npm test # node --test(16 用例)
npm run build:win # Windows 构建;POSIX 用 npm run build
构建产物 lib/ 入库提交(GitHub 源安装免构建)。
License
BSD-3-Clause。见 LICENSE。
链接
同类插件
yjh051108/dsh-routing-suite★ 7003
一个仓库三件套:DSH 插件包的运行时注入器(注入、热重载、卸载、开发侧挂区一键转正、路由自愈,外带设置页插件管理:列出、卸载、拖入文件夹内化)、任务感知的思维模式路由 agent 预设(router-standard / router-spec / router-react)、以及分级两级任务协议(commit_star / lock_stage / revise_do / edit_plan / mark_task / redteam_verdict 六个工具,任务状态落盘)。注入器实现直接在库内,安装的是它自己的行为而不是一份依赖清单。
strukto-ai/mirage#dsh★ 3666
把文件系统与 bash 提供者换成 mirage 虚拟工作区:文件工具与 shell 命令作用于挂载的资源(RAM、S3、Redis、Slack、Gmail、Notion、Postgres)而非宿主磁盘,支持按挂载点设置读/写/执行模式、按命令选择沙箱(进程内 monty、pyodide、quickjs;远程 docker、e2b、daytona),并可在虚拟终端中安装 CLI(git、gh、slack、linear、ntn、gws,或自行注册的程序树)作为命令头词。
hust-open-atom-club/oh-dsh★ 325
社区发行版:TUI、桌面端与 Web UI 统一体验,分层安装、一步到位。
weijiafu14/pi2dsh★ 206
Pi Host ABI 兼容引擎:装一次之后,npm 上的 Pi 扩展原包经 `dsh plugin add <pi-package>` 直接作为 DSH 原生插件挂载。已在官方 DSH 上端到端验证 pi-mcp-adapter(完整 MCP 管理面:OAuth、resources、prompts、MCP Apps、elicitation、sampling)、@tintinweb/pi-subagents、pi-code、pi-hermes-memory、pi-background-tasks;`pi2dsh inspect` 在安装前报告一个包的兼容情况。
lire1131/dsh-undo-savepoint★ 166
DSH 撤销/回退系统:配置变更自动存档,一键撤销/恢复/回退到任意版本,支持 WebUI 与离线 CLI/GUI 工具(DSH 启动失败也能救)。
Fishquito7/dsh-skill-mcp-panel★ 155
在 DSH Web 设置中管理技能与 MCP 服务器:技能卡片热启停、工作区作用域、分组、批量迁移与拖拽导入,以及 stdio/HTTP MCP 增删改查、连接测试、密钥脱敏,并附带统一 dsh-panel 命令行。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。