Commit Graph

75 Commits

Author SHA1 Message Date
浅念 2c7625c3e4 docs(management): 批次D全链路走查+验收记录——管理者动线七步/清单逐项/门禁全绿
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-10 12:44:38 +08:00
浅念 2587e4dd08 docs(management): 批次D员工页计划——总览+详情+环比+预设补全(Task D0-D4)
评审3真问题全修:排序白名单四列(余列不排序)/服务页签图改P50P90双线
(员工级无每日率序列)/CSV扩csvExport注释行+rows适配;advisory全采:
异常卡补employee_name(一行后端)/showEmployee复用开关/formula_note归位/
伪卡片下钻衔接/compare仅显示态
2026-09-10 11:02:27 +08:00
浅念 2b10c07fb7 docs(management): 批次C前端计划——驾驶舱+导航(Task C0-C6)
评审4真问题全修:drilldown行补channel字段(C0后端契约补全)/DimSummary
补name+weight/端口3000→8000;advisory全采:服务图双轴/共享格式化提升
format.ts/去硬编码41/client契约字段补全
2026-09-10 09:44:39 +08:00
浅念 9fbd572bb7 docs(management): 批次B终评收尾——validate_config补源名唯一性+遗留观察项归档
批次B终评Approve后两处闭环:
- validate_config补源指标名跨维度唯一校验(comparisons按源名建键的
  静默覆盖防线)+测试
- 观察项归档:call_band样本基数(批次F)/源名唯一(已修)/性能与winsorize(批次F)
2026-09-09 19:28:48 +08:00
浅念 23ac95f2e4 docs(management): 批次B真机冒烟——六端点耗时/回测员工抽查/记录
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-09 19:17:56 +08:00
浅念 57ace98792 docs(management): 批次B计划同步band basis决议——active_friends周期distinct(与B2/B3实现一致) 2026-09-09 18:12:26 +08:00
浅念 d523813435 docs(management): 批次B实施计划——评分/异常/六只读API端点(Task B0-B5)
评审两minor+五advisory全采纳:active_share期末行口径/异常严重度加权排序/
窗口函数列表达式/affected_count定义/channel=all翻译/错误风格偏差注明
2026-09-09 16:46:39 +08:00
浅念 7758a3351f docs(management): 批次A终评修正——部署顺序理由/data_complete语义/通话类型注释
终评 Approve 后三处文档级修正:
- CLI help与DEPLOY的顺序理由改为事实(宽表不读fact,先跑不会出0;
  顺序约定保留,fact是批次B评分/下钻数据源)
- data_complete 注释改为预留语义待批次B定义(当前恒True)
- EmployeeCallDaily 注释通话类型实测值(voice_call/wa_voice_call)
2026-09-09 16:30:05 +08:00
浅念 639edf56a6 docs(management): 批次A回填实测+对账记录+DEPLOY部署注记
- 核实文档追加Task8小节:回填实测汇总(fact 68,476行/72s,宽表12,371+
  通话1,163/71s,幂等,同源68,476≡68,476,孤儿0,通话314天)
- 对账抽查:王云青+田瑞志×3日期×三组,①②组12/12逐日全一致,③组宽表
  ≤日切(差值=跨夜串归属效应,全期12,055 vs 20,981折叠57.4%验证串未丢)
- 批次A验收清单11项全过(653测试本机复跑绿,写钩子零改动逐commit核查)
- DEPLOY.md §7 新增批次A附加步骤:b7c8d9e0f1a2手动alembic+两条回填
  命令及顺序依赖(employee-metrics必须在first-reply-facts之后)

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-09 16:20:33 +08:00
浅念 e725c7032a docs(management): 批次A计划Task6代码块同步评审修正——hist时点语义/防御性flush
与 ad3beb7 实际实现对齐:day_msgs+cum 累积数组(hist=≤as_of,历史日沉睡门槛
不被未来消息虚增)、每日循环末 flush、accumulate import
2026-09-09 14:45:58 +08:00
浅念 399ecc680f docs(management): Task0核实修正——微信peer主体为无后缀裸ID(96.3%)+未命中全为群通话
偏差#5 原三后缀列表会误导 Task3 peer 建模:实测 customer 微信侧 6,779/7,040
为裸 ID(96.3%),@openim 仅 261;message.talker_id 行数口径裸 ID 844,287。
⑤ 未命中成因精确化:voice_call 126 条未命中恰为 126 条 @chatroom 群通话,
剔除后 1:1 命中率 100%;wa 未命中 5 条全部为 @g.us 群通话。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-09 11:55:52 +08:00
浅念 b8c2bef6df docs(management): 批次A Task0核实记录——phone_call/customer/staff/群占比/回测名单
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-09 11:42:53 +08:00
浅念 5f6bfe1ff6 docs(management): 批次A计划评审修正——通话幽灵过滤+alembic head对齐
评审发现2真问题+5条cosmetic全修:
- recompute_call_days 补 known_user_ids 幽灵过滤(否则自家测试就挂)
- down_revision e6f7a8b9c0d1→f7a8b9c0d1e2(d428953 customer_account_link
  已推head,照抄会双head报错)
- 测试计数9/文件数4/新增30/import声明/删占位SQL
2026-09-09 10:42:19 +08:00
浅念 27f91e560d docs(management): 批次A数据底座实施计划——Task0-8全码级拆解
五项核实→六表模型/migration→跨日精确fact算法→生命周期纯函数→
通话小表→宽表(1:1口径/同源/幽灵过滤/纯生命周期日出行)→两条回填CLI→
本地全量实测对账。判别测试覆盖v2 §9全部防线(跨夜串/friend口径/
同源/超集/幂等)。批次B-F待批次A合入后另出计划
2026-09-09 10:34:32 +08:00
浅念 a866ea8abd docs(management): v2补通话小表决议——phone_call.channel是通话类型非消息渠道,渠道维宽表会双计
计划阶段发现:PhoneCall.channel ∈ {phone_call,voice_call}(models.py docstring
自证 calls are not tied to a messaging channel),v2把通话四列放进
(day,channel,user)宽表在channel=all聚合时双计。拆出employee_call_daily
(day,user_id)独立小表;§1.2补#9,P3重排#10-#14,§3改6张表,§4链路更新
2026-09-09 10:34:32 +08:00
浅念 4ad239597e docs(management): v2计划复核收尾——评审确认后修4处文档级问题
评审代理逐案例推演确认P1#5同源修正算法成立(Approval维持),遗留修正:
- §1.1#2修正列更新(串类三列由fact同源输出,不再说全量自算)
- §1.1#5去掉'>100%'夸大表述(单向低估,不可达)
- §9对账点限定消息计数列(串类列禁止相等断言)
- Task0口径只记录文档,配置落库归Task3种子CLI
- P2/P3行号全局重排(#6-#13),交叉引用同步
- §3.2负载列补数据源标注;时效说明措辞精确化

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-08 16:46:40 +08:00
浅念 8257086921 docs(management): v2计划第五轮复查——回复率分子分母同源修正(P1#5)+配置种子等补充
- P1#5:宽表串类三列改由fact计算模块同源输出(串末条归属日),
  不再取msg_daily_stats日切聚合——混口径会使多日未回串膨胀分母,
  回复率低估甚至>100%;msg计数/负载列与串算法无关仍取msg_daily_stats
- P2/P3:Task3补默认配置v1.0种子落库;时效说明;metric_version默认v1;
  call_followup多账号语义进Task0核实;继承索引补v1 §12.1/12.2;
  测试补分子分母同源判据(reply_rate<=1/threads_answered≡fact行数)

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-08 16:40:35 +08:00
浅念 7a7eba766d docs(management): v2计划评审修正——引用定位/删减清单补全/口径表补活跃员工行
评审结论 Approved + 4 条 advisory 全部采纳:
- 降温频次定义/异常裁剪原则的引用从 v1 修正为上游整合计划
- 删减清单补 effective_sessions/activated_customer_count/cust_threads 更名说明
- 口径决议表补活跃员工(幽灵过滤)差异行

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-08 16:35:55 +08:00
浅念 c7b7df5011 docs(management): 经营管理后台v2实施计划——查漏补缺修订版
对 v1 逐项对照现有代码重新设计技术底座:
- P1修正:fact表跨日精确算法独立计算(跨夜串丢失/写钩子零改动);
  宽表1:1口径全量自算(stat_daily_staff混合口径不可拷贝);
  生命周期统一距今天数口径;对账判据预写死
- P2修正:分位数SQL窗口函数;full_sync 12→14步
- P3:核实清单/幽灵员工过滤/功能开关降级/五维图3+2占位

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-08 16:30:36 +08:00
浅念 8499a74a72 fix(analytics): run_full水位前置防回填窗口漏扫+README/DEPLOY/脚本号收尾
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-04 23:27:41 +08:00
浅念 0fad1b09bb docs(deploy): 数据分析板块首部署回填注记
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-04 23:14:53 +08:00
浅念 ad153aa2f7 fix(analytics): 环比同期对齐口径+趋势窗校验+异常新员工明细
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-04 17:34:14 +08:00
浅念 81af615738 docs(plan): 复核残留修订——exportListToCsv真实签名落地代码块/调度测试改相对日期
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-04 14:48:45 +08:00
浅念 0bc1250476 docs(plan): 评审修订——修5处seed/签名矛盾+起步词库补种+四页角标
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-04 14:42:56 +08:00
浅念 aecb556efd docs(plan): 数据分析板块 v1 实施计划——17 任务 TDD 全链(模型/指标/C1/调度/四页)
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-04 14:25:20 +08:00
浅念 33c5596543 docs(spec): 数据分析板块 spec 评审修订——min_msgs 参数/周一起始/alembic 取代上游过时说法
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-04 13:51:11 +08:00
浅念 d1b636abdc docs(spec): 数据分析板块 v1 设计存档——A1/A3/B2/C1 骑日汇总层+打底架构
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-04 13:45:13 +08:00
浅念 0a5eb49359 docs(deploy): DEPLOY.md 对齐 2026-09-03 实测落地(NAT 端口模式)
- 拓扑现实:服务器在路由器 NAT 后,公网 80 被其他设备占用
- 对外访问实测:1Panel 域名管理加 公网IP:32002 + 路由器转发,零配置直访
- 修媒体解压路径 bug:包内根是 media/,须 -C yunke-server
- HTTPS 改为将来项:域名 + 1Panel DNS 验证(绕开被占的 80)

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-03 14:35:00 +08:00
浅念 974929e091 feat(deploy): 阿里云ECS+1Panel 服务器部署方案落地
- docker-compose.server.yml:生产编排(复用 1Panel MySQL、去 mysql/redis、
  端口仅绑 127.0.0.1、TZ=Asia/Shanghai、MYSQL_HOST 必填守卫)
- 两份 Dockerfile 内置国内构建源:apt/pip→阿里云,npm/playwright→npmmirror
  (ECS 上直连官方源慢/超时;对本地构建同样可用)
- DEPLOY.md 重写为 v2 runbook:单站点反代架构、mysqldump+media 搬迁管道
  (ngram 索引导入重建 ~12min)、验收清单、运维表、本地停 scheduler 收尾

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-01 16:38:05 +08:00
浅念 ef7f6d8a23 fix(migrate): 类型迁移SQLite内联修复FTS触发器+多owner群room_id测试+DEPLOY补stamp依据与锁表提示
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-25 20:55:18 +08:00
浅念 35bfebd3e3 chore(backend): list_order迁移补齐+Task14类型修正落链+moments每页日志+MsgTypeParam派生+3处文档修正+Dockerfile打包migrations+DEPLOY补迁移步骤
- 9b0d0c133035: wechat_account.list_order 进迁移链(此前仅模型声明,
  干净库 /api/accounts 即 500);sa.inspect 幂等守卫兼容已手动加列的
  smoke.db
- fe63c6789e94(验证中发现的预存缺口,超出原清单): Task 14 的 5 列模型
  类型修正(4×URL String(1024)→Text, db_size Integer→BigInteger)从未落
  链——纯 alembic 新库会复活 >1KB 链接截断;对齐后干净库 alembic check
  全绿。SQLite message 表 batch 重建会掉 FTS 触发器+rowid 脱节(docstring
  记明 ensure_fts+rebuild_fts 修复,smoke.db 已修复验证)
- scrape_via_page: _iter_moments_pages 每页一行进度日志(镜像 _fetch_pages)
- messages: MsgTypeParam=Literal[tuple(_MSG_TYPE_FILTER)] 派生,杜绝
  双处罗列漂移(openapi enum 验证一致,492 绿含 422 行为)
- 文档: ChatGroup 复合PK docstring/groups room_id 多行表述/测试名去
  单行假设;Dockerfile 补 alembic.ini+migrations;DEPLOY 增「数据库
  迁移」节(新库/旧库stamp路径/回填脚本显式DB_URL)+运维表升级行

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-25 20:32:25 +08:00
浅念 3f867718ff docs(analytics): 方案v1.1评审修订——价值图谱(8能力域/三层价值)+权限模型/性能承载横切章节+E0数据健康+B5 RFM+10处口径漏洞修复(首沟通口径/流失三分法/迟到回写/尾部判定/误报治理/zip导出/一人多号聚合/图表库选型)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-25 17:21:39 +08:00
浅念 c21758dfb2 docs(plan): 填写Task4判别记录(双编码发现+逐码证据+回填终态+前端兜底注意)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-25 15:32:07 +08:00
浅念 2f73d79a6d docs(plan): 吸收评审4条(groups路由实为model_validate免改/客户搜索需加q参数/moments调度+图片本地化补step/行号校正)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-25 12:35:41 +08:00
浅念 05a31022db docs(plan): 员工聊天窗口五视图实施计划(15任务:后端7+前端8,TDD+真机判别spike)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-25 12:31:53 +08:00
浅念 00180ef479 docs(spec): 二次审计修订8项(微信群表列真机结构/统计明细分tab列型/phone_call userId转换坑/类型归一化回填任务/通讯录批量操作/msgid定位/chat_group补列/左栏折叠)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-25 12:10:16 +08:00
浅念 2d93f31be7 docs(spec): 吸收评审建议(时间s→ms转换/msg_type映射推导注明/moments头部来源/统计全tab明细/WIP还原明确/空态描述)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-25 11:59:30 +08:00
浅念 614680a4eb docs(spec): 员工聊天窗口对齐设计(StaffChat五视图:单聊/群聊/朋友圈/通讯录/统计分析,基于2026-08-25云客真机抓包)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-25 11:57:29 +08:00
浅念 e5ebb918fc docs(analytics): 数据分析与增值功能全景方案(22项/5系列,基于2026-08-24实测数据审计,首批E1+A1+A3+B2+C1)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-24 18:28:52 +08:00
浅念 2175cb0169 feat(deploy): MySQL容器实测打通(3个方言bug修复)+部署文档
- repos: on_duplicate只更新实际插入列(fetched_at等Python-default列,
  SQLite excluded容忍/MySQL new.*直接报Unknown column)
- repos: _coerce_int增加日期字符串→ms epoch分支 + _INT_FIELDS补
  last_update/last_chat_time/timestamp/update_time(字符串直通BigInteger)
- models: wechat_account.db_size Integer→BigInteger(实测2.17GB超32位上限)
- compose: mysql不映射宿主机3306(本机已占;容器内服务名互联)
- docs/DEPLOY.md: 服务器部署全指南(架构/步骤/数据迁移/运维命令/注意事项)
- 容器实测:Playwright抓取55账号→MySQL upsert全通

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-22 10:40:04 +08:00
浅念 123c23242c chore: start_backend.sh启动脚本+plan4a/4b历史计划文档
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-19 16:48:22 +08:00
浅念 7330cd1766 docs(spec): 接 WA 自动同步(accounts+friends wiring)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-10 16:27:27 +08:00
浅念 239868531f docs(spec): 修复群抓取(friend_list/es+friendTypeYunke=2,替换 getChatroomList)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-10 13:57:41 +08:00
浅念 82f7505298 docs(spec+plan): 删除 AccountList 页(/accounts→/staff 重定向,总 spec 收尾)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-08 17:15:04 +08:00
浅念 e487556253 docs(plan): 导出会话HTML(③)实现计划(ChatTimeline 按钮 + downloadBlob 文件名修复)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-08 17:04:53 +08:00
浅念 e4f850672c docs(spec): ③ 纠正(仅 ChatTimeline 加导出按钮 + 修 downloadBlob 文件名;CustomerList/GroupList 已实现)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-08 17:03:51 +08:00
浅念 499a6ebd7b docs(spec): 导出会话聊天HTML(③,前端接线;后端 export.py 已就绪)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-08 17:00:49 +08:00
浅念 4d18a0e755 docs(plan): ④ 移除未用 chatChannel(避免 noUnusedLocals,WA 时再加)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-08 16:17:53 +08:00
浅念 18919f3401 docs(plan): CallList ④ 微信语音 单元格可点 实现计划
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-08 16:15:50 +08:00
浅念 3a30a41ca1 docs(spec): ④ 收窄至微信语音(WA 未核实云客+列结构不同→后续,遵循浏览器优先)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-08 16:14:51 +08:00