Skip to content

Release v4.21.0

Choose a tag to compare

@github-actions github-actions released this 24 Sep 08:28
4dd5d47

This release tightens how the language is documented and checked. Modules and features can declare authorization, inline code blocks name their language on the fence, and inline code can read its context through typed accessors. The canonical corpus gains vectors for reordered and relocated sources, ESM v2 and fail-closed rejection. Documentation is now checked against the parsers, links and navigation.

Added

  • Modules and features accept authorize. It combines by AND with the policies of every command and query beneath them, and folder files merge it like behaviors; a repeated identical clause warns with PLAY0394 (#75)
  • Inline code blocks carry their language as a fence info string (```csharp). The previous forms — a language line above a bare fence, and validate csharp — still parse with a PLAY0397 warning, and printing writes the new form (#184)
  • Typed accessors beside every dynamic context member (CommandAs<T>(), ArgumentsAs<T>(), ArtifactAs<T>(), …), so LINQ in inline code binds at compile time. A payload of another type throws ContextPayloadTypeMismatch (#84)
  • Canonical corpus vectors: RegisterProject with reordered and relocated documents (same revision and bytes), a pinned ESM v2 vector, and an unsupported vector that fails closed with no artifacts. The corpus package now runs package validation (#168)
  • Documentation gates: every construct the parsers accept must have a grammar production and a reference page; every relative link and anchor must resolve and every page must be reachable from navigation. Documentation-only pull requests now run these checks (#146)

Changed

  • A file constraint warns (PLAY0396): Chronicle only supports unique constraints, so declare them with unique …, and put other rules in validation or require. The constraints page now states Chronicle's actual guarantee (#223)