Repository navigation
Release v4.21.0
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 withPLAY0394(#75) - Inline code blocks carry their language as a fence info string (
```csharp). The previous forms — a language line above a bare fence, andvalidate csharp— still parse with aPLAY0397warning, and printing writes the new form (#184) - Typed accessors beside every
dynamiccontext member (CommandAs<T>(),ArgumentsAs<T>(),ArtifactAs<T>(), …), so LINQ in inline code binds at compile time. A payload of another type throwsContextPayloadTypeMismatch(#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
fileconstraint warns (PLAY0396): Chronicle only supports unique constraints, so declare them withunique …, and put other rules in validation orrequire. The constraints page now states Chronicle's actual guarantee (#223)