CHANGELOG.md
2.91 KB
WeChat Viewer — 开发日志 2026-07-08
环境
- 设备: Pixel 10 Pro Fold, Android 16
- 路径: ~/wechat-viewer/
- 访问: http://192.168.110.174:5000 (局域网 Mac)
- 进程: python3 app.py (proc_2a6f885e1cfb)
- 重启脚本: bash ~/wechat-viewer/restart.sh
架构原则
- Skill 驱动: 所有智能任务通过 Hermes CLI 子进程 + skill 执行,不写死 Python 逻辑
- 子进程模式:
hermes chat -q "prompt" -s <skill> --yolo -t terminal,web,file - Skill 迭代优于代码迭代: 改 skill 不需要重启 Flask
今日完成的功能
1. 文章列表 (articles)
- 导航栏「数据中心」→「文章列表」
- 从 WeChat DB 提取所有 type=49 公众号文章
- 去重: 用
__biz|mid|idx|sn四元组,解决同一文章不同追踪参数导致的重复 - 热度: 显示每个文章被几个群引用过,列出群名
- 筛选: 按标题搜索、按群筛选
- 排序: 时间正倒序、热度正倒序
- 按钮: 📝摘要 🔧学习 🖼图片
2. 日报系统 (reports)
- 三种类型标签: 群日报、文章摘要、学习记录
- 生成日报: 从消息浏览页或聊天页触发 → Hermes CLI + wechat-group-digest skill
- 生成图片: 每个日报→Hermes CLI + gpt-image-gen skill → 19世纪复古铜版画风格 → 存日报图片列表
- 筛选: 全部/群日报/文章摘要/学习记录
- 搜索 + 时间排序
3. 日报图片 (report-images)
- 查看/删除/发送微信
- 发送微信: 直接调 wechat_hook_send.send_image_via_hook,不走 Hermes 子进程
- 图片弹窗预览,点击空白关闭
- 联系人选择弹窗,按最新消息排序
4. 文章摘要 + 学习构建
/api/articles/summarize→ Hermes CLI → 提取核心观点 → 存日报/api/articles/learn→ Hermes CLI + learn-and-build skill → 分类处理 → 存日报/api/articles/generate-image→ Hermes CLI + gpt-image-gen → 存日报图片
5. 聊天页增强
- 文章卡片下方增加 📝摘要 🔧学习 🖼图片 按钮
- 视频号完整解析(提取昵称/描述/封面/时长)
- CDATA 全局清理
6. 创建的 Skill
learn-and-build— 学习文章 → 构建/迭代 Hermes skillheadroom-context-compressor— Headroom 上下文压缩集成方案
7. UI 改造
- 所有列表页可滚动 (body overflow-y:auto)
- 按钮移至卡片底部,大号适合移动端
- 日报类型彩色标签
关键 bug 修复
- 文章去重: URL 追踪参数 → 四元组 key
- 发送图片: closeSendModal 先清空 currentImageId 导致 fetch URL 为 null → 先保存后关闭
- 发图超时: Hermes 子进程 60s TIMEOUT → 改直调 wechat_hook_send
- 聊天页文章卡片空白: patch 误删 HTML 主体 → 重写
技术栈
- Flask + Jinja2 + SQLite
- wechat_db (su sqlcipher 读微信加密数据库)
- local_db (circle.db 存日报/图片/记录)
- Hermes CLI 子进程调度
- wechat_hook_send (LSPosed hook 发图)