Skip to content

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

Description

@objectstack-fleet

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 main 535d1d25, 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 main 3a6d92f7 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):

Dedupe words: object-grid row z.unknown rowHeight rowColor navigation · ObjectGridPropsSchema resizableColumns alternate spelling retire · ComponentPropsMap object-grid typed members


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:recordsBusiness objects, records, the views that show data, usable forms, searchbugSomething isn't workingdomain:specpriority:p2Medium: important, M3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions