docs(changelog): #7442 PR-C2 受控重开窗口 + 三份补部署清单与 dispatch-baseline 条目
changelog-filename-gate / validate (push) Failing after 2s

新增 PR-C2 那份(受控重开窗口 + 计划刷新状态收口),并给三份都补了此前缺的
「部署清单」一节 —— AC-19 ③ 逐字要求部署约束写进 PR 正文与 changelog,
实测 PR 正文有、三份 changelog 全文零命中。

滚动顺序逐 PR 分别分析,没有照抄同一份危险描述:
- PR-C2:🔴 逆序会静默退化 —— order-v3 先滚,旧 fleet 收到 dispatchable=true
  直接放行重配,而它不读 reconfigureWindow、不校验令牌与范围,两端日志都正常、
  没有任何报错。所以 fleet 必须先于 order-v3。
- PR-A / PR-C1:两个方向都不静默出错(fleet 先滚会整体报 602009,是明确错误码
  不是静默放行),如实写清与 PR-C2 的区别。

同时补记 GET /v3/internal/group-batch/{id}/dispatch-baseline —— 对 origin/dev-v3
查证,该端点响应体被 #7442 改过两次(8eb8e13cd 加四字段、c6aa1224f 加
reconfigureWindow),三份 changelog 此前都漏记。

三份都带上了「别按直接 pom 依赖查消费方」的警告:grep -rl 'hl-common-core' */pom.xml
只命中 gateway 与 hl-finance,其余六个服务经 hl-common-web / hl-starter-* 传递引入,
照那份清单部署漏掉的恰恰是本单真正改了的 order-v3 与 fleet。

Refs #7442

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
这个提交包含在:
API Changelog Bot
2026-09-19 02:42:19 +08:00
共同撰写人 Claude Opus 5
父节点 00a6f15b91
当前提交 1c0439c44a
共修改 3 个文件,包含 862 行新增和 0 行删除
@@ -370,6 +370,36 @@ POST /v3/internal/group-batch/1934567890123456800/vehicle-ready-reset
---
## 部署清单(本单改了 hl-common-core,CODE_RULES §16.6)
本单在 `hl-common-core` 新增两个全新 DTO:`GroupBatchVehicleReadyReqDTO`(就绪回调两级判定身份)、
`GroupBatchVehicleReadyRespDTO`(两级判定结果)。order-v3 是这两个端点(`vehicle-ready`/`vehicle-ready-reset`)
的提供方,fleet 是发起方(调用方)。
### 滚动顺序分析:本单两个方向都不静默出错,但"order-v3 先滚"能让保护提前生效
- **order-v3 先滚**:order-v3 的端点方法签名新增了一个 `@RequestBody(required = false)` 参数,此时 fleet
还是旧版、调用时**不带任何请求体**(旧代码逻辑本就没有这个概念)——`req == null` 命中 legacy 路径,
行为与改动前逐字一致,**安全**;等 fleet 也滚上去开始携带身份后,两级判定立刻对新产生的回调生效。
- **fleet 先滚**:fleet 开始在请求体里携带 `requirementId`/`requirementVersion`/`planVersion`,但旧版
order-v3 的端点方法签名**根本没有声明接收请求体的参数**——Spring 对声明之外的请求体内容视而不见,
不会报错也不会解析失败,等价于"这个请求体被忽略了",order-v3 仍按改动前的无身份逻辑处理。**净效果**:
两级判定这项保护在这段过渡期内**还没有生效**(旧漏洞——乱序/旧版回调污染就绪状态——仍然存在),
但不会比改动前更糟,也不会报错或崩溃。
- **结论**:两个方向都不会比"改动前"更差,区别只是"保护何时开始生效"。**仍建议同批滚**,让两级判定
尽快对新回调生效,避免过渡期内继续吃"旧漏洞"的亏。
### 消费方清单不能按 `pom.xml` 直接依赖关系查
理由与判据同 `19_7442_团期配车受控重开窗口计划刷新状态收口-新增接口-管理后台.md`「部署清单」节——
`grep -rl 'hl-common-core' */pom.xml` 只命中 `hl-gateway`/`hl-finance`,order-v3 与 fleet 都经
`hl-common-web` 传递引入,不在直接依赖清单里,但正是本单真正改了代码的两个服务。
⇒ **实际部署单位共 7 个**:gateway / user / resource / product-v2 / order-v3 / mp / fleet;本单不强制
要求特定先后顺序,但**同批滚**仍是最稳妥的做法。
---
## 七、不影响范围
- **仅影响**: fleet→order-v3 的就绪回调链路(两个内部端点)