Skip to content

Release v4.114.0

Choose a tag to compare

@github-actions github-actions released this 15 Oct 18:22
bb20936

The running Stage renders and hosts Screenplay output with the same code the Studio preview runs: Scene's navigation regions, slice task dialogs, and the shared composition and host.

Changed

  • Shared composition and host. App.tsx composes every screen through composeApplicationScreen and runs it in ApplicationHost (@cratis/scene.blueprint.default 4.38). The Stage decides only what is its own: shell chrome, the command form, the status line, data sources (decorate), and a scope providing its data, interactions, theme and slice invoker around the screen and every dialog. Deleted: FlowArrangementView, useSizeClass, the Stage:template wrapper, StageNavigationTree and its CSS - Scene owns them (REN2).
  • Navigation regions. A model with navigation topbar|sidebar gets the blueprint shell's regions drawing the effective navigation (inherit / extend / override per module); module swap, active state in both regions, render-into-slot, first feature for a module target come from Scene. screenFor and moduleOf (Scene #134) are the Stage's: the screen declared in a feature, the first of a screen's path. A model with no regions keeps the authored Navigation contributions / flat screen list.
  • Toolbar slice dialogs with the real invoker. A toolbar button naming a State Change slice opens Scene's SliceDialogView; fields come from the command's JSON schema (schemaPropertiesOf, shared with StageCommandForm); submit posts to the route the Stage registered through createStageSliceInvoker, validation results return against their fields, success closes and refreshes data.
  • Deep links. Hash history (createHashSceneHistory) restores module, feature and slots on reload; asserted in a browser.
  • Permission-hidden items. App takes isVisible(item), fed to the regions: hidden, never disabled, at every level.
  • Wire. SceneApplication.Structure is now serialized in the runtime document and the live scene when a toolbar button names a slice (otherwise byte-identical to before: plan digests move only for the Scene 4.38 pin and the frontend files); commandSchemas carries each command's JSON schema in the same case.
  • SD6. SceneApplication.ForRuntime() and StageSceneDocument strip sample data packs, blueprint packs and the profile's selection from the runtime document and /stage/scene.
  • Scene packages pinned to 4.38.0 (frontend, scaffold package set, specs); NuGet Cratis.Scene.* stays on the latest published (4.36.0) until 4.38 is indexed.
  • Docs: Documentation/reference/stage-rendering.md (navigation regions, slice dialogs, no sample data, one composition). (part of #407)