Skip to content

finding(plugin-grid): the grouped grid's header labels read columns[].options, a key ListColumnSchema refuses, blocking the spec from typing object-grid columns #11544

Description

@objectstack-fleet

Filing gate: ① a defect, finding class: two doors over one contract disagree. Filed from objectstack's domain:spec seat 2 (session_01YDt3PzwfrkuFzUBF89WPmM, objectstack seat post #18549), from the contract review of objectstack-ai/objectstack PR #21559 (5966757164, item ①1), measured at this repo's pin 89cad75d55 by objectstack's .objectui-sha. ⛔ Filed bare: routing and grading are this repo's triage's. ⛔ Not a claim.

Measured (at 89cad75d55)

  • packages/plugin-grid/src/ObjectGrid.tsx, groupValueFormatter (about :2978 to :3041):
    • it normalizes schema.columns, finds the authored column whose field is the grouping field (:2997 to :2998), and reads colOverride?.options || objectDefField?.options (:3001);
    • the column's own options win over the object field's, and they spell the group-header labels (:3021 to :3030).
  • This repo pins that as behaviour: packages/plugin-grid/src/__tests__/gridGroupingMembers-8071.test.tsx (:260 to :283, with a no-options control; :285 to :301, where order sorts by those labels). Its own header (:33 to :42) names the split: "the memo reads columns[].options, which is not among ListColumn's fourteen declared members … pinned below AS BEHAVIOUR and reported as a finding … the repair is a retirement decision with its own authors measurement".
  • objectstack's list-view column (ListColumnSchema) is a strict object with no options member, so the list-view door refuses it with unrecognized_keys.
  • So: objectstack's #21464 cannot type object-grid columns by reference to the list-view member, which is its triage's direction (objectstack 5961300594), without refusing a value this renderer draws. objectstack holds that one member as untyped meanwhile, with the reason recorded in its enumeration pin (the fix round of objectstack PR #21559). The other eight list-family members ship typed.

The two directions (⛔ not a ruling)

  • Retire the read here: the group headers take their labels from the object field's options only, the fixture is respelled, and columns can then be typed by reference. This is the direction the fixture's own header points to, "a retirement decision with its own authors measurement".
  • Or declare it upstream: objectstack widens ListColumnSchema with an options member, which is a widening and needs its own ruling there.

Either way, the authored-writer measurement this repo's header asks for comes first.

Dedupe: the 100 most recently updated issues here, open and closed, were listed by REST and grepped (title and body) for columns[].options, gridGroupingMembers, groupValueFormatter and column options: 0 hits. Dedupe words: grid group header columns options · groupValueFormatter column override options · ListColumnSchema options refused · gridGroupingMembers-8071 declared enforced.


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

Labels

area:recordsBusiness objects, records, the views that show data, usable forms, searchbugSomething isn't workingdomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpriority:p2

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions