Repository navigation
Closed
Labels
domain:specDomain lane — seat card indexed by label:pm:seatDomain lane — seat card indexed by label:pm:seatpm:dispatchedDispatched to a dev agent by /pm-dispatchDispatched to a dev agent by /pm-dispatchtarget:v17Release blocker for v17 — on the board until fixed, dropped as no longer valid, or accepted for GARelease blocker for v17 — on the board until fixed, dropped as no longer valid, or accepted for GAtoolingFix lands in tooling, not a product package — enters pm:queue only with Unblocks: or a named surfaceFix lands in tooling, not a product package — enters pm:queue only with Unblocks: or a named surface
Description
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 裁决的条款「渲染器兑现的键先声明后设闸」在此适用:
- 若受支持 → schema + react-blocks 类型把
groupBy声明为 optional(本单一并做),ChartAggregateSchema有活的承载键却没有任何 parse:react 页发布闸门手写重推了它的规则,未知键从不检查(#4001 批 15 的no gate首例) #5020 的 warning 级容忍随之转正; - 若属债 → objectui 侧收紧渲染器另立单,
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 再收紧,不造「读起来像闸门」的空壳)
Metadata
Metadata
Assignees
Labels
domain:specDomain lane — seat card indexed by label:pm:seatDomain lane — seat card indexed by label:pm:seatpm:dispatchedDispatched to a dev agent by /pm-dispatchDispatched to a dev agent by /pm-dispatchtarget:v17Release blocker for v17 — on the board until fixed, dropped as no longer valid, or accepted for GARelease blocker for v17 — on the board until fixed, dropped as no longer valid, or accepted for GAtoolingFix lands in tooling, not a product package — enters pm:queue only with Unblocks: or a named surfaceFix lands in tooling, not a product package — enters pm:queue only with Unblocks: or a named surface
Activity
os-zhuang commentedon Aug 6, 2026
分诊(spec 车道欠账代扫,维护者 2026-08-05 指令):挂
pm:blocked(正文已有Blocked-by: #5020,解锁 sweep 据此回捡)。#5020 落地后本单即为 #4001 战役标准件,可直接派发;正文内嵌的产品问题(无分组单值图是否受支持形状)按 #5068 方向 A 先例随实施轮解答,两个分支的处置都已写明,不单独进决策箱。不构成认领。会话:session_01N3uGFF8teXbpgtbEJ1aYXuGenerated by Claude Code
os-zhuang commentedon Aug 6, 2026
解锁(维护者 2026-08-06 指出 + 核实):
Blocked-by: #5020已解除——#5020 于 2026-08-05 20:43Z 关闭(completed,devx 车道落地)。摘pm:blocked回pm:queue,归 spec 座位可派。派发提示:① 先核 #5020 落地后 lint 侧解包逻辑与 warning 级容忍的实际形状,正文的「过渡期缺口」描述以合并后代码为准;② 内嵌产品问题(无分组单值图)按正文两分支处置走,schema 侧结论在实施轮给出即可;③ zod 4 union 消息塌缩的样本验证(正文范围 2)勿省。会话:session_01N3uGFF8teXbpgtbEJ1aYXuGenerated by Claude Code
feat(lint): the react-page publish gate PARSES ChartAggregateSchema (o…
hotlong commentedon Aug 7, 2026
Release-board audit (maintainer-directed re-audit of non-board
domain:specitems, 2026-08-07): addingtarget:v17— metadata-protocol change, size S, low-risk: STRIP→strictObjecttightening of ChartAggregate/ChartGroupBy per the #4001 campaign standard; unblocked (#5020 landed) and the groupBy-optional question has both branches pre-ruled. Batch with #5593. Maintainer directive: protocol changes land in v17 unless large/risky. Triage seat may veto.Generated by Claude Code
fix(lint): the react-prop-deprecated warning states its reason in wor…
test(spec): the first ui/ file group's test titles state each cited d…