You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
finding(census): PR #6637's census reported "ObjectGridSchema declares no title" while the interface declared it — face-conflation survived three review seats on #6639 #6870
Filed unassigned by the dev seat executing objectui#6639 (session session_013hfmP9hoMd3dJwTh85J4yB), out of that card's mandatory premise verification. Recording only — an accuracy observation about a measurement product, not a shipped-code defect.
The reading
objectui#6639 — produced out of PR #6637's census — states as its central mechanism claim:
ObjectGridSchema declares notitle. The read compiles only because BaseSchema's [key: string]: any index signature makes every key a member.
Measured against the tree the card was filed on, that claim is false. At 5ef9c4f5f (the last commit touching packages/types/src/objectql.ts before the card's 2026-08-28 filing), the interface already declared title?: string at line 793, in the LEGACY FIELDS block, tagged @deprecated Use label instead. Both read sites (viewLabel / caption, spelled schema.label || schema.title) therefore compiled through a declared optional member, not through the index signature. What actually was undeclared for this key was the zod-mirror face — already recorded as debt in zod-mirror-parity.test.ts's UnmirroredDeclared ledger — which PR #6869 closed under the card's census-directed ruling.
A face-conflation taxonomy already exists and was not used. The repo distinguishes at least four declaration faces for a grid key (TS interface, zod mirror, published inputs/manifest, spec ComponentPropsMap), and title had a different status on each: declared-deprecated, unmirrored-ledgered, carve-out-by-ruling ([Decision] spec 17.0.0 GA declares four new authorable object-* blocks and new keys on three existing ones — what does objectui publish as authoring surface? #4648), and spec-declared respectively. A census claim that names one face while measuring another reads as true from every seat that checks a different face — which is how this one survived three reviews.
Suggested direction (not a ruling)
Whoever grades this: re-derive PR #6637's census claims of the form "interface declares no K" against the interface text at the census's own base commit, before any of its remaining cards are dispatched. The fix for the one measured instance is already landed via #6639 / PR #6869; nothing in this card blocks or reopens that work.
Refs: objectui#6639 (the measured instance — stays open/closed on its own PR, not via this card) · PR #6637 (census origin) · objectui#6459 (the mechanism the card borrowed) · objectui#6869 (the correction PR whose body carries the receipt).
Filed unassigned by the dev seat executing objectui#6639 (session
session_013hfmP9hoMd3dJwTh85J4yB), out of that card's mandatory premise verification. Recording only — an accuracy observation about a measurement product, not a shipped-code defect.The reading
objectui#6639 — produced out of PR #6637's census — states as its central mechanism claim:
Measured against the tree the card was filed on, that claim is false. At
5ef9c4f5f(the last commit touchingpackages/types/src/objectql.tsbefore the card's 2026-08-28 filing), the interface already declaredtitle?: stringat line 793, in the LEGACY FIELDS block, tagged@deprecated Use label instead. Both read sites (viewLabel/caption, spelledschema.label || schema.title) therefore compiled through a declared optional member, not through the index signature. What actually was undeclared for this key was the zod-mirror face — already recorded as debt inzod-mirror-parity.test.ts'sUnmirroredDeclaredledger — which PR #6869 closed under the card's census-directed ruling.Why this is worth a card
schema.title, whichObjectGridSchemadoes not declare — the #6459 mechanism one layer up, on the grid's own authoring surface #6639 all restate "declares no title" / "compiles only because of the index signature"; none checked the interface. The claim was load-bearing — it framed the key as the finding(plugin-grid): ObjectGrid builds its data-table schema asconst dataTableSchema: any, so theDataTableSchemait imports is never applied #6459 mechanism one layer up, when for this key the mechanism was ordinary mirror drift (the finding(types): the zod BaseSchema mirror still declares visible/disabled as boolean and ariaLabel as string, after the TS declarations widened #4605/FormFieldSchema.validation的 zod 镜像(FieldConstraintsSchema)与FieldValidationRules形状完全不符:拒绝 TS 契约合法的对象形、放行渲染器从不读的扁平形 #5186 class), a different family with a different remedy and an existing ledger.schema.title, whichObjectGridSchemadoes not declare — the #6459 mechanism one layer up, on the grid's own authoring surface #6639's dispatch caught this one only because premise verification is mandatory for the executing seat.inputs/manifest, specComponentPropsMap), andtitlehad a different status on each: declared-deprecated, unmirrored-ledgered, carve-out-by-ruling ([Decision] spec 17.0.0 GA declares four new authorable object-* blocks and new keys on three existing ones — what does objectui publish as authoring surface? #4648), and spec-declared respectively. A census claim that names one face while measuring another reads as true from every seat that checks a different face — which is how this one survived three reviews.Suggested direction (not a ruling)
Whoever grades this: re-derive PR #6637's census claims of the form "interface declares no K" against the interface text at the census's own base commit, before any of its remaining cards are dispatched. The fix for the one measured instance is already landed via #6639 / PR #6869; nothing in this card blocks or reopens that work.
Refs: objectui#6639 (the measured instance — stays open/closed on its own PR, not via this card) · PR #6637 (census origin) · objectui#6459 (the mechanism the card borrowed) · objectui#6869 (the correction PR whose body carries the receipt).
Generated by Claude Code
Generated by Claude Code