交付出件箱

← 返回出件箱

云机会话交接 · 2026-08-17 v2(批 B 全量在 test · 待长官验收)

新会话读完本文即可接手,不需回溯对话。 取代 CLOUD-SESSION-HANDOFF-20260817.md。

🔴 第 0 节必须先读完再动手 —— 长官原话:「每次换新会话就会变傻就会经常犯错,这个一定要教好。」


0. 🔴 怎么不变傻(比进度重要,读完再往下)

0.1 变傻的真因:没查就说 · 判据选错 · 拿"没报错"当"对了"

你不是不知道,是手边没有上一会话查过的事实,于是用推测填空 ——
推测听起来跟事实一模一样,长官分不出来,只能等踩坑才发现。

0.2 判据表("看起来成功"不算成功)

每一行右边那列,都是拿真事故换来的。带 🆕 的是 8-16/17 这一夜新交的学费。

事情 ❌ 假判据 ✅ 真判据
后端改动没问题 静态检查 / import ok / py_compile 本地真库真跑(🔴 CI 不跑 pytest)
🆕 migration 没问题 本地 alembic upgrade 成功 本地是 postgres 超级用户,权限比 test 大。碰核心表(users/organizations)的操作先停 —— 8-17 加个 FK 就把 test 部署干失败了
🆕 判据本身有效 我跑了对比 先证明"撤掉修复会红"。8-17 用 git stash 做基线,可工作区本来就干净 → stash 是空操作,那次"基线"其实带着改动,结论无效
🆕 我 grep 到了/没到 grep -c 返回数字 对照组 + 查法本身要验:sed -n '/^function X/,/^}/p' 在多行函数签名上会截断;用文案当锚会命中自己写的注释
降级保护有效 写了 try/except 注入必错 SQL,看主流程还活不活(PG 里语句失败会让整个事务 aborted,不 rollback = 假降级)
🆕 外部系统的状态 拿本地字段推测 对着外部系统的真实反应做。8-16 拿"本地金额变没变"猜微信记着多少 → 治不了脱节的存量单,白发一版
接口能用 service 层单测全绿 真打 HTTP
前端改动生效 页面返回 200 抓 JS chunk 比对指纹 / 真渲染
🆕 测试红了是不是我干的 看名字像不像 单跑 + 撤改动再跑。本套件在全量下天然不稳(共享真库、顺序相关),同代码连跑结果都不同
🆕 效果图没问题 我渲染出来了 用 Read 把图看一遍。8-17 表格并排半栏 → 列被挤窄、文字全换行,与真实页面不符 = 失真
🆕 溢出自查 0 脚本报 0 先把绝对定位装饰藏起来再量 —— 「新增」标签这类会把父容器 scrollWidth 顶大,报假阳性
长官能打开链接 我自己 curl 通了 给公网域名
数据是真实的 库里有 N 行 看创建时间 / 是不是测试渠道(🆕 本地库 8-17 已清空,现在要自己造数据)
功能做完了 后端接口+测试都绿 前端有没有渲染
发版成功 脚本 exit 0 流水线出现新 run + SUCCESS(🆕 8-17 run#167 就是 FAIL)
没破坏别的 全量跑绿 与基线逐条比对失败清单

0.3 🔴 8-16/17 这一夜最贵的三次

  1. 判据打在错的一侧:微信下单撞「订单号重复但金额不一致」,我用"本地金额有没有变"当换号判据 —— 可本地金额早被上一版脏刷过,根本看不出微信那边记着多少。白发一版(MR #412 没治住),改成对着微信的真实反应兜底(#413)才好。
    👉 判据要打在出问题的那一侧,别拿本地状态推测外部系统。
  2. 本地能跑 ≠ test 能跑:migration 给 closed_by 加了指向 users 的外键。本地超级用户跑得通,test 上 permission denied → 整支回滚 → 三列一个没加,而新代码已上线 → 机构详情 500。
    👉 写 migration 前先问:这支碰的是不是结算自己的表?
  3. 验证手段本身是坏的:用 git stash 撤改动做基线对比,但工作区干净时 stash 是空操作 —— 那次比对完全无效,差点把自己打穿的测试当成"既有红灯"。
    👉 每次做"撤掉改动看会不会红",先 grep 确认真的撤掉了。

0.4 云机能力(现状,别用过期印象)

0.5 别手工做已固化成命令的事

status                 # 开局:分支/工作区/流水线/卡点
release-test "标题"     # 发版(判据内置)。🔴 不要用 sudo release-to-test
deliver 文件名          # 交付:公网链接
sudo test-inspect trace settlement-api   # 看 test 异常

⚠️ release-test 有个已知坑:推完只等 75 秒,桥没同步完会报「跟 test 一致·无需发版」。
发版前先确认:git ls-remote /srv/git/mirror.git refs/heads/<分支> 的 SHA == 本地 HEAD。

0.6 长官交互


1. 一页速览

项 状态
主线 门店签约并行化 v2 · 微信支付(批 B)
test ✅ 已全量发(最新 MR #419 / settle-test run#168 SUCCESS,08-17 04:00)
待发 0(分支与 test 一致)
分支 feature/wechatpay-pay-core
worktree /home/dev2/doctor-ai-brain/.claude/worktrees/bridge-cse_01AcGpTe1nKXvLXiYNPAGF53
生产 未动。发生产:sudo release-to-prod --mr <编号>
数据库 结算独立 alembic(alembic_version_settlement),head = phase68_003_store_closed

接手第一件事:等长官验收反馈,别自己发版。


2. 这一夜做完并已上 test 的(MR #411~#419)

支付链路

渠道

机构

服务管理

交互


3. 待长官验收(我验不了的)

已过:① 老机构显示已支付 ② 修改资料收起付款卡 ③ 付款页价目/席位加减 ④ 渠道预填 50/30 + 409 拦截 ⑤ 退款操作人 ⑥ 商品名 ⑦ 微信支付能付成功

还剩(完整清单:~/reports/batchB-acceptance-checklist-20260817.md):
1. 手机端机构列表筛选
2. 收款管理:筛选是全量筛、操作后有提示条
3. 机构详情:撤掉支付块后没别的问题
4. 服务管理:金额列 + 详情里支付明细(在合同下边)
5. 真付一笔 → 渠道收益按新口径(一级只拿差额)
6. 关闭机构全流程 + 详情顶部两行红条
7. 详情弹框内容长时能竖着滚


4. 悬着的待办

  1. ⬜ 长官验收反馈后的修补
  2. ⬜ 「商品名」字段命名双轨(price_name / product_name)统一
  3. ⬜ 契约测试 25 条老红灯(本地库清空后从 31 降到 25):test_channel_management 13 条是最大头,都是基线就红,CI 不跑 pytest 所以长期没人管 → 建议专门清一天
  4. ⬜ 渠道列表 IN(全部 id) 没分批 —— 8-17 本地库撑爆时暴露的真隐患(生产渠道量远达不到,但值得单独立项)
  5. ⬜ 历史数据洗号(旧快照同时存了一级/二级比例,差额可直接算;连带洗 settlement_statements.total_amount 与红字冲销)
  6. ⬜ 上生产前:切 settle-prod 流水线源 + 支付授权目录填 https://chat.tongban.love/(必须 https)
  7. ⬜ 批 C/D/E 未动

5. 长官已拍板、别再问的


6. 本轮自伤记账(引以为戒)

  1. 判据打在错的一侧 → 白发一版(MR #412 没治住支付脱节)
  2. 本地能跑≠test 能跑 → migration 加 users 外键,test 部署 FAIL + 机构详情 500
  3. git stash 对干净工作区是空操作 → 假基线,差点误判
  4. sed 截取多行函数签名会截断 → 误报"没改到"
  5. grep 锚点用文案 → 命中自己写的注释,位置量错
  6. 自己插按钮撑破了老测试的字符窗口断言(700→1400→又破)
  7. 效果图并排半栏 → 列挤窄换行失真,Read 看图才发现
  8. 溢出自查第一次报 2 处假阳性(绝对定位装饰)

📌 共同点:判据选错、或没查就说。第 0 节那张表就是这么来的。