Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
覆盖 bfc10966e(PR #8177)对 BatchStaffConfigReqVO.scopeRoles 加的元素级 @NotBlank,两条对外可见变化: 1. [null] 由「HTTP 200 静默空操作」改为 code:400。旧行为是静默失败—— @Pattern 对 null 恒为 true 让它穿过校验层,整位守卫 touched 恒 false 不抛,删除窗口 {null} 命中 0 行、插入集合为空,于是库里一行没动却返 200。 2. [""] / [" "] 的 message 由一条变两条以 "; " 拼接。两条约束并列触发、 不是后者替换前者;拼接顺序不保证,已在正文写明前端不得按顺序或按精确 相等解析 message。 证据:网关活体实测四组(含一组阴性对照,证明 400 不是端点无差别返回), 部署三条独立判据(merge-base 祖先关系 + jar mtime + 活体行为)。 覆盖边界:本份只覆盖 scopeRoles 字段的入参校验契约。 顺带记一处已知缺口:Swagger 请求侧 staffList[].staffRole 的取值域文案只列 了 5 个角色,实际 @Pattern 放行 8 个(后 3 个由 #7079 引入),正文第六.5 节 以 STAFF_ROLE_PATTERN 常量为准写全。 Refs #8150 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>