bff6e5c7fd
完成度审计(见记忆 completion-audit)最尖的一条:涉及钱的路径此前 0 测试, 支付一上线 bug=真实错账;租户数据层隔离也只测了角色门禁没测数据层真隔离。 把本会话 live 手验过的断言固化成回归测试。 测试基建:纯 Go sqlite(glebarez,无 CGO)内存库,迁同款模型+建部分唯一索引+ 挂租户作用域回调,复用生产 store 方法测真逻辑。CI ubuntu 无 Postgres 也能跑 (此前 store 测试全是纯逻辑,DB 事务逻辑从没进过关卡)。 钱路径不变量(6): - GrantCredits 记分录+增余额,余额恒等于 SUM(ledger) - 兑换码核销一次性(CAS)+原子入账,重复核销余额纹丝不动 - 账本(kind,ref)部分唯一索引:重复 grant 被兜底拦下、usage 不受约束 - MarkOrderPaid CAS 幂等:重复回调 changed=false 不重复入账 - SaveUsageEvent task_id 幂等:同任务重投不重复扣费 - ReconcileOrders 抓出 order_without_ledger(钱到了积分没给) 租户隔离(3):创建自动填 tenant_id、查询按 ctx 租户过滤、跨租户改/删命不中、 WithoutTenant 系统视角全可见。 go build/vet + 全 gateway 测试全绿;sqlite 仅测试引用,不进生产二进制。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>