diff --git a/.changeset/10393-retire-bare-map-key.md b/.changeset/10393-retire-bare-map-key.md index a8488f7b07..5bbdb87ba5 100644 --- a/.changeset/10393-retire-bare-map-key.md +++ b/.changeset/10393-retire-bare-map-key.md @@ -41,11 +41,29 @@ should be migrated there. - `@object-ui/core`: `recordSourceDataArmForType` no longer lists the `map` and `view:map` rows, since no block is registered under either key. - `@object-ui/cli`: the generated known-type list that `objectui check` reads no - longer contains bare `map`, so the check now flags it. ⚠️ `view:map` stays on + longer contains bare `map`, so the check now reports `map` as an unknown + schema type in a file it recognises. ⚠️ `view:map` stays on that list, because the opt-in protocol placeholder (`registerPlaceholders()` in `@object-ui/components`) registers it — in the console a `view:map` node - renders that placeholder panel, not a map, and `objectui check` does not flag - it. Search documents for `view:map` directly. + renders that placeholder panel, not a map, and `objectui check` does not report + it as an unknown schema type in a file it recognises. A bare + `{ "type": "view:map" }` with no structural key is listed in `check`'s advisory + did-not-validate list instead, because `view:map` is on the known-type list and + `AnyComponentSchema` has no arm for it; that line does not say the node renders + a placeholder. Search documents for `view:map` directly. + +⚠️ **Dated note, 2026-09-25 — `objectui check` flags `map` only in a file it +recognises — objectui#10606.** This entry first said, unscoped, that the check now +flags bare `map`. `check` checks the `type` of each file it recognises, and a file +whose root carries an ObjectUI structural key (`children`, `className`, `body`, …) +is recognised by that key alone. A file with none of those keys is parsed against +the schema and recognised only if it validates; one that does not validate is +listed by name when its root `type` is on that known-type list, and is otherwise +counted as skipped. `map` is no longer on it, so `{ "type": "map" }` is +counted as skipped ("no ObjectUI recogniser admitted") and gets no unknown-type +line, while `{ "type": "map", "className": "h-64" }` gets one. `check` exits +non-zero on unreadable JSON only; the verdict is `objectui validate`'s: it refuses +`{ "type": "map" }` at `type` (`invalid_union`) and exits non-zero. The `@object-ui/plugin-map` README now describes one registered type, and its sentence claiming a bare array under `data` reaches the in-memory adapter is diff --git a/.changeset/8760-unfulfilled-chart-stubs.md b/.changeset/8760-unfulfilled-chart-stubs.md index 9baccf564a..6ba98f93e6 100644 --- a/.changeset/8760-unfulfilled-chart-stubs.md +++ b/.changeset/8760-unfulfilled-chart-stubs.md @@ -45,13 +45,25 @@ implementation to match it. **Breaking, for anyone who authored a retired key.** A document with `{ "type": "line-chart" }` used to resolve in the registry and then draw nothing; it is -now refused by name — `objectui check` reports `Unknown schema type "line-chart"`, and -`SchemaRenderer` paints the `OBJUI-001` panel instead of an endless skeleton. That is a +now refused by name — `SchemaRenderer` paints the `OBJUI-001` panel instead of an endless +skeleton. `objectui validate` refuses the document at `type` (`invalid_union`). That is a louder failure for the same broken document, not a new one: no document that previously DREW is affected. Migrate to `{ "type": "chart", "chartType": "line" | "area" }`, which `CHART_TYPE_KEYWORD_FAMILIES` resolves. Scored `minor`, not `major`, per AGENTS.md §版本号策略. +⚠️ **Dated note, 2026-09-25 — `objectui check` warns only in a file it recognises — +objectui#10606.** This entry first said `objectui check` reports `Unknown schema type +"line-chart"` for that document. `check` checks the `type` of each file it recognises, and a +file whose root carries an ObjectUI structural key (`children`, `className`, `body`, …) is +recognised by that key alone. A file with none of those keys is parsed against the schema +and recognised only if it validates; one that does not validate is listed by name when its +root `type` is on the known-type list `check` reads, and is otherwise counted as skipped. +`line-chart` is no longer on that list, so `{ "type": "line-chart" }` is counted as skipped +("no ObjectUI recogniser admitted") and gets no unknown-type line, while +`{ "type": "line-chart", "className": "h-64" }` gets one. `check` exits non-zero on +unreadable JSON only; the verdict is `objectui validate`'s. + **What moved.** The stub lists in `apps/console/src/register-plugins.ts` and `apps/console/src/preview-gallery.tsx` (both loops, because the doc gate's key universe is their union — retiring one alone would have changed nothing observable); the dashboard doc diff --git a/.changeset/9533-dashboard-bare-key-converge-plugin-namespace.md b/.changeset/9533-dashboard-bare-key-converge-plugin-namespace.md index 7a62fbebff..209824d3c9 100644 --- a/.changeset/9533-dashboard-bare-key-converge-plugin-namespace.md +++ b/.changeset/9533-dashboard-bare-key-converge-plugin-namespace.md @@ -8,9 +8,25 @@ Converge the bare `dashboard` key on `plugin-dashboard`, and retire **Breaking for authored metadata.** `{ "type": "view:dashboard" }` no longer renders a dashboard. It now resolves to a refusal that names the spelling and -names its replacement, and `objectui check` reports it as an unknown schema -type. `{ "type": "dashboard" }` and `{ "type": "plugin-dashboard:dashboard" }` -both render `DashboardRenderer`, unchanged and newly-working respectively. +names its replacement. `objectui validate` refuses the document at `type` +(`invalid_union`). `{ "type": "dashboard" }` and +`{ "type": "plugin-dashboard:dashboard" }` both render `DashboardRenderer`, +unchanged and newly-working respectively. + +⚠️ **Dated note, 2026-09-25 — `objectui check` names the spelling only in a +file it recognises — objectui#10606.** This entry first said `objectui check` +reports `{ "type": "view:dashboard" }` as an unknown schema type, and **What +changed** below said, unscoped, that `check` names the spelling. `check` checks +the `type` of each file it recognises, and a file whose root carries an ObjectUI +structural key (`children`, `className`, `body`, …) is recognised by that key +alone. A file with none of those keys is parsed against the schema and +recognised only if it validates; one that does not validate is listed by name +when its root `type` is on the known-type list `check` reads, and is otherwise +counted as skipped. `view:dashboard` is withheld from that list, so the document +above is counted as skipped ("no ObjectUI recogniser admitted") and gets no +unknown-type line, while `{ "type": "view:dashboard", "className": "h-64" }` gets one. +`check` exits non-zero on unreadable JSON only; the verdict is +`objectui validate`'s. **What was wrong.** `apps/console` declares the lazy stub for bare `dashboard` under `plugin-dashboard` — twice, in `preview-gallery.tsx` and @@ -44,9 +60,9 @@ key name ONE full type. The retired `view:dashboard` key answers carrying the same text — registered with `skipFallback: true` so it claims no bare key. Its spelling is withheld from the derived key universe by declaration in `scripts/check-doc-component-types.mjs`, the same disposition the -`RETIRED_FIELD_TYPES` tombstones take, so `objectui check` names it rather than -blessing it; `packages/cli/src/utils/known-schema-types.ts` regenerates and loses -that one entry. +`RETIRED_FIELD_TYPES` tombstones take, so `objectui check` names it in a file it +recognises rather than blessing it; `packages/cli/src/utils/known-schema-types.ts` +regenerates and loses that one entry. **Also published: four new symbols on the package entry.** `src/index.tsx` re-exports `RETIRED_DASHBOARD_NODE_TYPES`, `RetiredDashboardNodeTombstone`,