Skip to content

page requires, #20312 stage ③ (engine half): at load, a page whose requires names an absent plugin is reported with the plugin named, and the draft→active promotion re-stamps requires #20870

Description

@objectstack-fleet

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

  1. 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.
  2. 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.
  3. 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:studioChanging a running app without code — authoring, publish, docs and the portaldomain:engineenhancementNew feature or requestpriority:p3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions