新会话读完本文即可接手。 取代
CLOUD-SESSION-HANDOFF-20260818-v2.md。
第 0 节(怎么不变傻)仍以 v2 那份为准,本文只写增量。
本地全绿 ≠ 容器能起来 —— 上传口用了 UploadFile = File(...),本机装了
python-multipart 所以 840 条测试全绿、构建全过,一进容器 settlement-api 直接起不来
(settle-test run#201 FAIL)。详档与验证手法见避坑指南 pitfall-guide-settlement.md
「本地全绿 ≠ 容器能起来」节。
教训:写"全仓独一份的写法"前先 grep requirements.txt 问一句"容器里有这个包吗"。
不出图就发现不了的 bug 有 5 个 —— 长官要求"出图跟方案图比对再发版",一比就抓出:
「补充资料」按钮根本不显示、二维码探测用 HEAD 被 405、资料卡写「审核已完成」误导、
弹框按钮与图不符、界面漏出 Markdown 星号。光靠测试和类型检查一个都发现不了。
云机其实能渲染登录态页面(我先前说"渲染不了"是错的):
起本地后端 8002 + next dev 3000,用 page.addInitScript 注入
sessionStorage.access_token / user / settlement-admin:session-gate(后台)
或 localStorage['zhaoyang:store-review-verified:v1'](门店端,键是复核码的 FNV-1a 哈希)
就能把真页面截出来。
分支 feature/signup-v3-prepay-first,两个提交:e7e9d3db(F1-F4) + a151a3ac(修容器起不来)。
| 批 | 内容 |
|---|---|
| F-1 | 后端放行「资料没交也能付款」;显示名映射提成四端唯一出口 store_status_display.py |
| F-2 | 后台「客服设置」:新表 support_qrcodes + 迁移 phase71_000 + 4 接口 + 列表页 + 菜单第 9 项 |
| F-3 | 第一页只填三项(机构名/联系人/手机号)+ 下半嵌入支付 |
| F-4 | 进度页:客服二维码卡 + 「修改资料」→「补充资料」+ 并行文案改串行 |
关键决策(长官已拍,别再问)
- 状态复用死词「待提交资料」,四端一律显示「资料待补充」——
零 migration。test 实测该状态存量 0 条,零冲突
- 🔴 绝不能碰渠道的 channels.profile_status:同一个词,渠道侧是活的(test 上 45 条),
门店侧是死词(0 条)。两张表两个列,长官特别叮嘱过
- 客服二维码:话术写死在代码里,表只管图;首批一行「门店签约进度页」;
停用不删图;没传码/停用则门店整块不显示
- 上传一律 JSON + base64,禁 multipart(容器没那个包)
sudo release-to-prod --mr 457LEGACY_CLEANUP_STATUSES 等)sudo db-query test "<SQL>" 查 test 库(只读)
sudo wechat-verify-deploy <16位校验码> 放微信校验文件到生产(碰生产,必须现场令)
云机环境 · 非验收证据。