Blocked-by: #5020
Part of #4001 (战役后续批;由 #5020 的 needs_decision 分析派生,按 #5068 方向 A 的两步走裁定同轮立单)。
背景
#5020 把 react 页发布闸门接上 ChartAggregateSchema.safeParse(lint 侧,在飞)。但实测两个 schema 均为 STRIP 姿态 (chart.zod.ts:716 的 z.object().superRefine()、:691 的 object 分支;仓内常驻 pin「still STRIPS — deliberate」自证),所以 parse 接通后未知键仍被静默吞掉 —— groupby、dateGranularty 照旧丢弃。未知键闸门要成立,必须本单的 spec 侧收紧落地。过渡期缺口由 #5020 的 pin 测试 + 注释点名本单钉住。
范围
ChartAggregateSchema 与 ChartGroupBySchema 的 object 分支转 strictObject(战役标准件:具名 surface + 改名建议;两处的 [RETIRED]/别名纪律照战役惯例)。
⚠️ zod 4 联合分支消息塌缩 :ChartGroupBySchema 是 union,strict 分支的 unrecognized_keys 会被塌成顶层 invalid_union 的「Invalid input」—— ChartAggregateSchema 有活的承载键却没有任何 parse:react 页发布闸门手写重推了它的规则,未知键从不检查(#4001 批 15 的 no gate 首例) #5020 的 dev 已实测。lint 侧 ChartAggregateSchema 有活的承载键却没有任何 parse:react 页发布闸门手写重推了它的规则,未知键从不检查(#4001 批 15 的 no gate 首例) #5020 会先落解包逻辑,本单落地时用样本验证具名消息真的到达作者。
三处记录同步 (账本纪律「三处一起改或都不改」):chart.zod.ts 头部散文、chart.test.ts 两条「still STRIPS — deliberate」pin(本单落地时 pin 断言方向要反转)、台账行(ChartAggregateSchema 有活的承载键却没有任何 parse:react 页发布闸门手写重推了它的规则,未知键从不检查(#4001 批 15 的 no gate 首例) #5020 已把 no gate 翻 authorable,本单再翻 strict 位)。.counts.md 生成物走 gen:strictness-ledger 整体重算。
需要战役/维护者先答的一个产品问题
无分组单值图是否受支持形状? 现状三方不一致:schema 与已发布 react-blocks 类型都声明 groupBy 必填 ,而 objectui 渲染器兑现其缺席(ObjectChart.tsx:640 的 || schema.xAxisKey 兜底),spec 自己的 chartAggregateCategoryKey 文档也描述了无分组单行情形。#5068 裁决的条款「渲染器兑现的键先声明后设闸」在此适用:
关联
Blocked-by: #5020
Part of #4001(战役后续批;由 #5020 的 needs_decision 分析派生,按 #5068 方向 A 的两步走裁定同轮立单)。
背景
#5020 把 react 页发布闸门接上
ChartAggregateSchema.safeParse(lint 侧,在飞)。但实测两个 schema 均为 STRIP 姿态(chart.zod.ts:716的z.object().superRefine()、:691的 object 分支;仓内常驻 pin「still STRIPS — deliberate」自证),所以 parse 接通后未知键仍被静默吞掉 ——groupby、dateGranularty照旧丢弃。未知键闸门要成立,必须本单的 spec 侧收紧落地。过渡期缺口由 #5020 的 pin 测试 + 注释点名本单钉住。范围
ChartAggregateSchema与ChartGroupBySchema的 object 分支转strictObject(战役标准件:具名 surface + 改名建议;两处的[RETIRED]/别名纪律照战役惯例)。ChartGroupBySchema是 union,strict 分支的unrecognized_keys会被塌成顶层invalid_union的「Invalid input」——ChartAggregateSchema有活的承载键却没有任何 parse:react 页发布闸门手写重推了它的规则,未知键从不检查(#4001 批 15 的no gate首例) #5020 的 dev 已实测。lint 侧ChartAggregateSchema有活的承载键却没有任何 parse:react 页发布闸门手写重推了它的规则,未知键从不检查(#4001 批 15 的no gate首例) #5020 会先落解包逻辑,本单落地时用样本验证具名消息真的到达作者。ChartAggregateSchema有活的承载键却没有任何 parse:react 页发布闸门手写重推了它的规则,未知键从不检查(#4001 批 15 的no gate首例) #5020 已把no gate翻authorable,本单再翻 strict 位)。.counts.md生成物走gen:strictness-ledger整体重算。需要战役/维护者先答的一个产品问题
无分组单值图是否受支持形状? 现状三方不一致:schema 与已发布 react-blocks 类型都声明
groupBy必填,而 objectui 渲染器兑现其缺席(ObjectChart.tsx:640的|| schema.xAxisKey兜底),spec 自己的chartAggregateCategoryKey文档也描述了无分组单行情形。#5068 裁决的条款「渲染器兑现的键先声明后设闸」在此适用:groupBy声明为 optional(本单一并做),ChartAggregateSchema有活的承载键却没有任何 parse:react 页发布闸门手写重推了它的规则,未知键从不检查(#4001 批 15 的no gate首例) #5020 的 warning 级容忍随之转正;ChartAggregateSchema有活的承载键却没有任何 parse:react 页发布闸门手写重推了它的规则,未知键从不检查(#4001 批 15 的no gate首例) #5020 的 warning 升 error。关联
ChartAggregateSchema有活的承载键却没有任何 parse:react 页发布闸门手写重推了它的规则,未知键从不检查(#4001 批 15 的no gate首例) #5020(lint 侧 parse,先行)、SDUI 组件 props 没有解析闸门:PageComponent.properties是开放 record,ComponentPropsMap的 29 个站点从不被 parse(#4001 批 17 的 no gate 判定) #5068(同类同日裁决,方向 A 先例)、未知键静默剥离仍是全仓默认:把 #3405 的 strict 收紧从一个 schema 推广到整个可授权面(ADR-0078 完整性闸门) #4001(战役)、datasource 账本判定的 20 条死键至今无人处置:三个块整块无人读,其中 readOnly 让一个 shipped 示例的「只读副本」可写(ADR-0049 enforce-or-remove) #4583(精确校验的死槽位 —— 本单是其反面:先接 parse 再收紧,不造「读起来像闸门」的空壳)