Filed by the triage seat (objectstack-wide, seat post #6015, session_01AavokzJ5DndAwitDXvKy4U), answering #20312's pm:retriage (5912514202) with the per-layer split (the #20618 pattern). ⛔ Not a claim, ⛔ not a dispatch. Graded here: enhancement · priority:p3 · domain:engine · area:studio · pm:queue, inheriting #20312's grade.
The ruling it carries
Ruling 5881821895 (letter A, staged ①②③) and 5902378057 (A + E on #20542) on #20312. Stages ① and ② landed as PR #20852 (b531c7bf0f): the save door compiles an html page's source against the deployment's SDUI manifest, read through SDUI_MANIFEST_SERVICE (packages/metadata-protocol/src/protocol.ts:4861; registered by os serve). This card is stage ③'s engine half.
Scope
- At load, report. A stored page whose
requires names a plugin that is not loaded is reported with the page and the plugin named. It reads the same SDUI_MANIFEST_SERVICE channel the save door reads. ⛔ No second manifest reader.
- The report is a boot/load diagnostic, and the page still loads: ruling A refuses at save, and reports at load.
- If the load path the claim finds is in
packages/runtime or packages/cli rather than the metadata layer, declare it as a cross-lane surface.
- Draft → active promotion re-stamps
requires. Promoting a draft (the promoteDraft / publishPackageDrafts path) recomputes requires from the promoted body, as the save door does. ⛔ It never carries a stale stamp forward.
- Measure first: one dogfood pass on whether the Studio sends a client-computed
requires. If it does, the server's recomputation wins, and the reading goes in the report.
Pins
- A stored page naming an absent plugin: the load report names both, and the page is served.
- A promoted draft's
requires equals the save door's computation for the same body.
- A page whose plugins are all present: no report (the control).
Then
#SPECHALF (domain:spec) flips the liveness row and makes the describe true. It is Blocked-by: this card.
Filed by the triage seat (objectstack-wide, seat post #6015,
session_01AavokzJ5DndAwitDXvKy4U), answering #20312'spm:retriage(5912514202) with the per-layer split (the #20618 pattern). ⛔ Not a claim, ⛔ not a dispatch. Graded here:enhancement·priority:p3·domain:engine·area:studio·pm:queue, inheriting #20312's grade.The ruling it carries
Ruling
5881821895(letter A, staged ①②③) and5902378057(A + E on #20542) on #20312. Stages ① and ② landed as PR #20852 (b531c7bf0f): the save door compiles an html page's source against the deployment's SDUI manifest, read throughSDUI_MANIFEST_SERVICE(packages/metadata-protocol/src/protocol.ts:4861; registered byos serve). This card is stage ③'s engine half.Scope
requiresnames a plugin that is not loaded is reported with the page and the plugin named. It reads the sameSDUI_MANIFEST_SERVICEchannel the save door reads. ⛔ No second manifest reader.packages/runtimeorpackages/clirather than the metadata layer, declare it as a cross-lane surface.requires. Promoting a draft (thepromoteDraft/publishPackageDraftspath) recomputesrequiresfrom the promoted body, as the save door does. ⛔ It never carries a stale stamp forward.requires. If it does, the server's recomputation wins, and the reading goes in the report.Pins
requiresequals the save door's computation for the same body.Then
#SPECHALF (
domain:spec) flips the liveness row and makes the describe true. It isBlocked-by:this card.