Skip to content

Commit 9a0af4e

Browse files
chore(changeset): release Object UI's 18.1.0-to-merge changes to the 38 @object-ui packages as one consolidated changeset (#26068)
<!-- claude-projects-attribution: {"github_login":"os-tesla"} --> _Requested by **Tesla** · [project thread](https://claude.ai/code/project/chan_01AXsQkLFKRdQCqQ3RTr6Jao?thread=cmsg_01AXsQkLFKRdQCqQ3RTr6Jao5i8uQrVQjUoGbnnYhTVNrR)_ Fixes #25831 Part of #25677 (objectui merge aftercare). Gates the joint 18.2.0 Version PR, #25753. Clause-②: yes (narrowing) Metadata-protocol: narrowed ## What changed One new file, `.changeset/25831-object-ui-18-1-to-merge.md`, executing maintainer ruling item 28 = B (card comment 6404422838) as amended by the Claim amendment 6413971007: - **Frontmatter:** the 38 public `@object-ui/*` packages of the fixed group, each `minor`. The private `object-ui` (VS Code extension) moves with the group through `PRIVATE_FIXED_MEMBERS`; the ignored `example-*`, `site`, `runner` and `test-support` are not named. - **Body:** a `**BREAKING**` lead naming the range (objectui `a3c0da9`, the 18.1.0 release commit, to `9e1fe03`, the freeze), one paragraph for each of the five `!` commits (PRs #13475, #13473, #13506, #13507, #13515) saying what was retired and who it reaches, each pointing at its original `ui/.changeset/*.md` for the migration table, then a summary of the other 30 PRs with their objectui numbers. - The 65 originals under `ui/.changeset/` are untouched (no root reader; kept as history). ## Why one ADR-0087 marker, not five `check-adr-0087-registration` accepts exactly one disposition marker per changeset file. Measured on main `bbf70614`: a probe changeset carrying five markers exits 1 with "5 `adr-0087:` markers -- exactly one disposition is expected" (self-test battery R9). Every mechanical category (`registered`, `runtime-export-retired`, `type-surface-only`, `runtime-interface-only`) compares the merge base with HEAD, and the five retirements are already on `main`, so the only admissible category for this diff is `not-required (no-migration-prescription)`, which refuses an inline FROM/TO table. Hence the paragraphs point at the original changesets instead of restating their tables. The PM accepted this (option A) in Claim amendment 6413971007; per-break markers would be option B (six files) and can be reopened on the card. The marker, in an HTML comment in the changeset body, reads in words: `adr-0087: not-required (no-migration-prescription)`, reason: the five retirements are `@object-ui/*` surfaces (a renderer node type and its schema, a widget source member, unread exports, three providers duplicating `@object-ui/react` / `@object-ui/app-shell` names, nine `@object-ui/types` schema keys), none is an `@objectstack/spec` key, object definition or stored shape, so the `packages/spec` registries have no entry to write; objectui had no conversion registry; each old spelling is refused by name, and each change's migration ships in the original changeset this entry points to. ## Verification (head `0329dd0514`) - `node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --commands`: 20 derived commands, all exit 0; `--ran` reconciliation: 20 derived, 20 run, 0 NOT-MEASURED. Includes `check-adr-0087-registration --base origin/main` (1 declared-breaking changeset, disposition accepted), `check-empty-changeset`, `check-changeset-no-major`, their self-tests, `check:changeset-gate-self-tests`, `check:nul-bytes`, `check:published-files`. - `node scripts/check-changeset-no-major.mjs --base origin/main --event E` with this body's two declaration lines: exit 0 (LEVEL AXIS green). The same with `Clause-②: no` / `Metadata-protocol: none`: exit 1 (a `minor` beside `none` is refused), which is why the Claim's lines were amended. - `node scripts/check-changeset-fixed.mjs`: exit 0, 111 public packages + 1 declared private member in sync. - `pnpm changeset status --verbose --since origin/main`: 112 fixed-group members to 18.2.0, the 38 `@object-ui/*` among them, each citing this file. - changesets v3.0.3 has no `version --dry-run`, so `pnpm changeset version` was run on a scratch state of this worktree and reset: all 38 public `@object-ui/*` manifests read 18.2.0 and `ui/packages/core/CHANGELOG.md` gains the 18.2.0 entry with the marker hidden as a comment (337 files touched, discarded with `git reset --hard`). That run was at `213e4d2b`; the head differs only by moving the two declaration lines to the end of the body, so the CHANGELOG headline is the BREAKING lead rather than the `Clause-②:` line. - Push-environment battery (`GITHUB_ACTIONS=true GITHUB_EVENT_NAME=push node scripts/pm/check-dispatch-gates.mjs`): result posted on the card with the report. ## Acceptance notes - Arithmetic: root `.changeset/*.md` count goes from 96 to 97 (+1, this file; README excluded); `ui/.changeset/` keeps 65 changesets + README. - Each of the 38 CHANGELOGs receives the same entry, because the group is fixed and the ruling names all 38. --- _Generated by [Claude Code](https://claude.ai/code/session_0119jY1rheeWvbYGGbLXr6sL)_ Co-authored-by: Claude <noreply@anthropic.com>
1 parent 8fcdf52 commit 9a0af4e

1 file changed

Lines changed: 79 additions & 0 deletions

File tree

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
---
2+
"@object-ui/app-shell": minor
3+
"@object-ui/auth": minor
4+
"@object-ui/cli": minor
5+
"@object-ui/collaboration": minor
6+
"@object-ui/components": minor
7+
"@object-ui/console": minor
8+
"@object-ui/core": minor
9+
"@object-ui/create-plugin": minor
10+
"@object-ui/data-objectstack": minor
11+
"@object-ui/fields": minor
12+
"@object-ui/i18n": minor
13+
"@object-ui/layout": minor
14+
"@object-ui/mobile": minor
15+
"@object-ui/permissions": minor
16+
"@object-ui/plugin-ai": minor
17+
"@object-ui/plugin-calendar": minor
18+
"@object-ui/plugin-charts": minor
19+
"@object-ui/plugin-chatbot": minor
20+
"@object-ui/plugin-dashboard": minor
21+
"@object-ui/plugin-designer": minor
22+
"@object-ui/plugin-detail": minor
23+
"@object-ui/plugin-editor": minor
24+
"@object-ui/plugin-form": minor
25+
"@object-ui/plugin-gantt": minor
26+
"@object-ui/plugin-grid": minor
27+
"@object-ui/plugin-kanban": minor
28+
"@object-ui/plugin-list": minor
29+
"@object-ui/plugin-map": minor
30+
"@object-ui/plugin-markdown": minor
31+
"@object-ui/plugin-report": minor
32+
"@object-ui/plugin-timeline": minor
33+
"@object-ui/plugin-tree": minor
34+
"@object-ui/plugin-view": minor
35+
"@object-ui/providers": minor
36+
"@object-ui/react": minor
37+
"@object-ui/react-runtime": minor
38+
"@object-ui/sdui-parser": minor
39+
"@object-ui/types": minor
40+
---
41+
42+
**BREAKING** Object UI's changes from its 18.1.0 release to the day it moved into this repository, released here as one entry. They are objectui commits `a3c0da9`..`9e1fe03`, the release commit to the freeze. Their 65 changesets came across with the code under `ui/.changeset/`, which `changeset version` does not read, so this entry carries them into the release. Each of those 65 files stays in `ui/.changeset/` unchanged, as the full record of its change. Five of the changes are breaking retirements; each has a paragraph below and points at the file that holds its migration table.
43+
44+
<!-- adr-0087: not-required (no-migration-prescription) The five retirements below shipped in objectui before it merged into this repository, and each one is an `@object-ui/*` surface: a renderer node type and its schema (`html`), a widget source member (`module`), exports nothing read, three providers that duplicated `@object-ui/react` and `@object-ui/app-shell` names, and nine `@object-ui/types` schema keys. None is an `@objectstack/spec` key, object definition or stored shape, so the ADR-0087 registries in `packages/spec` have no entry to write and `objectstack migrate meta` has nothing to rewrite. objectui had no conversion registry; each old spelling is refused by name, at validation or by the compiler, and each change ships its own migration in the original changeset this entry points to, which is why this entry does not restate them (maintainer ruling 28 = B on objectstack#25831). -->
45+
46+
### The raw-HTML `html` node type is retired (objectui#13449, PR #13475)
47+
48+
`@object-ui/components` no longer registers `html` or `ui:html`, `@object-ui/core` drops it from the public blocks, and `@object-ui/types` no longer exports `HtmlSchema`. Its renderer wrote the authored string into the page with no sanitiser. A page that still names the node draws the unknown-component panel, and `objectui validate` refuses `type: "html"` by name. The `html` field type is a different layer and stays. Migration: `ui/.changeset/13449-retire-html-renderer.md`.
49+
50+
### The `module` widget source is retired (objectui#13450, PR #13473)
51+
52+
`WidgetRegistry` no longer loads a widget's code from a URL at runtime, and `@object-ui/types` no longer exports `WidgetSourceModule`. That loader was a runtime dynamic import and needed `unsafe-eval` under a strict content security policy. A manifest that still declares the `module` source is refused before anything is fetched, with a message that names both replacement sources. Migration: `ui/.changeset/13450-retire-widget-module-source.md`.
53+
54+
### Nine zero-consumer modules are retired and the runner is private (objectui#13453 part 1, PR #13506)
55+
56+
`@object-ui/core` drops the fluent schema builders and the drag-and-drop, keyboard and sharing protocol bridges. `@object-ui/react` drops `useFocusTrap`, `useFocusReturn`, `useRovingFocus`, `usePageTransition`, `useSchemaPersistence` and `createLocalStorageAdapter`. `@object-ui/collaboration` drops `LiveCursors`. The test-only reset helpers are no longer on the package roots of `@object-ui/core`, `@object-ui/app-shell`, `@object-ui/types` and `@object-ui/plugin-detail`. Nothing in ObjectUI read any of them. `@object-ui/runner` is now private. Details: `ui/.changeset/13453-core-retire-dead-modules.md`, `13453-react-retire-dead-hooks.md`, `13453-collaboration-retire-live-cursors.md` and `13453-test-helpers-off-barrels.md`.
57+
58+
### The providers trio is retired (objectui#13453 part 2, PR #13507)
59+
60+
`@object-ui/providers` no longer exports `DataSourceProvider` / `useDataSource`, `MetadataProvider` / `useMetadata` or `ThemeProvider` / `useTheme`. They duplicated names that `@object-ui/react` and `@object-ui/app-shell` publish with different implementations. `UploadProvider` and the upload adapters are unchanged. Migration: `ui/.changeset/13453-providers-retire-trio.md`.
61+
62+
### Nine duration keys carry their unit in their name (objectstack#25762, PR #13515)
63+
64+
Nine keys on `carousel`, the three chatbot nodes, `ActionSchema`, `ActionSchema.retry`, `toast`, `tooltip`, `hover-card` and `report` now end in `Ms` or `Seconds`. The value and its unit do not change. An old key is refused at its own path with a message that names the new key, and its TypeScript member is `never`. Migration table: `ui/.changeset/25762-duration-keys-carry-unit.md`.
65+
66+
### Also in this range
67+
68+
- Every package's `react` / `react-dom` peer range is `^19.0.0` (was `^18.0.0 || ^19.0.0`): a React 18 host is no longer supported (objectui#13465, PR #13481).
69+
- The `react-pages` capability (`kind: 'react'` pages) now defaults to off in `@object-ui/core`; a host turns it on. The Console sets zod's `jitless` before any module runs, so zod no longer probes for `eval` (PR #13526).
70+
- An invalid `gantt` block is refused with each schema issue named, instead of drawn (objectui#13459, PR #13490). An action's `confirmText` or `successMessage` with no template hole is shown exactly as written (objectui#13476, PR #13482).
71+
- A record section whose fields are all empty folds into one "Show N empty fields" row (objectui#13386, PR #13483). The list, gallery, map and timeline record preview mounts `RecordDetailPanel` (PR #13486).
72+
- Bulk actions keep each failed record's id and reason, and refresh the bound list once per run (objectui#13442, PR #13474). The AI build chat's plan card says how the build will land (objectui#12724, PR #13508). Assistant answers render text and charts in stream order (objectui#13492, PR #13500).
73+
- Inline locale-map labels and descriptions on reports and pages show in the viewer's language (objectui#13470, #13488; PRs #13487, #13501). Positions show by label in a permission set's assigned users (objectui#13477, PR #13493). The translation preview draws the `positions` and `permissions` groups (objectui#13478, PR #13485). Calendar events with a lookup `titleField` show the record's display name (PR #13480). Unlabeled datasource enum selects get readable option labels (objectui#13353, PR #13499).
74+
- More console pages are translated (objectui#13460, PRs #13489, #13503). Icon-only buttons have accessible names and clickable controls are keyboard-reachable (objectui#13461, PR #13494).
75+
- Every published package declares `sideEffects` (objectui#13464, PR #13495). One `react` 19.3.0 line and one `zod` `^4.6.5` range across the packages, and single-copy pins for `@ai-sdk/react`, `ai` and `better-auth` (objectstack#25685, #25727; PRs #13472, #13496, #13512).
76+
- Tooling and test-only changes for the merge, which publish nothing: workspace-root readers and test assumptions (objectstack#25723, #25733; PRs #13484, #13498) and warm test imports (objectstack#25763, PR #13513).
77+
78+
Clause-②: yes (narrowing)
79+
Metadata-protocol: narrowed

0 commit comments

Comments
 (0)