Repository navigation
Screenplay train: ESM v32 typed capture identities, lifted language freeze, matching package - #1043
Conversation
Share the portable parser and linear VM between the compiler and generated .NET applications without pulling compiler dependencies into their runtime.
Require the exact Matching release when the compiler consumes its internals. Classify internal matcher invariant failures as invalid operations and cover all three branches.
Run the obligation check after executable continuity so earlier refusals keep their precedence, reuse the cached authoring snapshot and remove the unused WorkspaceDeclarationMove.Applies.
Decision: 0105
… subjects, reference choice, screen titles and performer bodies (SoloCRM run 3)
…ence, clock boundaries, calendar precedence
…the choice follow-ups in the proposed records
Decision: 0105
…ges in a DST overlap
Take main's newer Cratis AI corpus (276ebf7f, 17 commits ahead of 1d2716dc) for every managed path.
|
Notes for reviewers (not part of the release note). Train contents: #1035 + decision 0105, #965, #1034, #1020, #1007 part 1 (protected command reads in samples and examples), decision records 0106-0113 (Proposed, for woksin to accept), notation doc, Cratis AI corpus update. Local gates at 2bad755 (all exit 0): yarn install/build/compile/lint:ci/test; Debug build; spec shards compiler (13657), MCP (3394, 3 Windows-only skips), contracts/tool/vectors (incl. Matching, CanonicalVectors); Release build; CanonicalVectors Release net8/9/10; pack; verify-package; MCP packaging unittest. Review: full review workflow, round 1, at 2bad755: passed. AI corpus: tracked by Cratis/AI#883 (#1007 protected reads) and Cratis/AI#892 (#1035/0105, #965, #1034). Train cut at 15:10; Screenplay#1042 goes to the next train. |
Added
Uuid-based concept is no longer flattened to text. Models that use it select ESM v32; other models keep their version and bytes. (Type a captured event's event-source identity from a typed capture key #1035)Cratis.Screenplay.Matchingpackage: generated .NET applications can validate conceptmatchesrules with the same portable matcher the compiler admits, including patterns too large for .NET's non-backtracking regex engine. Reference it at the same version as the Screenplay compiler. (Expose the portable match pattern translation to hosts #1034)Changed
propose-movetool: a specification shared with a declaration that stays, or a move that leaves a specification obligation unmet. Carried specifications are computed automatically; a supplied list must match them. (propose-move: enforce declaration-move refusals in the core and align the refusal response #965)propose-moverefusals now report the standardProposalRejectedfailure kind with the usual rejection fields. (propose-move: enforce declaration-move refusals in the core and align the refusal response #965)@cratis/screenplay-languagenpm package now lists Cratis as author and links to the Screenplay documentation. (Complete NuGet package metadata #1020)