浅念
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
浅念
f4f0855439
docs(spec): CallList 列内可点(④)设计(微信/WA语音单元格→聊天/详情,电话不动)
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-08 16:12:07 +08:00
浅念
4cb6cf50c4
docs(plan): step5 plan 评审修复(删 getMessages import + Task4 显式替换说明)
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-08 14:53:39 +08:00
浅念
c6dbda3bec
docs(plan): ChatTimeline 会话列表 step5 实现计划(后端 /api/sessions + 双栏 + 选择器)
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-08 14:47:49 +08:00
浅念
73fd9d0975
docs(spec): 修正 today_count 时区(钉死 UTC+8) + 日期选择器持久 ref 澄清
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-08 14:44:58 +08:00
浅念
9311607bda
docs(spec): ChatTimeline 会话列表对齐云客(step 5)设计
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-08 14:37:11 +08:00
浅念
abe86489b9
docs(plan): stat modal Phase B 实现计划(列对齐 + 客户微信带窗跳聊天)
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-08 13:41:53 +08:00
浅念
2a33f944ec
docs(spec): 微信员工 stat modal Phase B 设计(列对齐云客 + 客户微信→带窗聊天)
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-08 13:12:13 +08:00
浅念
f6c45e983a
docs(plan): 微信员工 5 数字 modal Phase A 实现计划(全本地 message 聚合)
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-07 18:20:42 +08:00
浅念
c73d845874
docs(spec): 5 数字 modal spec——§8 索引表述与无 Alembic 对齐
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-07 17:40:56 +08:00
浅念
faed2f586d
docs(spec): 5 数字 modal spec 修订——room_id 私聊过滤 + 分页适配 + handler 换源 + 无需 Alembic
...
spec review 反馈:群消息误算(加 room_id 过滤)、YkStaffDetailModal fetcher 分页适配
(合成分页)、5 handler 已存在(换数据源非接线)、索引已存在(不加 Alembic)、NULL 语义、
日期选择器放 StaffList、路径前缀。
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-07 17:39:37 +08:00
浅念
78eea7f08f
docs(spec): 微信员工 5 数字 modal (Phase A) 设计——全本地消息聚合
...
数据源真机核实(wxStatsByTypes/wxChatInfo);从 message 表聚合 5 数字+客户明细;
复用 YkStaffDetailModal;口径近似(跟进等)。姓名drawer/主badge = Phase B。
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-07 17:36:05 +08:00
浅念
90e614e2d7
docs(plan): 录音本地化 plan 修订——修复下载死循环 + 测试 session + WA v-if
...
plan review 反馈:while 循环加 tried 集合排除已试 call_id(持续失败行不死循环);
_make_engine 只返回 engine 需自建 sessionmaker;WA 录音按钮 v-if 用 ossFileName。
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-07 16:06:56 +08:00
浅念
a2f6b023fa
docs(plan): 录音批量本地化实现计划(6 task,TDD,复用 media 管道)
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-07 15:59:46 +08:00
浅念
d3fd0a5425
docs(spec): 录音本地化 spec——drawer 播放也切本地 + media URL 约定 + sync 前提
...
用户 review:把详情 drawer 录音播放纳入本地化范围(一致性+全本地);
补 media URL 前缀对齐现有渲染、sync pass 须实跑的运维前提。
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-07 15:55:12 +08:00
浅念
f8a6acd009
docs(spec): 录音本地化 spec 修订——media_type='audio' 新label + store/session 接缝澄清
...
spec review(Approved)3 条 advisory:media_type 约定、ObjectStore 来源、
session 而非 engine。
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-07 15:22:08 +08:00
浅念
cd4ac5feb3
docs(spec): 录音批量本地化设计——复用现有 media 管道接线
...
phone_call.record_media_hash + download_call_recordings + sync_call_recordings
独立 pass + PhoneCallOut 字段 + CallList 本地优先/OSS 回退。范围仅通话录音;
语音消息/voice_clip/转写后续。路线图第 1 个 plan(4c 长语音只读已搁置)。
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-07 15:13:34 +08:00
浅念
334adcb712
docs(spec): 4c 设计修订——补 user_real_name API 参数 + 员工姓名筛选语义/播放/scaper 文件定稿
...
spec review 反馈:API↔modal 员工姓名筛选对齐 + 打开语义澄清 +
channel 移出 body + scraper 文件/播放方式 pin。
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-07 14:36:50 +08:00
浅念
fd33e82d62
docs(spec): Plan 4c 设计——长语音列表(voice_clip)本地化 + 只读展示
...
数据来源真机确认(POST /wechatweb/call/list 请求/响应);voice_clip 表 +
scraper/sync + /api/voice-clips + 只读 VoiceClipModal + CallList 接入。
匹配/转写/统计卡片等留 4d+。
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-07 14:32:23 +08:00
浅念
a66c3be00a
chore: final Minor polish — export filename/test断言, downloadBlob 类型/清理, plan docs
...
address review Minors: drop redundant filename replace, assert 暂无消息,
tighten downloadBlob return type + try/finally, fix plan group time-picker wording.
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-06 18:06:17 +08:00
浅念
de08bd09c7
docs: Plan 3 — GroupList 对齐云客(采集 + TDD plan)
...
phase0 采集云客「沟通」板块群列表(微信 wechatdetail/2 + WA friendlist 群列表 tab),
写 Plan 3(分 channel tab 各自列 + viewChat),经 plan-reviewer 评审 Approved。
已知 gap:smoke.db 0 群(空表验证)+ WA 群抓取缺失(字段推断)。
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-06 11:11:37 +08:00
浅念
c31d79f1e2
docs: Plan 2 — CustomerList 对齐云客(采集 + TDD plan)
...
phase0 采集云客「沟通」板块客户列表(wechat wechatdetail/1 + waBusiness/friendlist),
dump raw_json 字段覆盖,产出列+交互+字段映射;写 Plan 2(分 channel tab 各 7 列 +
查看聊天记录→ChatTimeline),经 plan-reviewer 评审 Approved。
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-06 10:12:36 +08:00
浅念
9499110427
docs(plan): record wechat staff-list probe + adjust Task 8/9
...
WeChat interactions are navigation (not modal): 好友数/群数→customer/group list, 昵称→chat. Task 8 redone as navigation; Task 9 uses owner_account_id + row.channel.
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-05 18:35:18 +08:00
浅念
1d815d84b9
docs: UI alignment spec + StaffList interaction plan
...
Spec: align all list/detail pages to 云客 (columns + interactions); covers interaction taxonomy, backend extensions (customer add_time/filters, /api/sessions), phase-0 capture. Plan 1: StaffList interaction closure + customer backend + YkStaffDetailModal.
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-05 18:30:12 +08:00
浅念
7f19b12e74
docs: phase 0 reconnaissance findings
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-01 13:29:14 +08:00
浅念
cd8d36fd00
docs: initial design spec, data dictionary, implementation plan
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-01 10:53:28 +08:00