zcbot/core/storage
caoqianming bcd2b90942 refactor(storage): 失败埋点拆出 telemetry.py + kind 契约常量化;补 wecom 加解密测试
收官三小项(架构审查残余):

- core/storage/telemetry.py:四个留痕函数(malformed/salvaged/empty/run_error,
  cost 恒 0)从 usage.py 迁出——「usage=计费」心智不再被埋点污染(数据层 Top4);
  kind 字符串升为常量,loop/llm_transport(写)与 toolfail(读 SQL)两侧共用
  同一事实源,此前靠字面量约定、改名会静默漏读。core.storage.__init__ 转发
  出口不变,调用面仅 web/runs.py 一处改 import
- tests/test_wecom_crypto.py:7 用例,企微回调加解密(WXBizMsgCrypt 等价实现)
  测试侧按同方案自造密文,覆盖验签/receiveid/padding 各失败路径——wechat 子系统
  (审查 Top3 零测试)中唯一可纯测的一块补上
- DB 测试探针补 connect_timeout=5:测试库挂掉时快速降级 skip,不再把整个
  discovery 挂死在 TCP 建连上(Docker engine 打嗝时实测挂死过)

带测试库 351 全过 / 无测试库 341 过(DB 组干净 skip)。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-23 14:21:45 +08:00
..
__init__.py refactor(storage): 失败埋点拆出 telemetry.py + kind 契约常量化;补 wecom 加解密测试 2026-07-23 14:21:45 +08:00
disk_quota.py feat(web): 文件面板底部展示用户已用存储 + 配额 2026-06-04 15:00:36 +08:00
engine.py auth(dev SPA): 邀请码登录(invites 表 0005) + SENTINEL user 彻底撤 2026-05-19 13:14:31 +08:00
models.py feat(kb): 个人知识库——.kb/ 纯文件机制+/v1/kb* API+前端 modal+注入契约(bump 0.59.0) 2026-07-22 15:20:43 +08:00
telemetry.py refactor(storage): 失败埋点拆出 telemetry.py + kind 契约常量化;补 wecom 加解密测试 2026-07-23 14:21:45 +08:00
usage.py refactor(storage): 失败埋点拆出 telemetry.py + kind 契约常量化;补 wecom 加解密测试 2026-07-23 14:21:45 +08:00
usage_report.py refactor(storage): 计费读侧收口 core/storage/usage_report.py + 首批 DB 级测试 2026-07-23 10:33:13 +08:00
utils.py feat: 定时任务对话归属 + push 统一记录到渠道对话(bump 0.28.0) 2026-06-26 10:51:06 +08:00