Skip to content

Commit 8963dbf

Browse files
chore(objectui): bump the console pin to 89cad75d5570 (carries objectui 0858267e, 8001068b, 3ae91930 and d0fba91aa) (#21380)
Clause-②: no Moves the bundled Console's objectui pin from `31971ff1e28f` (the pin 17.6.0 shipped) to current objectui `main`, `89cad75d55702cc4f267bead5bf267de575d5842`, so the Console carries the four fixes 17.6.0's release verification found missing (#21330, objectstack-ai/hotcrm#1982, and the "Known console issues" list in `content/docs/releases/v17/17-6.mdx`). ## Range `31971ff1e28f..89cad75d5570`: 64 non-merge commits, 74 releasing changesets (16 declared breaking), 14 release-nothing, 6 commits without a changeset. `git merge-base --is-ancestor <c> origin/main` exits 0 in an objectui clone for the old pin and for each fix commit below; `89cad75d5570` is `origin/main`. Breaking entries: `990a2d616` (objectui retires its bare `tree` / `view` node-type keys and the bare field-widget fallbacks), `063832222` (`@object-ui/plugin-designer` TypeScript face), `f9c8c4e45` (two `@object-ui/core` exports), `063119f2b` (an unevaluable gate is a fault), `138ad4554` / `6aa029b63` (authored `flex` / `object-grid` take the `properties` bag), `a1a44d621` (`page` refuses `maxWidth` / `padding`), `e100589f3` (app `mobileNavMode` refused), `1a88ce22f` (dashboard widget `chartConfig.*` structure keys). ## The four fixes this bump carries | defect at `31971ff1e28f` | objectui fix | |---|---| | Studio's dataset designer saves a count measure with `field: ''`, refused `422 measures.0.field` | `0858267e` (objectui#11402) | | The datasource editor saves an External / Validate-only datasource without the `external` block, refused `400` since #21133 | `8001068b` (objectui#11368) | | Both page editors send the served `requires` back, so republishing an html page that gained a plugin component is refused `422 page-requires-disagrees-with-source` | `3ae91930` (objectui#11357) | | zh-CN reverts to English on a full page load (objectui#11326; #21330 R4) | `d0fba91aa` | ## What changed here, and why - `.objectui-sha` and `.changeset/console-89cad75d5570.md`, written by `scripts/bump-objectui.sh --no-commit` (auto level `minor`). The script's `adr-0087: TODO` placeholder is answered `not-required (no-migration-prescription)`, in the wording the previous two bumps used, naming all 16 upstream breaking entries: each is objectui's own surface, or (`chartConfig.*`) mirrors keys `ui/dashboard.zod.ts` already retired and tombstoned. - `packages/sdui-parser/objectui-lockstep.json`, re-recorded with `pnpm gen:sdui-lockstep`: 214 grammar lines, 25 codes, containment predicate `76c18fb95d1f`, all unchanged; no port owed. - `sdui.manifest.json` + `scripts/sdui-manifest.record.json`, from `node scripts/gen-sdui-manifest-node.mjs` over the tree `pnpm objectui:build` built at the pin: 107 components, none added or removed; `object-kanban`, `object-calendar`, `object-gantt`, `object-timeline`, `object-map` and `object-tree` changed their published inputs (objectui#11168 slices 3–5, objectui#11293). - The 49 asserting pin citations in `packages/spec/src` (`check:objectui-pin-citations` turns red on any pin move), re-measured at the new pin: anchors mapped through each cited file's diff and re-read, block hashes and corpus counts re-taken with a method that first reproduced every `31971ff1e` number. This regenerates `packages/spec/src/migrations/registry.ts` and `content/docs/references/ui/view.mdx`, and adds `.changeset/objectui-pin-citations-89cad75d5570.md` (`@objectstack/spec` patch, since the `FormField.span` describe and six migration descriptions name the pin). Records whose claims moved, not only their numbers: `object-map`'s declared-block `style` precedence (`mapStyle` now first, objectui#11168 slice 3; the `getMapConfig` return quote is rewritten); `object-tree`'s `navigation` read and `ObjectTreeSchema` mirror now carry the row's keys uncast, and objectui's record-source table drops the retired bare `tree` / `view:tree` keys (objectui#10859 batch 8); two `object-timeline` anchors that were already one line off at `31971ff1e` are corrected. No key, default, enum member or export moves. - No example, test or gate needed adapting for the breaking entries: the showcase's html pages compile flat JSX attributes, which the renderer still hoists, and its `type: 'tree'` view and field are spec-level types, not the retired bare node keys. The browser run below covers both. ## Browser verification (`examples/app-showcase`, this branch) `pnpm dev -- --fresh --ui --no-watch -p 41733` (own ephemeral DB, seeded admin), `check:console-sha` = `objectui@89cad75d5570`, driven in headless Chromium (`/opt/pw-browsers`) with every request captured. A writable package `com.acme.pinprobe` with one object `pinprobe_item` was created through `POST /api/v1/packages` and the metadata API for the authoring checks. | defect | drive | result at `89cad75d5570` | |---|---|---| | dataset `field: ''` | metadata editor on dataset `pin_ds` → Add measure → name `row_count`, Aggregate `count`, Field left blank → ⌘S | `PUT /meta/dataset/pin_ds?mode=draft` carries `{"name":"row_count","aggregate":"count"}` (no `field` key) → **200**; publish → **200**; the served measure has no `field` | | datasource `external` block | Setup → Datasources → New datasource, SQLite `:memory:`, Schema mode External, then Validate only, no credential | `POST /api/v1/datasources` carries `"external":{}` → **201** for both `external` and `validate-only` | | page `requires` echo | html page published with `<box>` only (served `requires: ["ui"]`); metadata editor Source → add `<object-kanban objectName="pinprobe_item" groupBy="status" />` → ⌘S → publish | save body carries no `requires` → **200**; publish → **200**; the server stamps `requires: ["ui","plugin-kanban"]` | | zh-CN on full load | `/_console/apps/com.objectstack.account/component/approvals/inbox`, `localStorage['objectui-locale']='zh-CN'`, full reload | h1 **审批中心**, tabs **待我审批 / 我发起的 / 全部**, `<html lang="zh-CN">`, `i18n-locale-zh-*.js` fetched (before the switch: "Approvals Inbox") | Smoke: sign-in lands on the `/_console/home` launcher; the showcase JSX home page (Capability Map, `<flex>` / `<box>`) renders; the `showcase_task` list grid; a task record page; the `showcase_ops_dashboard` dashboard with KPIs and charts; the Studio landing and the writable package's object surface. 0 page errors. Non-2xx responses were only `401 /auth/get-session` before sign-in, `404 /usage/storage`, `501 /ai/usage` (no AI provider) and `404 ?state=draft` no-draft probes. Only the PIDs this run started were stopped. ## Gates and tests run locally `check-adr-0087-registration --base origin/main`, `check:console-sha`, `check:console-injection`, `check:sdui-lockstep`, `check-sdui-manifest`, `check:objectui-pin-citations` (49 matching; `--verify-anchors`: 7 anchor content assertions verified at `89cad75d5`), `check:migration-registry`, `check:objectui-bump`, `@objectstack/spec check:generated` (after `gen:docs`) — all exit 0. `pnpm build` exit 0. The console build passed its single-zod canary and spec-injection check. `pnpm --filter @objectstack/spec test`: 598 files, 17512 passed, 1 todo. `pnpm --filter @objectstack/sdui-parser test`: 218 passed. `pnpm --filter @objectstack/spec typecheck`: exit 0. Environment, not a product change: objectui's `jsdom` needs Node `>= 22.22.2`; the container has 22.22.0, so a Node 22.23.3 was prepended to `PATH` for the console build and the dev boot. --- _Generated by [Claude Code](https://claude.ai/code/session_01CuUktjSyZWTP2mU4ywPGA6)_ --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent 5155093 commit 8963dbf

20 files changed

Lines changed: 855 additions & 228 deletions

‎.changeset/console-89cad75d5570.md‎

Lines changed: 122 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
'@objectstack/spec': patch
3+
---
4+
5+
The spec's objectui citations, and the shipped description text that names the `.objectui-sha` pin (the `FormField.span` describe and six migration-entry descriptions), are re-measured against the new console pin, objectui `89cad75d5570`.
6+
7+
Clause-②: no
8+
9+
Several records were corrected rather than moved, because objectui changed what they describe on this hop: `object-map` now reads `mapStyle` ahead of `map.style` on the declared-block path as well (objectui#11168 slice 3), so the `getMapConfig` return quote is rewritten; `object-tree`'s `navigation` read and `@object-ui/types`' `ObjectTreeSchema` mirror now carry the spec row's keys with no cast, and objectui's record-source table no longer lists the retired bare `tree` / `view:tree` keys (objectui#10859 batch 8); `object-map`, `object-gantt` and `object-timeline` publish the further keys their rows declare (objectui#11168 slices 3–5). Two stale `object-timeline` anchors (`filter` and `variant`) that were already one line off at the previous pin are corrected. No key, default, enum member or export moves.

‎.objectui-sha‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
31971ff1e28f89cfc45f0c19bc5b05e443f28b79
1+
89cad75d55702cc4f267bead5bf267de575d5842

‎content/docs/references/ui/view.mdx‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ Column footer summary configuration
213213
| **required** | `boolean` | optional | Required override |
214214
| **hidden** | `boolean` | optional | Hidden override |
215215
| **colSpan** | `integer` | optional | Absolute column span (1-4). The renderer clamps it to the form grid's current column count, so the cell starts at a real column boundary at every surface width and never overflows (`colSpan: 4` in a 3-column grid renders as 3); a `colSpan` within the column count renders as authored, and `colSpan: 1` emits no span class at all. |
216-
| **span** | `Enum<'auto' \| 'full'>` | optional (default: `"auto"`) | Relative field width. 'auto' (default — omit it): the renderer sizes the field from its widget type × the current column count — at the pin this repo builds against (`.objectui-sha` = `31971ff1e28f`), only textarea, markdown, html, richtext and repeater resolve to the full column count (repeater reaches it through the wide `field:grid` widget it maps to). 'full': resolves to the form grid's full column count. How far down the container-query tiers that span is emitted is the renderer's, not this key's: at that same pin the renderer emits one clamped col-span class per multi-column tier (`@md:col-span-2 @2xl:col-span-3` for a 3-column grid), so the field takes the whole row at every multi-column tier, not just the widest. |
216+
| **span** | `Enum<'auto' \| 'full'>` | optional (default: `"auto"`) | Relative field width. 'auto' (default — omit it): the renderer sizes the field from its widget type × the current column count — at the pin this repo builds against (`.objectui-sha` = `89cad75d5570`), only textarea, markdown, html, richtext and repeater resolve to the full column count (repeater reaches it through the wide `field:grid` widget it maps to). 'full': resolves to the form grid's full column count. How far down the container-query tiers that span is emitted is the renderer's, not this key's: at that same pin the renderer emits one clamped col-span class per multi-column tier (`@md:col-span-2 @2xl:col-span-3` for a 3-column grid), so the field takes the whole row at every multi-column tier, not just the widest. |
217217
| **widget** | `string` | optional | Custom widget/component name (overrides type-based inference) |
218218
| **language** | `string` | optional | Code editor language (for type=code) |
219219
| **keyField** | `{ field?: string; label?: string \| Record<string, string>; placeholder?: string \| Record<string, string>; helpText?: string \| Record<string, string>; … }` | optional | Key column config for record-typed fields |
@@ -343,7 +343,7 @@ Form-view select option — the object-field option shape minus the per-option `
343343
| **required** | `boolean` | optional | Required override |
344344
| **hidden** | `boolean` | optional | Hidden override |
345345
| **colSpan** | `integer` | optional | Absolute column span (1-4). The renderer clamps it to the form grid's current column count, so the cell starts at a real column boundary at every surface width and never overflows (`colSpan: 4` in a 3-column grid renders as 3); a `colSpan` within the column count renders as authored, and `colSpan: 1` emits no span class at all. |
346-
| **span** | `Enum<'auto' \| 'full'>` | optional (default: `"auto"`) | Relative field width. 'auto' (default — omit it): the renderer sizes the field from its widget type × the current column count — at the pin this repo builds against (`.objectui-sha` = `31971ff1e28f`), only textarea, markdown, html, richtext and repeater resolve to the full column count (repeater reaches it through the wide `field:grid` widget it maps to). 'full': resolves to the form grid's full column count. How far down the container-query tiers that span is emitted is the renderer's, not this key's: at that same pin the renderer emits one clamped col-span class per multi-column tier (`@md:col-span-2 @2xl:col-span-3` for a 3-column grid), so the field takes the whole row at every multi-column tier, not just the widest. |
346+
| **span** | `Enum<'auto' \| 'full'>` | optional (default: `"auto"`) | Relative field width. 'auto' (default — omit it): the renderer sizes the field from its widget type × the current column count — at the pin this repo builds against (`.objectui-sha` = `89cad75d5570`), only textarea, markdown, html, richtext and repeater resolve to the full column count (repeater reaches it through the wide `field:grid` widget it maps to). 'full': resolves to the form grid's full column count. How far down the container-query tiers that span is emitted is the renderer's, not this key's: at that same pin the renderer emits one clamped col-span class per multi-column tier (`@md:col-span-2 @2xl:col-span-3` for a 3-column grid), so the field takes the whole row at every multi-column tier, not just the widest. |
347347
| **widget** | `string` | optional | Custom widget/component name (overrides type-based inference) |
348348
| **language** | `string` | optional | Code editor language (for type=code) |
349349
| **keyField** | `{ field?: string; label?: string \| Record<string, string>; placeholder?: string \| Record<string, string>; helpText?: string \| Record<string, string>; … }` | optional | Key column config for record-typed fields |

‎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": "31971ff1e28f89cfc45f0c19bc5b05e443f28b79",
10-
"revDate": "2026-10-01T07:33:37+00:00",
9+
"rev": "89cad75d55702cc4f267bead5bf267de575d5842",
10+
"revDate": "2026-10-02T06:25:01+00:00",
1111
"source": "packages/sdui-parser/src",
1212
"files": [
1313
"packages/sdui-parser/src/body-dialect.ts",
@@ -21,7 +21,7 @@
2121
"packages/sdui-parser/src/validate.ts"
2222
]
2323
},
24-
"recordedAgainstPin": "31971ff1e28f89cfc45f0c19bc5b05e443f28b79",
24+
"recordedAgainstPin": "89cad75d55702cc4f267bead5bf267de575d5842",
2525
"grammarRegion": {
2626
"file": "packages/sdui-parser/src/parse.ts",
2727
"delimiter": "/* ---------------------- the JS literal subset (#6614) ---------------------- */",

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

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,21 @@ 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` = `31971ff1e`, `packages/plugin-grid`; re-measured at
65-
// that pin, 2026-10-01. On the hop off `e420df310`, `ObjectGrid.tsx` changed
64+
// (`.objectui-sha` = `89cad75d5`, `packages/plugin-grid`; re-measured at
65+
// that pin, 2026-10-02. On the hop off `31971ff1e`, `ObjectGrid.tsx` changed
66+
// again (42 insertions, 17 deletions: objectui#11322's built-in bulk-delete
67+
// gate asking `partitionRowsByPredicate` directly and objectui#11254's
68+
// mobile-card percent width, plus their two import lines, each edited in
69+
// place), every hunk either a same-length import edit or below the
70+
// selection block, which did NOT move: `ObjectGrid.tsx:4791-4818` here as at
71+
// `31971ff1e`, still hashing to `c88443302d40c2db739ddb235470bafa29056e2e`
72+
// (hash-object of the block), re-READ with the same reading below;
73+
// `hooks/useBulkExecutor.ts` is byte-identical to `31971ff1e` and its
74+
// `:298-303` still hashes to `01083348330f10a201cdf1078b4c21c236402b6a`.
75+
// At `31971ff1e`, 2026-10-01: on the hop off `e420df310`, `ObjectGrid.tsx` changed
6676
// again (41 insertions, 1 deletion: objectui#10689's re-read on a harvested
6777
// query input), every hunk above the selection block, which only MOVED by
68-
// +40: `ObjectGrid.tsx:4791-4818` here (`4751-4778` at `e420df310`), still
78+
// +40: `ObjectGrid.tsx:4791-4818` there (`4751-4778` at `e420df310`), still
6979
// hashing to `c88443302d40c2db739ddb235470bafa29056e2e` (hash-object of the
7080
// block), re-READ with the same reading below; `hooks/useBulkExecutor.ts` is
7181
// byte-identical to `e420df310` and its `:298-303` still hashes to
@@ -91,7 +101,7 @@ const SINGLE_RECORD_WRITE_ONLY: Record<string, string> = {
91101
// re-READ with the same reading below; `hooks/useBulkExecutor.ts` is
92102
// byte-identical to `dd3f7e1be` and its `:298-303` still hashes to
93103
// `01083348330f10a201cdf1078b4c21c236402b6a`. Previously measured at
94-
// `e420df310`, `db11afd49`, `dd3f7e1be`, `f8a9d0fb0`, `62597c588`,
104+
// `31971ff1e`, `e420df310`, `db11afd49`, `dd3f7e1be`, `f8a9d0fb0`, `62597c588`,
95105
// `87af769e9`, `53ded82bf`, `a472b0716`, `00d3f09c5`, `67dadd602`, before
96106
// that at `d8ec8d6d4`, `9602dc820`, `190fbd01d`, `9a3daf8d3`, originally at
97107
// `6314e87f2`. On the hop off `f8a9d0fb0`, `ObjectGrid.tsx` changed hard

‎packages/spec/src/kernel/functional-completeness.ts‎

Lines changed: 35 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,12 @@ export function checkFieldCompleteness(def: unknown): CompletenessFinding[] {
287287
* English sentence. So the loss is total rather than partial — every
288288
* record, on every object — and the author is told at render time as well
289289
* as here. Both reads hold at the pin this repo builds against
290-
* (`.objectui-sha` = `31971ff1e`, re-read 2026-10-01: `ObjectCalendar.tsx`
290+
* (`.objectui-sha` = `89cad75d5`, re-read 2026-10-02: on the hop off
291+
* `31971ff1e` `ObjectCalendar.tsx` and `ListView.tsx` are byte-identical,
292+
* so `getCalendarConfig` `:294`, the `if (!calendarConfig)` arm `:1296` and
293+
* its `tt(…)` lines `:1303-1304` did not move, every `case` arm is
294+
* byte-identical, and the `en` / `zh` / `de` `calendar.configRequired`
295+
* strings did not change. At `31971ff1e` (2026-10-01) `ObjectCalendar.tsx`
291296
* changed on the hop off `e420df310` only at its `navigation` read
292297
* (objectui#8652 declared the key and dropped that read's cast, 11
293298
* insertions, 19 deletions), below `getCalendarConfig`, which is
@@ -329,8 +334,14 @@ export function checkFieldCompleteness(def: unknown): CompletenessFinding[] {
329334
* This repo already records the same deletion one door over: the #13817
330335
* check in `../ui/view.zod.ts` names objectui#7029 as its runtime half.
331336
* - `gantt` → NO fallback, and no silence [#19630]. Measured at the pin
332-
* this repo builds against (`.objectui-sha` = `31971ff1e`, re-read
333-
* 2026-10-01; on the hop off `e420df310` `ObjectGantt.tsx` is byte-identical,
337+
* this repo builds against (`.objectui-sha` = `89cad75d5`, re-read
338+
* 2026-10-02; on the hop off `31971ff1e` `ObjectGantt.tsx` changed (47
339+
* insertions, 10 deletions: objectui#11254's field-scale width on the
340+
* number and percent rows, objectui#11355's uncast shadowed-flat-key read,
341+
* one import line), none of it in `getGanttConfig` or the refusal arm, which
342+
* are byte-identical and moved `:607` → `:608` and `:2261` → `:2298`, and
343+
* `ListView.tsx` is byte-identical, `case 'gantt'` with it; at `31971ff1e`
344+
* (2026-10-01), on the hop off `e420df310` `ObjectGantt.tsx` is byte-identical,
334345
* so `getGanttConfig` `:607` and the `if (!ganttConfig)` arm `:2261` did not
335346
* move, and `ListView.tsx`'s `case 'gantt'` is byte-identical; at
336347
* `e420df310` (2026-09-30), on the hop off `db11afd49`, `ObjectGantt.tsx` changed again
@@ -371,8 +382,15 @@ export function checkFieldCompleteness(def: unknown): CompletenessFinding[] {
371382
* requires. So the view does not draw a blank chart: it refuses, by name.
372383
* - `timeline` → date axis: NO fallback [#19630]; title: `titleField || 'name'`,
373384
* which still stands. Measured at the same pin (`.objectui-sha` =
374-
* `31971ff1e`; on the hop onto this pin `ListView.tsx`'s `case 'timeline'`
375-
* and `resolveTimelineDateBinding` are byte-identical, and
385+
* `89cad75d5`; on the hop off `31971ff1e` `ListView.tsx` is byte-identical,
386+
* `case 'timeline'` and `resolveTimelineDateBinding` with it, and
387+
* `ObjectTimeline.tsx` changed only in two `navigation` comments
388+
* (objectui#11293 / objectui#11168 slice 5, 16 insertions, 7 deletions:
389+
* an absent key opens nothing rather than resolving the hook's `page`), so
390+
* the start-date chain and the refusal arm are byte-identical and MOVED
391+
* `:568-570` → `:574-576` and `:902` → `:911`. At `31971ff1e`, on the hop
392+
* off `e420df310`, `ListView.tsx`'s `case 'timeline'`
393+
* and `resolveTimelineDateBinding` were byte-identical, and
376394
* `ObjectTimeline.tsx` changed above both reads (objectui#8654's typed
377395
* `navigation` member, 42 insertions, 2 deletions), so the start-date chain
378396
* and the refusal arm are byte-identical and MOVED `:533-535` → `:568-570`
@@ -405,10 +423,19 @@ export function checkFieldCompleteness(def: unknown): CompletenessFinding[] {
405423
* block does render; the warning still fires there, because the block the
406424
* view TYPE names is the one that is missing. Unchanged by this row.
407425
* - `map` → NO fallback, and no silence [#19630]. Measured at the same
408-
* pin (`.objectui-sha` = `31971ff1e`; on the hop onto this pin
426+
* pin (`.objectui-sha` = `89cad75d5`; on the hop off `31971ff1e`
427+
* `ListView.tsx` is byte-identical, `case 'map'` and `resolveListMapConfig`
428+
* with it, and `ObjectMap.tsx` changed (11 insertions, 4 deletions) in
429+
* `warnOnShadowedFlatMapKeys`' cast (objectui#11355) and in `getMapConfig`'s
430+
* `style` precedence — `mapStyle` before `map.style` on the declared-block
431+
* return too (objectui#11168 slice 3) — which touches no coordinate read:
432+
* `getMapConfig` is unmoved at `:387` and still guesses no field name,
433+
* `hasCoordinateBinding` and the refusal arm are byte-identical and moved
434+
* `:486` → `:493` and `:1284` → `:1291`. At `31971ff1e` (2026-10-01)
409435
* `ObjectMap.tsx`, `ListView.tsx`'s `case 'map'` and `resolveListMapConfig`
410-
* are byte-identical, so `getMapConfig` `:387`, `hasCoordinateBinding`
411-
* `:486` and the refusal arm `:1284` did not move. At `e420df310`
436+
* were byte-identical to `e420df310`, so `getMapConfig` `:387`,
437+
* `hasCoordinateBinding` `:486` and the refusal arm `:1284` did not move.
438+
* At `e420df310`
412439
* `ObjectMap.tsx` changed only in the record-source docblock above
413440
* `getMapConfig` (16 insertions, 17 deletions, objectui#8348), so
414441
* `getMapConfig`, `hasCoordinateBinding` and the refusal arm are

‎packages/spec/src/migrations/entries/semantic/18.kernel-health-check-and-hot-reload-durations-unit-in-key.ts‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,13 @@ export const entry: SemanticMigration = {
5252
+ 'the audience that does not parse. Measured on 884e8347d: the only in-repo readers are '
5353
+ 'packages/core/src/health-monitor.ts and packages/core/src/hot-reload.ts, both moved in '
5454
+ 'this same change; and the pinned objectui checkout — the pin this repo builds '
55-
+ 'against, `.objectui-sha` = `31971ff1e28f89cfc45f0c19bc5b05e443f28b79` — names '
55+
+ 'against, `.objectui-sha` = `89cad75d55702cc4f267bead5bf267de575d5842` — names '
5656
+ 'neither def and neither key: all thirteen exports of plugin-lifecycle-advanced.zod.ts and '
57-
+ 'the string debounceDelay each occur 0 times across its 9912 tracked files (0 across the 9800 at e420df310, the 9546 at db11afd49, the 9283 at dd3f7e1be, the '
57+
+ 'the string debounceDelay each occur 0 times across its 10071 tracked files (0 across the 9912 at 31971ff1e, the 9800 at e420df310, the 9546 at db11afd49, the 9283 at dd3f7e1be, the '
5858
+ '8512 at f8a9d0fb0 and the 8303 at 62597c588 too), against lit '
5959
+ 'controls objectstack 12966 and @objectstack/spec 4997 on the same corpus at 87af769e9, '
6060
+ 'which re-count to 13125 and 5043 respectively at 62597c588, to 13347 and 5123 at '
61-
+ 'f8a9d0fb0, to 13745 and 5466 at dd3f7e1be, to 14704 and 5545 at db11afd49, to 15352 and 6024 at e420df310 and to 15691 and 6206 at this pin (git grep -o -F, the method that reproduces '
61+
+ 'f8a9d0fb0, to 13745 and 5466 at dd3f7e1be, to 14704 and 5545 at db11afd49, to 15352 and 6024 at e420df310, to 15691 and 6206 at 31971ff1e and to 16044 and 6461 at this pin (git grep -o -F, the method that reproduces '
6262
+ 'every earlier count).',
6363
acceptanceCriteria:
6464
'Every producer and reader of a PluginHealthCheck spells intervalMs and timeoutMs, and every '

‎packages/spec/src/migrations/entries/semantic/18.kernel-runtime-config-timeout-unit-in-key.ts‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,10 @@ export const entry: SemanticMigration = {
4646
+ 'spells timeout 0 times; outside the zod file and its test the only live occurrences are the '
4747
+ 'generated rows in content/docs/references/kernel/plugin-security-advanced.mdx, which this '
4848
+ 'rename regenerates. The pinned objectui checkout — this is the pin we build against, '
49-
+ '`.objectui-sha` = `31971ff1e28f89cfc45f0c19bc5b05e443f28b79`, re-read from this tree — '
49+
+ '`.objectui-sha` = `89cad75d55702cc4f267bead5bf267de575d5842`, re-read from this tree — '
5050
+ 'spells resourceLimits.timeout 0 times across '
51-
+ '9912 tracked files, against lit controls timeout 1303, RuntimeConfig 273 and resourceLimits '
52-
+ '2 on the same corpus (0 across 9800, and 1293 / 273 / 2, at e420df310; 0 across 9546, and 1197 / 273 / 2, at db11afd49; 0 across 9283, and 1172 / 263 / 2, at dd3f7e1be; 0 across 8512, and 1096 / 245 / 2, at f8a9d0fb0; 0 across 8303, and '
51+
+ '10071 tracked files, against lit controls timeout 1331, RuntimeConfig 273 and resourceLimits '
52+
+ '2 on the same corpus (0 across 9912, and 1303 / 273 / 2, at 31971ff1e; 0 across 9800, and 1293 / 273 / 2, at e420df310; 0 across 9546, and 1197 / 273 / 2, at db11afd49; 0 across 9283, and 1172 / 263 / 2, at dd3f7e1be; 0 across 8512, and 1096 / 245 / 2, at f8a9d0fb0; 0 across 8303, and '
5353
+ '1086 / 240 / 2, at 62597c588); both resourceLimits hits are prose in packages/app-shell recording '
5454
+ 'that objectui\'s own AppShellRuntimeConfig shares not one key with the spec\'s '
5555
+ 'RuntimeConfig, so nothing there authors this key and no pin bump is owed. ADR-0087.',

‎packages/spec/src/migrations/entries/semantic/18.logging-durations-unit-in-key.ts‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,10 @@ export const entry: SemanticMigration = {
4747
+ 'no in-repo runtime reads any of the four — outside `packages/spec/src/system/logging.zod.ts` '
4848
+ 'and its test the only occurrences are the generated rows in '
4949
+ '`content/docs/references/system/logging.mdx`, which this rename regenerates; and the pinned '
50-
+ 'objectui checkout — `.objectui-sha` = `31971ff1e28f89cfc45f0c19bc5b05e443f28b79` — spells '
50+
+ 'objectui checkout — `.objectui-sha` = `89cad75d55702cc4f267bead5bf267de575d5842` — spells '
5151
+ '`flushInterval` 0 times, `initialDelay` 0, `HttpDestinationConfig` 0 and `LoggingConfig` 0 '
52-
+ 'across its 9912 tracked files, against lit controls `useState` 2469 and `timeout` 1303 on '
53-
+ 'the same corpus (all four 0 across 9800, against 2464 and 1293, at e420df310, 0 across 9546, against 2449 and 1197, at db11afd49, 0 across 9283, against 2435 and 1172, at dd3f7e1be, 0 across 8512, '
52+
+ 'across its 10071 tracked files, against lit controls `useState` 2470 and `timeout` 1331 on '
53+
+ 'the same corpus (all four 0 across 9912, against 2469 and 1303, at 31971ff1e, 0 across 9800, against 2464 and 1293, at e420df310, 0 across 9546, against 2449 and 1197, at db11afd49, 0 across 9283, against 2435 and 1172, at dd3f7e1be, 0 across 8512, '
5454
+ 'against 2391 and 1096, at f8a9d0fb0, and 0 across '
5555
+ '8303, against 2389 and 1086, at 62597c588).',
5656
acceptanceCriteria:

0 commit comments

Comments
 (0)