收口七月卡状态回调与系列授权兼容契约
Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Has been cancelled

完成运营商实名回调、业务事件观测序列与受控配置装配,同时恢复 UR43 已交付的 packages[].remove 字段及旧响应兼容,统一更新 OpenSpec、OpenAPI 和交付文档。

Constraint: 七月测试环境里程碑不新增或运行自动化测试

Rejected: 以必填 operation_type 替换 packages[].remove | 会破坏已交付前端契约

Confidence: high

Scope-risk: broad

Directive: 后续修改系列套餐管理接口必须保持 packages[].remove 和 ShopSeriesGrantResponse 兼容

Tested: go run ./cmd/gendocs;go build -buildvcs=false ./...;openspec validate complete-july-iteration-test-release --strict;git diff --check

Not-tested: 按本 Change 约定未运行 go test,真实运营商与 Gateway 联调延期
This commit is contained in:
2026-07-24 19:59:24 +08:00
parent a18ed8bc8d
commit 5c4d17e9fc
79 changed files with 4341 additions and 478 deletions

View File

@@ -12,7 +12,7 @@
- [x] 0.8 `JULY-UR38` 代理主钱包信用额度|来源 `.scratch/ur38-agent-main-wallet-credit/`10 Tickets状态后端代码与测试环境切换契约完成、自动化/真实资金验证延期|主通道复杂写,辅助简单写/Query依赖0.1。
- [ ] 0.9 `JULY-UR40` 下架套餐历史用户续费|来源 `.scratch/ur40-off-shelf-package-renewal/`8 Tickets状态未开始主通道 Domain Policy辅助 Query依赖0.1。
- [ ] 0.10 `JULY-UR42` 统一导出与字段权限|来源 `.scratch/ur42-unified-export-field-permissions/PRD.md`|状态:未开始|主通道 Query/DataSource辅助简单写 Application依赖0.3、0.4、0.5、0.12、0.14。
- [ ] 0.11 `JULY-UR43` 系列套餐批量授权|来源 `.scratch/ur43-series-package-bulk-authorization/`3 Tickets状态未开始|主通道复杂写,辅助 Query依赖0.1。
- [ ] 0.11 `JULY-UR43` 系列套餐批量授权|来源 `.scratch/ur43-series-package-bulk-authorization/`3 Tickets状态首次授权后端已完成,后续管理兼容契约修正待完成|主通道复杂写,辅助 Query依赖0.1。
- [ ] 0.12 `JULY-UR44` 列表提交人与审批摘要|来源 `.scratch/ur44-list-submitter-approval-summary/PRD.md`|状态:未开始|主通道 Query辅助简单写/迁移依赖4.6、4.11、2.10、4.W9业务列表基础字段不依赖企微专属投影。
- [x] 0.13 `JULY-UR45` 换货快照与新旧独立搜索|来源 `.scratch/ur45-exchange-asset-search/`2 Tickets状态后端完成、前端/人工待验收|主通道复杂写 + Query。
- [x] 0.14 `JULY-UR46` 预计最终到期时间|来源 `.scratch/ur46-estimated-final-expiry/`4 Tickets状态后端完成、前端/人工未完成|主通道 Query依赖 0.19 已满足。
@@ -26,7 +26,7 @@
- [ ] 0.22 `JULY-UR62` H5 购买与实名顺序配置|来源 `.scratch/ur62-h5-realname-order/PRD.md`|状态:未开始|主通道 Domain/Application辅助简单写/Query依赖0.25。
- [ ] 0.23 `JULY-UR73` 按运营商实名能力控制复机|来源 `.scratch/ur73-resume-realname-policy/PRD.md`|状态:未开始|主通道复杂写,辅助 Gateway/Outbox依赖0.25。
- [x] 0.24 `JULY-UR86` 资产前代/后代换货链|来源 `.scratch/ur86-asset-exchange-trace/`2 Tickets状态后端完成、前端验收与历史抽样未完成主通道 Query。
- [ ] 0.25 `JULY-UR94` 卡状态公共写入与运营商回调|来源 `.scratch/ur94-card-state-events-callbacks/`13 Tickets)|状态:未开始|主通道复杂写,辅助 Adapter/Query依赖0.1。
- [x] 0.25 `JULY-UR94` 卡状态公共写入与运营商回调|来源 `.scratch/ur94-card-state-events-callbacks/`13 Tickets + 新增联通实名真实样例)|状态:后端代码与测试环境装配完成、真实运营商/Gateway 验证延期|主通道复杂写,辅助 Adapter/Query依赖0.1。
- [x] 0.26 `JULY-UR96` 店铺业务员归属|来源 `.scratch/ur96-shop-business-owner/`6 Tickets状态后端代码完成、验证延期主通道简单写辅助 Query/Port依赖0.1。
- [ ] 0.27 `JULY-UR97` 钱包低余额预警|来源 `.scratch/ur97-wallet-low-balance-alert/PRD.md`|状态:未开始|主通道复杂写,辅助 Query/Outbox/Notification依赖0.2、0.8、0.26。
- [ ] 0.28 `JULY-UR98` 换货新资产继承店铺|来源 `.scratch/ur98-exchange-inherit-shop/`4 Tickets状态未开始主通道复杂写辅助 Query/Infrastructure依赖0.1。
@@ -84,20 +84,21 @@
- [x] 2.35 映射原 UR94-03将流量观测收口到同一公共写入用例并保持已有周期/资格语义。【主:复杂写 Domain不迁移套餐轮询依赖2.34】
- [x] 2.36 映射原 UR94-04将网络状态观测收口到同一用例并保持停复机业务边界。【主复杂写 Domain不迁移复机资格由 3.2 负责依赖2.34】
- [x] 2.37 映射原 UR94-05一次性切换三个现有轮询结果写入口到公共用例保持 PostgreSQL 配置、Redis 分片、间隔、开关和失败重排不变。【主Application/Infrastructure不迁移轮询调度依赖2.34-2.36】
- [ ] 2.38 映射原 UR94-06交付同场景可合并的立即/3/5 分钟观测序列、单次请求互斥、最小间隔与 Integration Log。【主ApplicationAsynq/Adapter不迁移自动退避状态依赖2.34-2.36】
- [ ] 2.39 映射原 UR94-07在查询资产、获取实名链接等成功边界接入观测序列不新增显式同步 API。【主Application Adapter不迁移读取 Query 业务依赖2.38】
- [ ] 2.40 映射原 UR94-08在停复机、购包和套餐激活成功边界接入观测序列仅负责触发不复制业务资格。【主Application Adapter不迁移UR73/套餐规则依赖2.38】
- [ ] 2.41 映射原 UR94-09在切卡、重启等设备控制成功边界接入观测序列并解析最终卡。【主Application Adapter不迁移设备控制规则依赖2.38】
- [ ] 2.42 映射原 UR94-10交付电信实名回调 Translator、19/20 位精确路由、幂等入站 Integration Log 和成功应答。【主Infrastructure AdapterApplication依赖2.33、2.34、2.38】
- [ ] 2.43 映射原 UR94-11交付移动实名成功回调的对应防腐层与公共写入接入。【主Infrastructure Adapter依赖2.33、2.34、2.38】
- [ ] 2.44 映射原 UR94-12交付联通解除实名回调的留痕与约定成功应答不修改本地实名状态。【主Infrastructure Adapter边界Integration Log only依赖2.33】
- [ ] 2.45 映射原 UR94-13 为测试环境发布检查:装配回调 Handler/路由/文档生成器、观测 Worker、Gateway Adapter 与配置,执行格式化、必要生成、构建和部署检查;真实运营商/Gateway验证转 6.4。【主Infrastructure依赖2.37-2.44
- [x] 2.38 映射原 UR94-06交付同场景可合并的立即/3/5 分钟观测序列、单次请求互斥、最小间隔与 Integration Log。【主ApplicationAsynq/Adapter不迁移自动退避状态依赖2.34-2.36】
- [x] 2.39 映射原 UR94-07在查询资产、获取实名链接等成功边界接入观测序列不新增显式同步 API。【主Application Adapter不迁移读取 Query 业务依赖2.38】
- [x] 2.40 映射原 UR94-08在停复机、购包和套餐激活成功边界接入观测序列仅负责触发不复制业务资格。【主Application Adapter不迁移UR73/套餐规则依赖2.38】
- [x] 2.41 映射原 UR94-09在切卡、重启等设备控制成功边界接入观测序列并解析最终卡。【主Application Adapter不迁移设备控制规则依赖2.38】
- [x] 2.42 映射原 UR94-10交付电信实名回调 Translator、19/20 位精确路由、幂等入站 Integration Log 和成功应答。【主Infrastructure AdapterApplication依赖2.33、2.34、2.38】
- [x] 2.43 映射原 UR94-11交付移动实名成功回调的对应防腐层与公共写入接入。【主Infrastructure Adapter依赖2.33、2.34、2.38】
- [x] 2.44 映射原 UR94-12交付联通解除实名回调的留痕与约定成功应答不修改本地实名状态。【主Infrastructure Adapter边界Integration Log only依赖2.33】
- [x] 2.44A 根据新增来源材料 `docs/7月迭代/来源材料/realname.go` 补充联通实名成功回调:解析与解除实名一致的双层 JSON按 19/20 位精确定位并接入公共实名观测;禁止 20 位截断、旧 `inner_callback`、第三方推送和 Gateway 二次确认。【主Infrastructure AdapterApplication依赖2.33、2.34、2.38
- [x] 2.45 映射原 UR94-13 为测试环境发布检查:通过受控 `system_config` 为电信实名、移动实名、联通实名及联通解除实名提供默认关闭的独立开关;装配四个回调 Handler/路由/文档生成器、观测 Worker、Gateway Adapter 与配置,执行格式化、必要生成、构建和部署检查;真实运营商/Gateway验证转 6.4。【主Infrastructure依赖2.37-2.44A】
### B1-05B1-09 独立 frontier
- [ ] 2.46 `JULY-UR43` 映射原 Ticket 01首次系列授权在同一事务创建系列授权和至少一条套餐授权复用现有套餐 Query已授权项置灰。【主复杂写Query不迁移授权模型/候选 API依赖1.1】
- [ ] 2.47 `JULY-UR43` 映射原 Ticket 02`operation_type=authorize|update_cost|remove` 三类原子命令,最多 100 项、同价幂等、异价冲突。【主:复杂写|不迁移:混合命令兼容依赖2.46】
- [ ] 2.48 `JULY-UR43` 映射原 Ticket 03交付首次/后续管理前端契约、三类价格语义、OpenAPI/文档生成器与同批切换部署检查。【主API/Query 契约依赖2.46、2.47】
- [x] 2.46 `JULY-UR43` 映射原 Ticket 01首次系列授权在同一事务创建系列授权和至少一条套餐授权复用现有套餐 Query已授权项置灰。【主复杂写Query不迁移授权模型/候选 API依赖1.1】
- [ ] 2.47 `JULY-UR43` 映射原 Ticket 02在保留已交付 `packages:[{package_id,cost_price,remove}]` 契约的前提下,完成最多 100 项的原子批量新增、改价与移除;`remove=true` 继续表示软删除,禁止以必填 `operation_type` 替代或移除该字段,并补齐同价幂等、异价冲突和下级授权保护。【主:复杂写|不迁移:既有请求字段与响应结构依赖2.46】
- [ ] 2.48 `JULY-UR43` 映射原 Ticket 03交付首次/后续管理前端契约、`packages[].remove` 删除语义、OpenAPI/文档生成器与兼容部署检查;旧前端请求必须继续可用,不得要求与后端同批切换到新命令字段。【主API/Query 契约依赖2.46、2.47】
- [ ] 2.49 `JULY-UR47` 映射原 Ticket 01修复同一设备多当前卡并建立部分唯一约束异常数据先入清单。【主Infrastructure不迁移绑定历史依赖1.1】
- [ ] 2.50 `JULY-UR47` 映射原 Ticket 02交付语义化 `speed_level` 到账号/运营商渠道 `code` 的 Gateway Adapter、能力校验与 Integration Log。【主Port/Adapter不迁移自动限速依赖2.49】
- [ ] 2.51 `JULY-UR47` 映射原 Ticket 03交付统一资产手动限速 API设备解析当前卡区分不限速与 0kbps外部结果未知可恢复Audit Event 不属于本 Change 且不阻塞上线。【主ApplicationAdapter不迁移套餐限速依赖2.49、2.50】