Filing gate: ② a decision only the maintainer can make. What a published tier's authors may legally write is a producer-side contract question (objectui). The CLI's gate either arms against the current answer or waits for a new one. Reader: the director seat's decision batch. After the ruling, the domain:cli seat lands #19922, which is held behind this card.
Filed by the domain:cli execution seat (#6024, session_01TnPAC1UsTGfHPXVUCL6iLn) from its round on #19922. ⛔ Not a claim. Routing and grading belong to triage.
The question
Should a kind: 'html' page be allowed to author intrinsic HTML tags (div, a, …)?
- Today the manifest the CLI would validate such pages against says no.
- The pages this repository ships say yes.
What was measured
All measurements are on origin/main aa04ea29, by the #19922 round, and re-read by this seat.
So landing #19922's fix before this is settled would:
- stop the repo's default dev app from compiling for anyone with a built console (CI does not compile the showcase with a console dist present, so CI stays green over it);
- at the next release, newly fail
validate / build / dev / start for every manifest-less customer project whose html pages use intrinsic tags. That narrows what the published CLI accepts, which is BREAKING.
Options (four axes)
The domain:cli seat's reading, ⛔ not a ruling: A. It is the only option in which the gate goes live without false positives and without breaking the tier's own authors. Its cost is a producer-side change in objectui. Until the ruling, #19922 stays pm:blocked on this card, with its fix fully specified there.
Related, not this decision
The same round measured that with no manifest reachable, the JSX gate degrades to parse-level validation and says nothing. That is filed separately as #20113, because a notice does not depend on this ruling.
Dedupe: MCP issue search in this repository (html tier intrinsic tags div a legal vocabulary sdui manifest jsx-forbidden-tag showcase html pages ratchet baseline, closed included): 6 hits, none this question. The nearest is #14490 (html tier: the type input of action:button / action:icon). Dedupe words: html tier intrinsic tags div a public-tier manifest · sdui-jsx-baseline ratchet-to-zero showcase html pages · jsx-forbidden-tag div is not an allowed component
Filing gate: ② a decision only the maintainer can make. What a published tier's authors may legally write is a producer-side contract question (objectui). The CLI's gate either arms against the current answer or waits for a new one. Reader: the director seat's decision batch. After the ruling, the
domain:cliseat lands #19922, which is held behind this card.Filed by the
domain:cliexecution seat (#6024,session_01TnPAC1UsTGfHPXVUCL6iLn) from its round on #19922. ⛔ Not a claim. Routing and grading belong to triage.The question
Should a
kind: 'html'page be allowed to author intrinsic HTML tags (div,a, …)?What was measured
All measurements are on
origin/mainaa04ea29, by the #19922 round, and re-read by this seat.The manifest.
packages/lint/src/sdui-jsx-baseline.json's header states: "the public tier deliberately declares no intrinsic HTML tags (59 curated blocks; div/a/p absent;htmlis the tier-C escape hatch), while the three shipped html pages author with div/a — every error below is a plain HTML tag, none is a real authoring mistake". It goes on: "What the html tier's legal vocabulary IS remains a producer-side question (objectui); this ledger keeps the gate live and honest while that question settles" (ratchet-to-zero per objectuiui#6779).Where the manifest goes.
scripts/build-console.shships the repo-rootsdui.manifest.jsoninside@objectstack/console'sdist(PR fix(sdui-manifest): one producer from objectui's built tree; retire the declaration-parity ratchet and the browser dump #19921, [finding] the tracked rootsdui.manifest.jsonand the browser dump differ on the fields the parity gate consumes (18 of 57 components;dataSourcemissing on 15 in the root artefact) — the gate's verdict set is identical under both today, which is the configuration in which the drift is least visible #17735).The fallback. The CLI's fallback to that file (
resolveSduiManifest(),packages/cli/src/utils/sdui-manifest.ts) is dead today: [finding] the CLI's@objectstack/consolemanifest fallback can never resolve:resolveSduiManifest()asks for@objectstack/console/dist/sdui.manifest.json, but the console'sexportsmap publishes only./package.json#19922, which resolves a subpath the console'sexportsdoes not publish. The fix is measured and ready: resolve@objectstack/console/package.jsonfrom the CLI's own location and joindist/sdui.manifest.json.With the file reachable,
examples/app-showcaseflips from exit 0 to exit 1:os validate,os compile(the stepos devandos startspawn) andos lint;jsx-forbidden-tagand 100jsx-unknown-component;kind: 'html'pages.These are the same 200 rows the ledger carries.
So landing #19922's fix before this is settled would:
validate/build/dev/startfor every manifest-less customer project whose html pages use intrinsic tags. That narrows what the published CLI accepts, which is BREAKING.Options (four axes)
@objectstack/consolemanifest fallback can never resolve:resolveSduiManifest()asks for@objectstack/console/dist/sdui.manifest.json, but the console'sexportsmap publishes only./package.json#19922 lands unchanged.@objectstack/consolemanifest fallback can never resolve:resolveSduiManifest()asks for@objectstack/console/dist/sdui.manifest.json, but the console'sexportsmap publishes only./package.json#19922 then lands as BREAKING (Clause-②: no (narrowing),minor, with a migration line), because customers' intrinsic-tag html pages newly fail at that release.The
domain:cliseat's reading, ⛔ not a ruling: A. It is the only option in which the gate goes live without false positives and without breaking the tier's own authors. Its cost is a producer-side change in objectui. Until the ruling, #19922 stayspm:blockedon this card, with its fix fully specified there.Related, not this decision
The same round measured that with no manifest reachable, the JSX gate degrades to parse-level validation and says nothing. That is filed separately as #20113, because a notice does not depend on this ruling.
Dedupe: MCP issue search in this repository (
html tier intrinsic tags div a legal vocabulary sdui manifest jsx-forbidden-tag showcase html pages ratchet baseline, closed included): 6 hits, none this question. The nearest is #14490 (html tier: thetypeinput ofaction:button/action:icon). Dedupe words:html tier intrinsic tags div a public-tier manifest·sdui-jsx-baseline ratchet-to-zero showcase html pages·jsx-forbidden-tag div is not an allowed component