Skip to content

Release v4.52.0

Choose a tag to compare

@github-actions github-actions released this 10 Oct 05:38
0e4fd87

A generated React application now renders its screens with the same Stage frontend runtime a live Stage uses, so shells, routing, outlets, dialogs, bindings, native command forms and theming behave the same in both.

Added

  • cratis render emits the Stage frontend runtime into a generated application under .frontend/stage, with src/stage-scene.json (the composed Scene with native command form metadata) and src/stage.ts (routes read from the generated Arc proxies, plus localized strings). The generated frontend renders the full composed application instead of a single screen. (part of #236)
  • CommandFormSchemas in Cratis.Stage.Contracts gives the presentation schema and form fields for a command's properties, so the same command shows the same form fields in a live Stage and in a generated application. (part of #236)
  • The Stage frontend reads its Scene, routes and strings through a StageSource, which serves either the /stage endpoints or content built into an application. App also accepts extra components for its registry. (part of #237)
  • Verification/generated-react-browser runs the browser scenarios used against a live Stage against a generated application served on its own backend: two-item scoped selection, deep link, delayed-response discard, clear, native create, rename and add-comment forms, theme, and fail-closed guarded actions. (part of #237)

Changed

  • Generated applications pin their frontend packages to the versions the Stage frontend builds with: @cratis/arc 22.58.2, @cratis/components 4.26.2, @cratis/fundamentals 7.22.8 and @cratis/scene.* 4.12.0. Re-rendering an existing application updates its package.json to these versions. (part of #236)
  • A generated application loads the PrimeIcons font, applies the Stage theme and serves styled PrimeReact components. It reads the PrimeUI license from PRIMEUI_LICENSE or STAGE_PRIMEUI_LICENSE at build time. (part of #236)

Fixed

  • A modeled value of an enum concept now renders as its enum member, so a generated backend that uses one in a command or specification compiles. (part of #236)
  • Generated query specifications declare only the result field their query assigns, so the generated Debug build has no unused-field warning. (part of #236)
  • An authored action with no planned route now uses the command route the running application registered, and stays disabled when there is none. (part of #237)
  • After a successful command, Stage reads the screen's queries again once an asynchronous projection has had time to apply it, so the screen shows what the command did. (part of #237)