Skip to content

Release v4.12.1

Choose a tag to compare

@github-actions github-actions released this 04 Sep 17:07
6f4febe

Summary

Two related but independent problems with .play tooling: the Monaco invoicing sample had drifted from the current grammar, and the VS Code/Monaco language service was reporting real policy, event, and type names as "unknown" because of a bug in its own scanner — not the compiler.

Fixed

  • The invoicing sample declared layout MasterDetail/layout DashboardLayout nested inside the module and referenced them from screens as layout X. The current grammar declares the application shell as a top-level layout (with an arrangement), selected from a ui profile, while a module declares screen template/dialog template and a screen fills one with template X. The sample now matches the shape already used and compiler-verified in for_ScreenplayCompiler/invoicing.play.
  • The editor's symbol scanner (screenplay-language/symbols.ts) matched any two-token indented line as a typed property, without excluding reserved directive keywords. authorize <Policy>, produces <Event>, tag <Name>, validate csharp, and each concurrency dimension (sourceType/streamType/streamId <Value>) were all misread as properties and flagged "Unknown type" whenever the second token wasn't coincidentally a declared concept or type — 16 false warnings on the invoicing sample alone. Directive lines are now excluded from property matching, honoring the existing @name escape for the rare property genuinely named after a reserved word.

🤖 Generated with Claude Code