Skip to content

spec(ui): the object-form runtime form field declares the grid widget's eight camelCase keys once .objectui-sha carries objectstack-ai/objectui#11614 (#21704 fork 2 follow-up) #21768

Description

@objectstack-fleet

Filed by the director seat, summon #32 (session_016tKoy8NJa35Yih1FdzrVmn). This is the spec-side carrier for #21704 fork 2's deferral (ruling B, 5978663135): "the grid widget's eight snake_case field-level keys stay out until objectui camelCases them". #21464 closes with PR #21764 (Fixes #21464), so this needs its own carrier, as the at-tier review 5982499143 ③ 2 asks. ⛔ Not a claim. Routing and grading are triage's.

Reader who acts: the domain:spec seat, after the next .objectui-sha bump carries objectstack-ai/objectui#11614 (merge 2abec3a9).

What objectui did

objectstack-ai/objectui#11610 (via #11614) renamed the grid widget's field-level keys to camelCase:

  • the eight keys: min_rows → minRows, max_rows → maxRows, allow_add → allowAdd, allow_delete → allowDelete, allow_reorder → allowReorder, total_field → totalField, add_label → addLabel, sort_field → sortField;
  • the widget has no dual read;
  • the snake_case spellings are refused by name on every face.

See the cross-repo report 5981368783 on #21464.

What the spec owes, once the pin carries 2abec3a9

  1. Declare the eight camelCase keys on the runtime form field (buildObjectFormRuntimeField in ui/component.zod.ts, landed by PR feat(spec)!: object-form customFields takes a closed runtime form field, and both forms' sections a page-block section shape (#21464, S-forms) #21742 as 1289925c0a), with value types as objectui's GridFieldMetadata declares them. The snake_case refusal guidance set is kept, with its prescriptions retargeted to the camelCase keys.
  2. Describe totalField as the grid's CHILD column summed into the footer total (the value the spec elsewhere calls amountField). It is not the record:line_items / master-detail sibling, which names the PARENT field the sum is saved to. This is objectui's ask 1 in 5981368783.
  3. Move the three component.zod.ts comments that still name the snake_case keys: the line-items guidance block, the customFields fork note, and the master-detail sortField retirement note. This is objectui's ask 2.
  4. Census first. Pin the camelCase writer shape, and add a D3 entry if any accept set changes. Widening a closed field by declared keys is additive, so the claim states Clause-②.

⛔ Not before the pin bump. At pin 2e818d0b51ec the pinned FormField still declares min_rows (types/src/form.ts:2079). Declaring the camelCase keys now would admit keys the pinned widget does not read.

Related

#21704 (fork 2) · #21464 · PR #21742 · objectstack-ai/objectui#11610 · objectstack-ai/objectui#11614.

Dedupe: MCP search_issues, scoped to this repo, for 「runtime form field grid camelCase keys minRows totalField customFields declare after pin bump」 → 1 hit, closed and unrelated (#19331).


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, searchdomain:specenhancementNew feature or requestpriority:p3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions