Skip to content

Commit 77338a7

Browse files
hotlongclaude
andcommitted
chore(changeset): the div ledger entry is already registered on main, the released 17.5.0 manifest note is corrected here, and two sentences say exactly when dev/start compile and what the console already refused
Claude-Session: https://claude.ai/code/session_local_1d2a197c-c20e-4e90-9be8-413d4d432289 Co-authored-by: Claude <noreply@anthropic.com>
1 parent f9cb969 commit 77338a7

1 file changed

Lines changed: 38 additions & 9 deletions

File tree

‎.changeset/19922-console-manifest-fallback.md‎

Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,34 @@ fix(cli)!: a project with no `sdui.manifest.json` of its own has its `kind: 'htm
66

77
Clause-②: no (narrowing)
88

9-
<!-- adr-0087: registered ui-html-page-div-refused -->
9+
<!-- adr-0087: not-required (already-registered ui-html-page-div-refused) The semantic ledger entry for this narrowing landed on main before this change, in its own pull request, so this diff adds none. `objectstack migrate meta --from 17` lists it among the manual changes, with `box` as the replacement for `div`. -->
1010

1111
**BREAKING for `kind: 'html'` pages in projects without their own manifest.**
1212

13-
**What changed.** `objectstack validate`, `objectstack compile` / `build` (which
14-
`dev` and `start` run first) and `objectstack lint` check the `source` of a
15-
`kind: 'html'` page against an SDUI component manifest: the `sdui.manifest.json`
16-
in the directory the command runs in, then the copy `@objectstack/console` ships
17-
as `dist/sdui.manifest.json`. The second lookup asked for that file by a subpath
13+
**What changed.** `objectstack validate`, `objectstack compile` / `build` and
14+
`objectstack lint` check the `source` of a `kind: 'html'` page against an SDUI
15+
component manifest. (`dev` and `start` run `compile` before they boot when
16+
`dist/objectstack.json` is missing or `--compile` is passed, and `dev`'s default
17+
watch mode reruns it when a watched file changes.) They look first for the
18+
`sdui.manifest.json` in the directory the command runs in, then for the copy
19+
`@objectstack/console` ships as `dist/sdui.manifest.json`. The second lookup asked for that file by a subpath
1820
the console package does not export, so it always failed, and a project with no
1921
manifest of its own had its html pages checked at parse level only: syntax and
2022
structure, never which components and props they use. The lookup now reaches the
2123
shipped copy, and those pages get full component and prop validation. A tag or
2224
prop the manifest does not declare is refused (`jsx-forbidden-tag`,
2325
`jsx-unknown-component`, `jsx-unknown-prop`), naming the page and the tag, and
24-
the command exits 1. Nothing refused these before: the parse-level check does
25-
not know the component set, and the html-tier renderer still renders `div`,
26-
deprecated there in favour of `box`.
26+
the command exits 1.
27+
28+
**What was refused before, and what is new.** The console has refused a `div` on
29+
a `kind: 'html'` page since `@objectstack/console` 17.5.0: when the page renders,
30+
its in-browser html compile answers `forbidden-tag`, naming `box`. These commands
31+
now give that answer while you author. What they refuse that nothing refused
32+
before is every other tag the manifest does not declare. The console's html
33+
compile accepts every component its registry knows that is not deprecated there,
34+
while the published manifest declares only the public component contract and the
35+
html tier's intrinsic tags. So a page using, for example, `avatar` or `checkbox`
36+
renders in the console and is refused here.
2737

2838
## FROM → TO
2939

@@ -41,3 +51,22 @@ unchanged.
4151
**A damaged install is refused, not skipped.** A shipped copy that is present
4252
but cannot be read or parsed stops the command with exit 1, naming the file,
4353
with the remedy: reinstall `@objectstack/console`.
54+
55+
**A correction to the 17.5.0 note on this manifest.** The `@objectstack/console`
56+
17.5.0 patch entry `28ce612`, the one that says the prebuilt Console dist now
57+
ships `dist/sdui.manifest.json`, ends with a paragraph that this release changes,
58+
sentence by sentence:
59+
60+
- "For now the file is only present in the tarball." No longer true: the CLI
61+
reads it, as described above.
62+
- "This package's `exports` map exposes `./package.json` and nothing else, so
63+
resolving `@objectstack/console/dist/sdui.manifest.json` through `exports`
64+
fails with `ERR_PACKAGE_PATH_NOT_EXPORTED`." Still true: the `exports` map is
65+
unchanged.
66+
- "Anything that resolves through `exports` cannot read the file yet." Still
67+
true. To read the file, resolve `@objectstack/console/package.json` and join
68+
`dist/sdui.manifest.json` to its directory.
69+
- "That includes the CLI's JSX-page manifest fallback, which catches the error
70+
and keeps parse-level validation, as before." True of the 17.5.0 CLI, false
71+
from this release: the fallback now reads the file that way, so a project
72+
without its own manifest is checked against the shipped copy.

0 commit comments

Comments
 (0)