From 5273f194493e9314a018854e6b52df571b06f6cb Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 6 Oct 2026 19:58:31 +0000 Subject: [PATCH 1/2] chore(spec): quote the props-read sites of three ComponentPropsMap rows and raise ASSERTED_ANCHOR_FLOOR to 10 action:button and action:icon quote the first line of their runner-forward literal, element:definition-list quotes its readProps call, each re-read at objectui a58626c88 and spelled with its path so the assertion does not inherit the nearest preceding anchor's file. The floor rises by exactly those three. action:group, action:menu and element:repeater get no quote: their cited lines do not hold at that pin. Claude-Session: https://claude.ai/code/session_01GV6oYwgc1kWiUCb1YaprQ7 Co-authored-by: Claude --- .../scripts/check-objectui-pin-citations.ts | 17 +++++++++++++---- packages/spec/src/ui/component.zod.ts | 9 ++++++--- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/packages/spec/scripts/check-objectui-pin-citations.ts b/packages/spec/scripts/check-objectui-pin-citations.ts index 475df36004..2d4d3a3975 100644 --- a/packages/spec/scripts/check-objectui-pin-citations.ts +++ b/packages/spec/scripts/check-objectui-pin-citations.ts @@ -808,11 +808,20 @@ export function verifyAssertion( * `53ded82b` when that docblock's claim about the map renderer was corrected: * the two flatten sites and their whitelist, the renderer's own * `ObjectMapConfigSchema`, the `safeParse` and the spread beside it, and - * `LIST_VIEW_LOCAL_OVERRIDES`. 145 objectui anchors elsewhere in - * `packages/spec/src` still carry none — `--verify-anchors` prints that - * worklist. + * `LIST_VIEW_LOCAL_OVERRIDES`. + * + * The next three are the props-read sites of three `ComponentPropsMap` rows in + * `src/ui/component.zod.ts`, re-read at pin `a58626c88`: the + * `forwarded: ActionDef` literal of `action:button` and of `action:icon`, where + * the keys each row forwards to the runner are enumerated, and the `readProps` + * call of `element:definition-list`, whose type literal is that row's key set. + * The section's other three rows (`action:group`, `action:menu`, + * `element:repeater`) carry none yet: their cited lines do not hold at that + * pin, and a quote goes only beside a line that does. 418 objectui anchors in + * `packages/spec/src` still carry none, read against objectui `a58626c88` — + * `--verify-anchors` prints that worklist. */ -const ASSERTED_ANCHOR_FLOOR = 7; +const ASSERTED_ANCHOR_FLOOR = 10; // --------------------------------------------------------------------------- // self-test — the shapes, not the corpus diff --git a/packages/spec/src/ui/component.zod.ts b/packages/spec/src/ui/component.zod.ts index 83f4be81eb..5cc2ff2781 100644 --- a/packages/spec/src/ui/component.zod.ts +++ b/packages/spec/src/ui/component.zod.ts @@ -3418,7 +3418,8 @@ const ACTION_NODE_GUIDANCE = { * hoist makes `schema.params` the same object, so an array here is the input * list and an object is the static values. (A node-level object `params` * outside `properties` is ignored with a development warning.) - * - Forwarded to the runner (`:215-318`): `description`, `target`, `openIn`, + * - Forwarded to the runner (`action-button.tsx:215-318` first line + * `type: schema.actionType,`): `description`, `target`, `openIn`, * `method`, `bodyExtra`, `bodyShape`, `operation`, `patch`, * `confirmText`, `successMessage`, `errorMessage`, `refreshAfter`, * `undoable`, `recordIdField`, `locations`, `toast`, `resultDialog`, @@ -3532,7 +3533,8 @@ export type ActionButtonPropsParsed = z.infer; * `action:button`. `variant` — `:119`, `primary` mapped to `default`, * renderer default `ghost`. * - `params` — `:143-146`, routed exactly as on `action:button`. - * - Forwarded (`:160-211`): `actionType`, `name`, `target`, `openIn`, + * - Forwarded (`action-icon.tsx:160-211` first line + * `type: schema.actionType,`): `actionType`, `name`, `target`, `openIn`, * `method`, `bodyExtra`, `bodyShape`, `operation`, `patch`, * `confirmText`, `successMessage`, `errorMessage`, `refreshAfter`, * `locations`, `toast`, `resultDialog`, `onSuccess`, `objectName`. @@ -3997,7 +3999,8 @@ export type ActionMenuPropsParsed = z.infer; /** * `element:definition-list` — a compact key/value `
` * (`components/src/renderers/basic/data-list.tsx` at the pin). Props are read - * through `readProps` (`:42-47`, `properties` first). Read points: `items` + * through `readProps` (`data-list.tsx:42-47` first line + * `const props = readProps<{`, `properties` first). Read points: `items` * (`:48`), `columns` (`:49`), `inline` (`:63`), and per item `term` (`:66`) and * `description` (`:68`). * From ba23f992c726c7895ff05dec6875d3ae27b9f172 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 6 Oct 2026 20:02:01 +0000 Subject: [PATCH 2/2] chore(changeset): patch changeset for the three quoted read-point records The edited docblocks ship verbatim in @objectstack/spec (files[] carries src/**/*.zod.ts), so the comment-only change publishes text. Claude-Session: https://claude.ai/code/session_01GV6oYwgc1kWiUCb1YaprQ7 Co-authored-by: Claude --- .changeset/20471-component-row-anchor-quotes.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 .changeset/20471-component-row-anchor-quotes.md diff --git a/.changeset/20471-component-row-anchor-quotes.md b/.changeset/20471-component-row-anchor-quotes.md new file mode 100644 index 0000000000..0b337c0f46 --- /dev/null +++ b/.changeset/20471-component-row-anchor-quotes.md @@ -0,0 +1,16 @@ +--- +'@objectstack/spec': patch +--- + +Three `ComponentPropsMap` read-point records now quote the objectui line they cite + +Clause-②: no + +The docblocks of `action:button`, `action:icon` and `element:definition-list` in +`src/ui/component.zod.ts` each quote the first line of the row's props-read site, re-read +against objectui at the pin this package builds against (`a58626c88`): the runner-forward +literal of the two action blocks, and the `readProps` call of the definition list. A pin bump +that moves one of those lines, or changes it, now fails `check:objectui-pin-citations` and +names where the quoted line went, where before only the cited sha was checked. The other +three rows of that section (`action:group`, `action:menu`, `element:repeater`) carry no quote +yet. Comment text only: no schema, key, type or export changes.