diff --git a/openspec/MIGRATION-PLAN.md b/openspec/MIGRATION-PLAN.md index 143a257..f848c35 100644 --- a/openspec/MIGRATION-PLAN.md +++ b/openspec/MIGRATION-PLAN.md @@ -10,6 +10,26 @@ - 供应商(vendor)三层体系 —— 架构级决策,非功能迁移 - 分销(tigshop 自身半成品)、完整拖拽装修器、电子卡密/虚拟商品、直播、打印、内置 IM +## 交接说明(handoff) + +**进度**:Wave 1 完成(P6/P0/P2/P1 已归档)。剩 P3、P5、P7(Wave 2)、P4(Wave 3)。 +**下一个建议**:P3 `add-wallet-settlement`(P0 已归档,硬依赖解除)。 + +**工作流约定(用户明确要求)**:一次只实现一个 change,完成后停下来等人工 review;可以提议下一个,但不要自动连续实施,除非明确要求连续执行。 + +**实施要点**: +- 下一个可用迁移号:`0019`(0016 aftersales / 0017 freight / 0018 reviews 已占用)。各 proposal tasks.md 里的迁移号是提议时抢占的(P3 写 0018/0019、P5/P7 写 0016/0017),**实施时以实际顺序重编号**。 +- 文档与索引已就位:改代码前先查 `docs/code_index/index.md`;`docs/backend-guidelines.md` 有并发/状态机模式与 PG 陷阱;`docs/design-guidelines.md` 管 UI;增删文件要同步索引。 +- 前端派发模式已验证:我(主线)做迁移+共享契约+Rust 模块+集成测试,然后按 app 并行派三个子任务(mall/shop-admin/admin)写页面,主线统一构建+smoke+归档。 + +**踩过的坑(别再踩)**: +- `SUM(bigint)` 在 Postgres 返回 NUMERIC,解码 i64 前必须 `COALESCE(SUM(x),0)::bigint`(售后曾因此 500)。 +- sqlx 运行时解码:`cargo check` 绿不代表 SQL 对——加列要同步所有列清单常量与 INSERT 的列数/参数数。 +- 外币订单退款:客户无该币种账户会失败,用 `account::service::ensure_monetary_account` 懒建(已存在)。 +- 共享契约改动要同时改 interface 和 createApi 实现两处;mall 还要 mock 实现 + LIVE_PICKS 精确挑方法(漏挑会静默落回 mock)。 +- dev server:`pnpm build` 后要 `rm -rf apps//.nuxt` 再 dev;dev 绑 IPv6 localhost;页面卡 Loading 无报错=旧 tab 拿旧 chunk hash,重启+开新 tab。 +- 测试库迁移校验和冲突(改了已应用的本地迁移):`DROP SCHEMA public CASCADE; CREATE SCHEMA public;`(vmall_test)。 + ## 依赖图 ```