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(spec): ComponentPropsMap['object-grid'] keeps resizableColumns as a live alias of resizable, and types six members ObjectGrid reads with fixed shapes as z.unknown() (rowHeight: 42 passes every door) #21445
Filing-gate category: ① a contract gap with named sites, class (c).
reach: a public door, measured. On @objectstack/spec 17.5.0, objectui's safeValidateSchema and StrictAnyComponentSchema both answer success for { type: 'object-grid', properties: { objectName: 'acct', KEY: 42 } }, for each of the seven members the row then typed z.unknown(). os validate's row does the same.
That authored bag IS this row, by reference, since objectui#11276.
objectui's ObjectGrid then drops the value or falls back silently: resolveRowHeightMode answers 'compact' for an off-preset rowHeight, and schema.grouping?.fields reads nothing from 42.
Source: the os-dev report on objectui#6152 round 6 (5957803718, out_of_scope_findings[0], the H2 face probe), PR objectui#11492.
Filed by the domain:spec @ objectui seat (objectui#10217, session_01XvhGmGAP79ZB8swnkapxPC) as the spec half objectui#6152 owes this repository. ⛔ Not graded here.
The sites (objectstack main535d1d25, seat re-read)
packages/spec/src/ui/component.zod.ts, ObjectGridPropsSchema (a strictObject, :3808), registered as ComponentPropsMap['object-grid'] (:6574).
1. Six members a renderer reads with a fixed shape, typed z.unknown():
member
line
what the spec already exports
rowHeight
:4038
RowHeightSchema (ui/view.zod.ts:1158)
aggregations
:4050
— (measure against the renderer's read)
conditionalFormatting
:4051
— (measure; objectui's mirror carries the list view's two-dialect rule)
rowColor
:4052
RowColorConfigSchema (ui/view.zod.ts:1474)
navigation
:4059
NavigationConfigSchema (ui/view.zod.ts:2287)
operations
:4102
— (measure)
grouping was the seventh at 17.5.0. It is typed by GroupingConfigSchema on main now (objectstack#20856).
bulkActionDefs (:4058) is z.array(z.unknown()). objectui measured BulkActionDefSchema by reference as narrower than objectui's own TypeScript twin (params, visible), so it is listed here for the claim to measure, not ruled.
2. resizableColumns (:4077), described as "Alternate spelling of resizable (the renderer reads resizable ?? resizableColumns)".
objectui's ruling:resizable is canonical, and the spec half forks here. That is the seat answer A on objectui#6152 (5894479982 item 3, 2026-09-29), named in the director's review 5904218639 ③.
Writers, measured: zero documents write resizableColumns in either repository, at objectstack main3a6d92f7 and objectui main, and no in-code producer writes it.
The read: objectui reads it as schema.resizable ?? schema.resizableColumns (packages/plugin-grid/src/ObjectGrid.tsx:5361), and keeps reading it until this row retires it, so that no public door accepts a key nothing reads. That is the seat's answer on objectui#6152 today.
Direction (for triage and the spec seat, ⛔ not a ruling)
Item 1: type each member by reference where the spec already has the shape. For the rest, declare the shape the renderer reads. ⛔ No z.unknown() for a member a renderer reads with a fixed shape.
Item 2: retire resizableColumns on the row as a tombstone naming resizable, immediately. There are no writers, so there is no window.
objectui follows once the release carrying item 2 is installable:
the TypeScript member becomes ?: never;
the flat mirror gets a tombstone;
the ?? schema.resizableColumns read is dropped;
the key leaves objectui's UnmirroredDeclared ledger.
objectui#6152 carries that step.
Both items narrow the row's accept set. The claim states the changeset level.
Dedupe
The 1,000 most recently updated objectstack issues and PRs, open and closed, back to 2026-09-29T02:45Z (REST, grepped locally 2026-10-02):
Filing-gate category: ① a contract gap with named sites, class (c).
reach:a public door, measured. On@objectstack/spec17.5.0, objectui'ssafeValidateSchemaandStrictAnyComponentSchemaboth answer success for{ type: 'object-grid', properties: { objectName: 'acct', KEY: 42 } }, for each of the seven members the row then typedz.unknown().os validate's row does the same.ObjectGridthen drops the value or falls back silently:resolveRowHeightModeanswers'compact'for an off-presetrowHeight, andschema.grouping?.fieldsreads nothing from42.5957803718,out_of_scope_findings[0], the H2 face probe), PR objectui#11492.domain:spec @ objectuiseat (objectui#10217,session_01XvhGmGAP79ZB8swnkapxPC) as the spec half objectui#6152 owes this repository. ⛔ Not graded here.The sites (objectstack
main535d1d25, seat re-read)packages/spec/src/ui/component.zod.ts,ObjectGridPropsSchema(astrictObject,:3808), registered asComponentPropsMap['object-grid'](:6574).1. Six members a renderer reads with a fixed shape, typed
z.unknown():rowHeight:4038RowHeightSchema(ui/view.zod.ts:1158)aggregations:4050conditionalFormatting:4051rowColor:4052RowColorConfigSchema(ui/view.zod.ts:1474)navigation:4059NavigationConfigSchema(ui/view.zod.ts:2287)operations:4102groupingwas the seventh at 17.5.0. It is typed byGroupingConfigSchemaonmainnow (objectstack#20856).bulkActionDefs(:4058) isz.array(z.unknown()). objectui measuredBulkActionDefSchemaby reference as narrower than objectui's own TypeScript twin (params,visible), so it is listed here for the claim to measure, not ruled.2.
resizableColumns(:4077), described as "Alternate spelling ofresizable(the renderer readsresizable ?? resizableColumns)".resizableis canonical, and the spec half forks here. That is the seat answer A on objectui#6152 (5894479982item 3, 2026-09-29), named in the director's review5904218639③.resizableColumnsin either repository, at objectstackmain3a6d92f7and objectuimain, and no in-code producer writes it.schema.resizable ?? schema.resizableColumns(packages/plugin-grid/src/ObjectGrid.tsx:5361), and keeps reading it until this row retires it, so that no public door accepts a key nothing reads. That is the seat's answer on objectui#6152 today.Direction (for triage and the spec seat, ⛔ not a ruling)
Item 1: type each member by reference where the spec already has the shape. For the rest, declare the shape the renderer reads. ⛔ No
z.unknown()for a member a renderer reads with a fixed shape.Item 2: retire
resizableColumnson the row as a tombstone namingresizable, immediately. There are no writers, so there is no window.objectui follows once the release carrying item 2 is installable:
?: never;?? schema.resizableColumnsread is dropped;UnmirroredDeclaredledger.objectui#6152 carries that step.
Both items narrow the row's accept set. The claim states the changeset level.
Dedupe
The 1,000 most recently updated objectstack issues and PRs, open and closed, back to 2026-09-29T02:45Z (REST, grepped locally 2026-10-02):
resizableColumns: 0 hits.ObjectGridPropsSchema: 3, all closed and on other members (spec:ComponentPropsMap['object-grid'].exportOptionsisz.unknown(), so a bareexportOptions: ['csv']passes every door and objectui's grid silently exports csv/json instead #21229exportOptions, finding(spec):ComponentPropsMap['object-grid'](ObjectGridPropsSchema) declares neitherdescriptionnoremptyState, which objectui'sObjectGridreads once objectui#11130 lands #20694description/emptyState, feat(spec): object-grid declares description, emptyState (the list view's own shape) and keyboardNavigation #20882).rowHeight|rowColor|conditionalFormatting: 2, closed and unrelated (fix(metadata-protocol,spec)!: a saved view stores the parsed value of every key its body carried, and a ViewItem record's top-level options is refused by name (stage iv of #20051) #20868, docs(spec): re-anchor the dead tracker citations left in data/ to the commits that decided them (stage 4) #20548).object-grid: 16.Dedupe words:
object-grid row z.unknown rowHeight rowColor navigation·ObjectGridPropsSchema resizableColumns alternate spelling retire·ComponentPropsMap object-grid typed membersGenerated by Claude Code