在 #5712(services 半边落地)实现中读码发现,按 Prime Directive #10 立案。不在 #5712 完成范围内(该单只涉 valueDomain 族;本单是 pattern 族的门间不对称)。
事实(origin/main,settings-service.ts effectiveEnvOverride)
env 门逐族核对的声明约束是:option 表(#5131/#5204)、值窗/步进(#5932/#6199)、以及 #5712 落地后的 valueDomain。pattern 不在其中——它只在写入门 validatePatch 执行(invalid_format)。
后果:一个只声明 pattern 的键,PUT /api/settings/:ns 拒绝的值,经 OS_* 覆盖照样生效并置顶 cascade(locked: true)。在库实例:
这正是 #5204 的原始形状(「同一比较只有一扇门在做」),#5932 triage 当时裁定 env 半边必须复用同一判定点——pattern 是唯一漏下的声明族。
修法建议
validatePatch 的 pattern 分支提为共享判定(或在 RegisteredManifest 预编译 per-key RegExp),effectiveEnvOverride 同点复用,拒收走既有 reportRejectedEnvOverride(响亮 error + 回落,#5204 契约)。注意与既有分支同款宽容:无效 RegExp 声明 = 无可执行(不拒写)。
未核实项:是否有真实部署依赖「env 值绕过 pattern」——与 #5204 当时同样的迁移面问题,triage 时值得过一眼。
在 #5712(services 半边落地)实现中读码发现,按 Prime Directive #10 立案。不在 #5712 完成范围内(该单只涉
valueDomain族;本单是pattern族的门间不对称)。事实(origin/main,
settings-service.tseffectiveEnvOverride)env 门逐族核对的声明约束是:option 表(#5131/#5204)、值窗/步进(#5932/#6199)、以及 #5712 落地后的
valueDomain。pattern不在其中——它只在写入门validatePatch执行(invalid_format)。后果:一个只声明
pattern的键,PUT /api/settings/:ns拒绝的值,经OS_*覆盖照样生效并置顶 cascade(locked: true)。在库实例:company.country(^[A-Za-z]{2}$):OS_COMPANY_COUNTRY=ZZZ生效,同值走 API 被invalid_format拒;localization.default_country在 localization 的 timezone / currency 用「策展式 options 表」当穷尽执行边界:合法的 IANA 时区与 ISO 4217 币种被拒 #5712 落地后有valueDomain兜住成员资格,但 pattern 族的门间不对称本身仍在(任何仅 pattern 键复现)。这正是 #5204 的原始形状(「同一比较只有一扇门在做」),#5932 triage 当时裁定 env 半边必须复用同一判定点——
pattern是唯一漏下的声明族。修法建议
validatePatch的 pattern 分支提为共享判定(或在RegisteredManifest预编译 per-keyRegExp),effectiveEnvOverride同点复用,拒收走既有reportRejectedEnvOverride(响亮 error + 回落,#5204 契约)。注意与既有分支同款宽容:无效 RegExp 声明 = 无可执行(不拒写)。未核实项:是否有真实部署依赖「env 值绕过 pattern」——与 #5204 当时同样的迁移面问题,triage 时值得过一眼。