Skip to content

Release v4.13.0

Choose a tag to compare

@github-actions github-actions released this 09 Oct 23:35
383b184

Scene can now diagnose broken navigation before anything renders, carries compatibility, attribution and license metadata on every template, and loads third-party design-time extensions through one generic, versioned host.

Added

  • diagnoseNavigation (@cratis/scene.engine) and NavigationDiagnostics.Diagnose (Cratis.Scene.Engine) report duplicate routes, duplicate, missing and incompatible outlets, navigation cycles through nested outlets and unavailable screen or dialog targets, with the same codes and messages in both engines. diagnoseRenderedNavigation in @cratis/scene.react compares the routes the renderer actually builds. See Navigation diagnostics. (part of #74)
  • An outlet can list the template types it accepts; a destination placing any other screen there is diagnosed as an incompatible outlet. (part of #74)
  • TemplateMetadata carries compatibility (Scene and package version ranges), attribution and an SPDX license with licenseUrl, in both the TypeScript and C# models. validateTemplateMetadata / TemplateMetadataValidation.Validate reject missing or invalid values, and describeTemplateCatalog / TemplateCatalog.Describe list every template with whether it can be used and why not. See Template compatibility, attribution and license. (part of #73)
  • resolvePackageHost exposes the approved bundles' template catalog as templates; set sceneVersion on the host configuration to check each template's Scene range. (part of #73)
  • resolveDesignTimeHost loads package previews, designers, property editors, property displays and design-time actions through generic lookups, with a generic fallback and a diagnostic for every unknown, undeclared, unloaded or incompatible extension. PackageDesignTimeMetadata.contractVersion and DesignTimeContractVersion version the contract. See Package design-time extensions. (part of #70)
  • runDesignTimeAction submits an action's canonical edit batch whole or not at all, so host validation and undo stay authoritative. (part of #70)
  • A design record compares the WinForms and ASP.NET designer patterns with Scene's extension points: Designer patterns from WinForms and ASP.NET. (part of #70)

Changed

  • Every built-in layout, screen template and dialog template in @cratis/scene.blueprint.default and @cratis/scene.blueprint.components declares compatibility with Scene ^4.13.0 and its package dependencies, Cratis attribution and the MIT license. The default shell and dashboard credit the Sakai arrangement they follow. (part of #73)
  • validateNavigationDestinations now uses the shared navigation diagnostics. Destinations that share a route and open the same target are no longer reported as duplicates. Pass screens and dialogTemplates to also check targets. (part of #74)