Skip to content

Releases

v1.1.0 — 品牌化 + CI + 3.9/3.10 修复

Choose a tag to compare

@kbwzy kbwzy released this 24 Oct 17:07

品牌化、CI 与两个真实缺陷修复。

新增

CI — .github/workflows/test.yml,Python 3.9–3.13 五版本矩阵:

  • 58 项测试套件
  • 3.9 语法兼容检查
  • 离线流水线烟测(prepare → validate --strict → render)
  • PNG 降级契约:在裸 venv 里断言退出码 2、Markdown/HTML 存在、PNG 不存在、png_status=missing-dependency

品牌 — README、SKILL.md 与报告页脚统一为「微信个人情报助手」。

合规与使用前提 — 明确非腾讯官方项目;不含解密/注入/Hook/取钥代码;数据只留本机。每条都先核实代码再写入。

README — 居中首屏、五枚徽章、示例图前置并注明可复现、快速开始移到安装之前。

修复

安装路径 — ~/.agents/skills 现在是规范安装位置,再用符号链接派发给各 Agent。新增 AGENTS_HOME 支持,依赖改为逐项跨根目录解析,所以 wechat-cli 在 ~/.claude/skills、wechat-intelligence-hub 在 ~/.codex/skills 也能各自找到。

Python 3.9 / 3.10 崩溃 — datetime.fromisoformat 只从 3.11 起接受尾部 Z(且只认大写)。bounds() 直接调用它,导致 --since 2026-10-23T00:00:00Z 在这两个版本上抛 ValueError。新增 _parse_iso() 归一化 Z/z。

这是 v1.0.0 的实质缺陷:README 声称支持 3.9+,但那两个版本上传 UTC 边界会崩。CI 第一次运行就抓到了。

Markdown 区段标记 — 从 [meta]/:::stats/:::rank 方言换成 HTML 注释 <!-- group-report:* -->,在任何 Markdown 阅读器中不可见。HTML 与 PNG 输出不变。

验证

Python 结果
3.9.25 58/58
3.10.19 58/58
3.11 / 3.12 CI 通过
3.13.9 58/58
3.14 58/58,PNG 生成成功

升级

cd wechat-group-daily-report && git pull
# 符号链接安装无需重装,代码直接生效

如果你之前直接链接到了 ~/.codex/skills,建议改成规范布局:

ln -sfn "$PWD" ~/.agents/skills/wechat-group-daily-report
ln -sfn ~/.agents/skills/wechat-group-daily-report ~/.claude/skills/wechat-group-daily-report
ln -sfn ~/.agents/skills/wechat-group-daily-report ~/.codex/skills/wechat-group-daily-report

v1.0.0 — 单群图文日报

Choose a tag to compare

@kbwzy kbwzy released this 24 Oct 16:10

首个公开版本。把一个微信群、一天或一段明确时间窗的聊天,编辑成可核查的图文日报:PNG 长图 + HTML + Markdown。

它做什么

机器摘要只会按时间罗列。日报要回答的是另外几个问题:今天真正值得读的主线是什么?谁提了问题、谁给了反例、后来有没有改口?哪条讨论能长成选题?哪些事其实在找你?

程序管事实,模型管表达:

  • 程序:切窗口、清洗 XML 引用、统计发言、抽取链接、校验证据引用与版式。同一份输入渲染结果确定。
  • 模型:写结论式标题、挑关键原话、给一段有判断的总结,只写 editorial.json,不碰 HTML。

关键约束

约束 实现
证据绑定 事实/选题/提醒/链接都须引用同一群的真实证据 ID,跨群或编造的 ID 被拒
时间窗 半开 [since, until),显式时区;定时用本地自然日而非机器日期
命名 默认群昵称(解析 chat_room.ext_buffer);同名多人如实报告,不猜
版式 模型只写 JSON;layout_check.py 复核渲染结果
PNG 缺 Playwright/Pillow/Chrome 时降级为 Markdown/HTML,png_status=missing-dependency,退出码 2
只读 不发送、不回复、不取密钥、不改调度、不改微信

安装

git clone https://github.com/kbwzy/wechat-group-daily-report.git
ln -s "$PWD/wechat-group-daily-report" ~/.claude/skills/wechat-group-daily-report

实时取数需要另一个独立项目 wechat-intelligence-hub(AGPL-3.0-only,本仓库不包含其代码,仅经子进程调用)。

离线试跑

examples/ 带一份合成群聊,无需微信环境即可跑通全流程:

python3 -m unittest discover -s tests        # 55 项,仅需标准库
python3 scripts/daily_report.py prepare examples/group-messages.json \
  --chat "示例·独立开发者交流群" --since 2026-10-20T00:00:00+08:00 \
  --until 2026-10-21T00:00:00+08:00 --name-mode display \
  --owner-alias "示例读者" --out /tmp/demo
cp examples/editorial.json /tmp/demo/editorial.json
python3 scripts/daily_report.py validate --strict --out /tmp/demo
python3 scripts/daily_report.py render --out /tmp/demo --png

实测环境

  • Python 3.13、3.14:55/55 通过,PNG 生成成功
  • Python 3.9–3.12:语法兼容,未逐版本实测
  • 代码零第三方依赖;PNG 栈见 requirements.txt

已知边界

  • 只覆盖本机已同步的记录。附件未读、外链正文未读、采集上限、覆盖缺口都会写进报告,不用「没读到」冒充「没有」。
  • 格式校验通过 ≠ 事实已验证。每份产物都标 semantic_truth: not-verified。
  • 不做跨群综合日报、私聊跟进、商机状态维护。

许可证

MIT。上游依赖 wechat-intelligence-hub 为 AGPL-3.0-only,两者是独立项目。