Skip to content

Commit 30b0990

Browse files
claude[bot]claude
andauthored
chore(console): bump the objectui pin to 53ded82bf7a4 — the shipped console lowers array analytics filters (#16788)
* chore: bump objectui to 53ded82bf7a4 fix(data-objectstack): lower an array analytics filter through parseFilterAST before the wire (#7752) (#7754) objectui@53ded82bf7a494f54e344e19099dbf00854b8694 * chore(changeset): answer the ADR-0087 disposition for the 53ded82bf7a4 pin bump Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012GKcPZbMoGq7WPzKLfRBTU * chore(console): re-measure the objectui pin citations and regenerate the pin-bump artifacts Re-derived every asserting `.objectui-sha` citation at 53ded82bf7a4 rather than swapping the sha (#10274): 12 citations across 4 spec sources. Three cited objectui files changed over the range and their anchors MOVED; the rest were re-READ at the new pin rather than carried on byte-identity. Regenerated the two pin-derived records: scripts/sdui-manifest.record.json and packages/sdui-parser/objectui-lockstep.json. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012GKcPZbMoGq7WPzKLfRBTU * chore(changeset): state the bump's real write set in the ADR-0087 disposition The disposition claimed the diff was `.objectui-sha` plus the changeset and nothing else. It is not: the four packages/spec/src pin-citation sources and the two generated pin records are in it too. A changeset ships verbatim to the published CHANGELOG, so a published artifact must not misdescribe its own diff. The operative clause is unchanged and still true — no schema, no authorable metadata key, no protocol surface — and the disposition stays `not-required (no-migration-prescription)`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012GKcPZbMoGq7WPzKLfRBTU --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent 094b8fd commit 30b0990

8 files changed

Lines changed: 127 additions & 59 deletions

File tree

.changeset/console-53ded82bf7a4.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
---
2+
"@objectstack/console": minor
3+
---
4+
5+
Console (objectui) refreshed to `53ded82bf7a4`. Frontend changes in this range:
6+
7+
Derived from the changesets objectui declared over the range — 23 releasing of 28 changesets added across 34 non-merge commits; omitted: 5 release-nothing changesets, 7 commits carrying no changeset (they ship no package code).
8+
9+
- **minor** — Array filters on analytics aggregates were posted un-lowered and refused by the runtime with 400; they are now lowered to the canonical `FilterCondition` before the wire. (objectui `53ded82bf`)
10+
- **minor** — Retire `ChatbotSchema.displayMode` — and its copy on `ChatbotFloatingSchema` — as an ADR-0049 retirement tombstone, and remove the `chatbot-floating` registration's "Display Mode"… (objectui `3e377c931`)
11+
- **minor**`ChartDataSeriesSchema` (and its TS twin `ChartDataSeries`) now REFUSES `chartType` on a chart series BY NAME and points at `type` — the renderer-internal spelling the non-strict… (objectui `caf477fa8`)
12+
- **minor**`DataScopeManager` now **denies** a row when a row-level scope rule carries an operator its evaluator does not implement. It used to **admit** the row. (objectui `83c77dc30`)
13+
- **minor** — One home for the `datetime` display convention (objectui#7443). (objectui `81a2eb1fb`)
14+
- **minor****`BaseSchema.visible` / `.hidden` / `.disabled` now declare the CEL envelope object the renderer already evaluates, as one named wire type** (objectui#7530, maintainer ruling 202… (objectui `c354ce5db`)
15+
- **minor****Breaking for authored metadata:** `MarkdownSchema.sanitize` and `MarkdownSchema.components` are RETIRED (objectui#6972, ADR-0049 enforce-or-remove). A `markdown` node that autho… (objectui `446d93d4e`)
16+
- **minor** — One named, importable authoring-face type per `plugin-chatbot` registration: `ChatbotEnhancedSchema` and `ChatbotFloatingSchema` join `ChatbotSchema` (objectui#7655, under the obj… (objectui `4ce14f125`)
17+
- **minor** — Six user-visible fixes across the maker surface, the assistant rail and the dataset captions. (objectui `64dae8e71`)
18+
- **minor**`DrillDownConfigSchema` is the zod mirror of `DrillDownConfig`, and both declarations that carry `drillDown` reference it — `ChartSchema` (`zod/data-display.zod.ts`) and `ObjectDa… (objectui `52c8cf741`)
19+
- **minor**`ObjectGallerySchema` and `ObjectDataTableSchema` are members of `ObjectQLComponentSchema` on both faces — the TS union in `objectql.ts` and the zod union in `zod/objectql.zod.ts`… (objectui `52c8cf741`)
20+
- **minor**`ChartDataSeriesSchema` (and its TS twin `ChartDataSeries`) declares the six series keys the renderer reads — `label`, `variant`, `opacity`, `dashArray`, `stack`, `yAxis` — which… (objectui `8fe8e5c16`)
21+
- **minor**`AlertDialogSchema` now declares the four keys the `alert-dialog` renderer actually reads (objectui#7104): `content` (the dialog body, `SchemaNode | SchemaNode[]` like every sibli… (objectui `8ad218d58`)
22+
- **minor****BREAKING**`SchemaRegistry['kanban']` stops describing a component it cannot name (objectui `bc640ec56`)
23+
- **minor** — One authority per exported type name, batch 3 of objectui#6349: `ComboboxOption`, `NamedActionDef`, `OrgTranslate`. (objectui `6e8863093`)
24+
- **minor****Removes two published exports.** Retire the `MobileResponsiveConfig` and `GestureConfig` types (objectui#7519, ADR-0049 enforce-or-remove). Both names are deleted from `@object-… (objectui `51eb51558`)
25+
- **minor** — Retire `FloatingChatbotConfig.triggerIcon` (objectui#7654, ADR-0049 enforce-or-remove). (objectui `a3eb5d07a`)
26+
- **minor** — One shared record-source ladder, five plugins delegate (objectui#7632). (objectui `ce2aaefe1`)
27+
- **patch** — The published `@default` documentation on two `layout.ts` members now matches the value the renderer actually applies. `ContainerSchema.maxWidth` documented `'lg'` while `containe… (objectui `e546222b3`)
28+
- **patch** — Declare `avatar` and `avatarFallback` on `ChatMessage`, on both faces (objectui#7295 — the residue of objectui#4424, whose `RuntimeOnlyMessageKeys` named only the three keys API m… (objectui `858cd72e3`)
29+
- **patch**`ClassNameStylePropsSchema` describes itself by its two keys (objectui#7578). (objectui `9587fc959`)
30+
- **patch** — Declare `wrapperClass` on `CheckboxSchema`, on both faces (objectui#6938 — the residue of that card; its `context-menu` half landed with objectui#6939 group 1). (objectui `b74a8598d`)
31+
- **patch** — The standalone runner renders `AppAction.items` from its declared type only, which makes `AppActionSchema.onClick`'s retirement message true again (objectui#6854, maintainer rulin… (objectui `adb2a86db`)
32+
33+
⚠️ 2 of these carry a breaking change: 2 by the author's own breaking annotation in the changeset body — objectui declares no `major` inside a launch window (`scripts/check-changeset-no-major.mjs`). Each is marked **BREAKING** in the list above — read them before compiling the release record.
34+
35+
**In this console build, declared nowhere** — objectui merged 7 commits in this range with no `.changeset/*.md`. The code is inside the pin above and ships here, but nothing upstream declared them, so they appear in no objectui CHANGELOG and in no entry above. Listed by subject rather than counted, because a count cannot tell a dependency bump from a form-behaviour change (objectstack#6174); the upstream gate that would prevent this is objectui#3387.
36+
37+
- _(no changeset)_ fix(hooks): read the edited path from the key the routed tool carries (#7686) (objectui `565f2b6aa`)
38+
- _(no changeset)_ fix(schema-catalog): drop the undeclared `variant` key from the dropdown-menu Delete item (#7717) (objectui `f96a781c8`)
39+
- _(no changeset)_ fix(hooks): an escaped quote inside a double-quoted word does not close it (#7695) (objectui `6eebc54b6`)
40+
- _(no changeset)_ docs(skills): correct six wrong shipped-API facts in the published objectui guides (#7677) (objectui `ab771d2dd`)
41+
- _(no changeset)_ docs(skills): record ComponentInput's five ADR-0049 tombstones in the plugin guide (objectui#7636) (#7647) (objectui `09163884f`)
42+
- _(no changeset)_ docs(agents): state the changeset gate's full population, not `src/` alone (#7640) (objectui `0b1e39d4a`)
43+
- _(no changeset)_ docs(charts): rewrite the inline-series chart examples into the model the renderer implements (#7679) (objectui `d3f5256ce`)
44+
45+
<!-- adr-0087: not-required (no-migration-prescription) All TWO declared-breaking entries in the range `a472b07167a3...53ded82bf7a4` are judged ONE AT A TIME against `packages/spec`'s authorable surface at this HEAD, re-measured here rather than quoted from upstream prose. (1) objectui `446d93d4e` (objectui#6972) retires `MarkdownSchema.sanitize` and `MarkdownSchema.components` as ADR-0049 tombstones on objectui's OWN SDUI `markdown` node. That node is not an ObjectStack-authorable component: `MarkdownSchema` has ZERO occurrences under `packages/spec`, its single hit anywhere in `packages/` being one line of published history in `packages/console/CHANGELOG.md`; and `sanitize` occurs ZERO times as an authored key in `packages/spec/src` — its five textual hits are a namespace-charset helper, two SQL-injection docblocks and one `view.zod.ts` refusal message, none of them a schema member. The `markdown` spelling this repo DOES declare is a data FIELD type (`packages/spec/src/data/field.zod.ts:2263`, `data/field-value.zod.ts:58`) — a long-text field kind that carries neither retired key. No accepted ObjectStack key moves and no stored `sys_metadata` row can carry either spelling. (2) objectui `bc640ec56` (objectui#7645) narrows the VALUE side of one entry in `@object-ui/types`' `SchemaRegistry` type map to `BaseSchema & { type: 'kanban' }`; upstream states `keyof SchemaRegistry` and the published `ComponentType` union are unchanged. This repo's own `SchemaRegistry` shares the NAME and nothing else — all 16 files matching it under `packages/spec/src` are ObjectStack's metadata-registry contract surface (`contracts/metadata-service.ts`, `contracts/objectql-engine.ts`'s `EngineSchemaRegistryView`, the error-code ledger), never objectui's component-type map, and `packages/spec/src` imports from `@object-ui/*` ZERO times. `KanbanSchema` has 2 occurrences under `packages/spec/src` and BOTH are prose — a comment at `ui/component.test.ts:2783` and a docblock at `ui/component.zod.ts:2679` — neither a declaration nor an import. Neither entry is reachable through `@objectstack/console` in any case, re-measured against `packages/console/package.json` at this HEAD: it publishes a frozen prebuilt SPA whose `files` list is ["dist", "README.md", "CHANGELOG.md"], whose sole `exports` entry is `./package.json` and whose `dependencies` are empty, so it forwards no `@object-ui/*` module entry point and re-exports none of these types; and no `package.json` in this workspace declares an `@object-ui/*` dependency at all (0 files, re-measured). This diff is `.objectui-sha`, this changeset, the four `packages/spec/src` sources whose objectui pin CITATIONS the bump refreshes — comment-only, and measured so: the base and head versions of all four compile to AST-identical output under TypeScript with `removeComments`, which string literals survive, so no describe text, alias or tombstone literal moved — and the two generated pin records the bump gates require (`scripts/sdui-manifest.record.json`, `packages/sdui-parser/objectui-lockstep.json`). No `packages/spec` schema, no authorable metadata key and no protocol surface changes in it — so there is no stored-metadata rewrite for `objectstack migrate meta` to prescribe and therefore no ADR-0087 ledger entry to write or to name from THIS bump. This bump adds no ledger entry and claims none. -->
46+
47+
objectui range: `a472b07167a3...53ded82bf7a4`

.objectui-sha

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
a472b07167a39e55491109e864bb5a54027dcfbd
1+
53ded82bf7a494f54e344e19099dbf00854b8694

packages/sdui-parser/objectui-lockstep.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
],
77
"objectui": {
88
"repo": "https://github.com/objectstack-ai/objectui.git",
9-
"rev": "a472b07167a39e55491109e864bb5a54027dcfbd",
10-
"revDate": "2026-09-04T17:28:55+00:00",
9+
"rev": "53ded82bf7a494f54e344e19099dbf00854b8694",
10+
"revDate": "2026-09-05T15:42:42+00:00",
1111
"source": "packages/sdui-parser/src",
1212
"files": [
1313
"packages/sdui-parser/src/codegen.ts",
@@ -20,7 +20,7 @@
2020
"packages/sdui-parser/src/validate.ts"
2121
]
2222
},
23-
"recordedAgainstPin": "a472b07167a39e55491109e864bb5a54027dcfbd",
23+
"recordedAgainstPin": "53ded82bf7a494f54e344e19099dbf00854b8694",
2424
"grammarRegion": {
2525
"file": "packages/sdui-parser/src/parse.ts",
2626
"delimiter": "/* ---------------------- the JS literal subset (#6614) ---------------------- */",

packages/spec/src/data/api-methods-batch-conformance.test.ts

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -61,24 +61,25 @@ const SINGLE_RECORD_WRITE_ONLY: Record<string, string> = {
6161
// `revoked` on ONE key. The multi-select surface this rule protects does not
6262
// exist for API keys, and the shape a future one would take does not need
6363
// `bulk` either — both read off the console build this release pins
64-
// (`.objectui-sha` = `a472b0716`, `packages/plugin-grid`; re-measured at
65-
// that pin, 2026-09-04 — previously measured at `00d3f09c5`, `67dadd602`,
66-
// before that at `d8ec8d6d4`, `9602dc820`, `190fbd01d`, `9a3daf8d3`,
67-
// originally at `6314e87f2`. `ObjectGrid.tsx` DID change across the move off
68-
// `00d3f09c5` (7 insertions, 4 deletions, all at `:1204-1213`, where
69-
// `objectName` moved onto the shared `resolveRecordSourceObjectName`), and
70-
// the re-READ caught the previous record's OWN grid anchor as wrong rather
71-
// than merely shifted: `3790-3805` at `00d3f09c5` is `runBulkActionAggregate`
72-
// and says nothing about selection. The block this record means was
73-
// `3541-3556` there — byte-identical to the one cited at
74-
// `67dadd602:3436-3451` — and is `ObjectGrid.tsx:3544-3559` here, shifted
75-
// only by the three insertions above it. That is the #10274 class again, and
76-
// the reason a citation refresh re-READS instead of moving numbers:
77-
// arithmetic on the wrong anchor would have produced `3793-3808`, a
78-
// fresh-looking span still describing the wrong function. The second claim,
64+
// (`.objectui-sha` = `53ded82bf`, `packages/plugin-grid`; re-measured at
65+
// that pin, 2026-09-08 — previously measured at `a472b0716`, `00d3f09c5`,
66+
// `67dadd602`, before that at `d8ec8d6d4`, `9602dc820`, `190fbd01d`,
67+
// `9a3daf8d3`, originally at `6314e87f2`. `ObjectGrid.tsx` DID change again
68+
// across the move off `a472b0716` (24 insertions, 30 deletions), so the
69+
// selection block this record means was re-READ rather than carried: it is
70+
// `ObjectGrid.tsx:3538-3553` here, was `3544-3559` at `a472b0716`, and the
71+
// sixteen lines are BYTE-IDENTICAL across the hop — `git hash-object` on both
72+
// spans returns `6133933199230670e29d8c7f51c558d86a0af1d2`, so the block only
73+
// shifted six lines UP and none of its substance moved. The earlier hop off
74+
// `00d3f09c5` is the one that caught the previous record's OWN grid anchor as
75+
// wrong rather than merely shifted: `3790-3805` there is
76+
// `runBulkActionAggregate` and says nothing about selection. That is the
77+
// #10274 class, and the reason a citation refresh re-READS instead of moving
78+
// numbers — arithmetic on a wrong anchor produces a fresh-looking span still
79+
// describing the wrong function. The second claim,
7980
// `hooks/useBulkExecutor.ts:284-289`, is in a file byte-identical at both
8081
// pins and re-READ there rather than carried on that identity — it still
81-
// ends on `label = 'bulk delete'`, the line the `284-288` span cited four
82+
// ends on `label = 'bulk delete'`, the line the `284-288` span cited five
8283
// pins ago stopped short of, truncating the second of the two branches it
8384
// names (byte-identity is never taken as proof an anchor is right):
8485
//

packages/spec/src/ui/component.test.ts

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -279,13 +279,14 @@ describe('PageAccordionProps variant (#6776)', () => {
279279
// same file's `ComponentRegistry.register('accordion', …)` publishes the key to
280280
// the Studio block designer at `:966` (the `items` input, documented as
281281
// `[{ label, icon?, collapsed?, children }]`). Measured at the pin this repo
282-
// builds against — `.objectui-sha` = `a472b0716`. Re-derived at that pin
283-
// 2026-09-04: `containers.tsx` is byte-identical to the one at `00d3f09c5`,
284-
// the hop on which both anchors moved by exactly one line (`918-924` to
285-
// `919-925`, `965` to `966`), so NO anchor moved here — the icon block still
286-
// spans `919-925` and the registration input still lands on `:966`. Both were
287-
// re-READ at the new pin rather than inferred from that identity, because
288-
// identity preserves a wrong anchor as faithfully as a right one (#10274).
282+
// builds against — `.objectui-sha` = `53ded82bf`. Re-derived at that pin
283+
// 2026-09-08: `containers.tsx` is byte-identical to the one at `a472b0716`
284+
// (and, through it, to `00d3f09c5` — the last hop on which either anchor
285+
// moved, both by exactly one line, `918-924` to `919-925` and `965` to `966`),
286+
// so NO anchor moved here — the icon block still spans `919-925` and the
287+
// registration input still lands on `:966`. Both were re-READ at the new pin
288+
// rather than inferred from that identity, because identity preserves a wrong
289+
// anchor as faithfully as a right one (#10274).
289290
//
290291
// #9397 spent a full dispatch cycle re-deriving that read point from scratch
291292
// after the sweep proposed retiring the key. This block plus the `.describe()`
@@ -368,12 +369,13 @@ describe('PageTabsProps items[].value / items[].count (#5775)', () => {
368369
// same file's `ComponentRegistry.register('tabs', …)` publishes the key to the
369370
// Studio block designer at `:789` (the `items` input, documented as
370371
// `[{ label, value?, icon?, count?, visibleWhen?, children }]`). Measured at
371-
// the pin this repo builds against — `.objectui-sha` = `a472b0716`. Re-derived
372-
// at that pin 2026-09-04: `containers.tsx` is byte-identical to the one at
373-
// `00d3f09c5`, the hop on which both anchors moved by exactly one line
374-
// (`729-735` to `730-736`, `788` to `789`), so NO anchor moved here — the icon
375-
// block still spans `730-736` and the registration input still lands on
376-
// `:789`. Both were re-READ at the new pin, never inferred (#10274).
372+
// the pin this repo builds against — `.objectui-sha` = `53ded82bf`. Re-derived
373+
// at that pin 2026-09-08: `containers.tsx` is byte-identical to the one at
374+
// `a472b0716` (and, through it, to `00d3f09c5` — the last hop on which either
375+
// anchor moved, both by exactly one line, `729-735` to `730-736` and `788` to
376+
// `789`), so NO anchor moved here — the icon block still spans `730-736` and
377+
// the registration input still lands on `:789`. Both were re-READ at the new
378+
// pin, never inferred (#10274).
377379
//
378380
// #9397 spent a full dispatch cycle re-deriving the accordion's read point
379381
// after the sweep proposed retiring it. This block plus the `.describe()` it
@@ -2776,7 +2778,9 @@ describe('#7751 — object-* block props schemas', () => {
27762778
// #16503 — the spec half of objectui#8172 (decision batch #68, 2026-09-07,
27772779
// option A: the contract declares the capability that already ships, is
27782780
// documented and is in use). Measured at the objectui pin this repo builds
2779-
// against (`.objectui-sha` = `a472b0716`): `plugin-kanban/src/ObjectKanban.tsx:264`
2781+
// against (`.objectui-sha` = `53ded82bf`; all four anchors re-READ at that pin
2782+
// 2026-09-08 — every `plugin-kanban` file below is byte-identical to the one at
2783+
// `a472b0716`, and none moved): `plugin-kanban/src/ObjectKanban.tsx:264`
27802784
// queries `$top: schema.limit ?? DEFAULT_KANBAN_LIMIT` (100, `:71`),
27812785
// `plugin-kanban/src/index.tsx:395-398` maps `limit: 'limit'` in
27822786
// `OBJECT_KANBAN_DATA_SOURCE`, `plugin-kanban/src/types.ts:134` declares
@@ -2843,10 +2847,11 @@ describe('ObjectKanbanPropsSchema limit — the row cap four objectui faces alre
28432847
// #9881 and #9972 recorded the accordion and tab items; these two close the set.
28442848
//
28452849
// The button record re-measured at the pin this repo builds against —
2846-
// `.objectui-sha` = `a472b0716`, re-derived there 2026-09-04. Both files in
2850+
// `.objectui-sha` = `53ded82bf`, re-derived there 2026-09-08. Both files in
28472851
// this chain, `resolve-icon.ts` and `button.tsx`, are byte-identical to the
2848-
// ones at `00d3f09c5`, so no anchor moved; every one below was still re-READ
2849-
// at the new pin rather than inferred from that identity (#10274). The hop
2852+
// ones at `a472b0716` and, through it, to `00d3f09c5`, so no anchor moved;
2853+
// every one below was still re-READ at the new pin rather than inferred from
2854+
// that identity (#10274). The hop
28502855
// onto `00d3f09c5` was the one that changed this record's SUBSTANCE and not
28512856
// merely its line numbers: `resolve-icon.ts` was restructured (110
28522857
// insertions), so `resolveIcon` no longer PascalCases and maps inline — it

0 commit comments

Comments
 (0)