From 5e5e568e2c3a5431d7e91ad0fb1c786794457456 Mon Sep 17 00:00:00 2001 From: Mihaela M Date: Mon, 29 Jun 2026 12:21:20 +0200 Subject: [PATCH] docs(changelog): record the converged located-parse and conformance work The located-parse port, per-document %TAG scoping with tag-handle diagnostics, and the parse-gap fixes landed on main without CHANGELOG entries, and the new canonical event-stream conformance gate was undocumented. Record them under Unreleased so the changelog gate passes and the release notes are complete. --- CHANGELOG.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 108ab8f..ec5e3a5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- Opt-in located parse: `parseStreamLocated` returns a source-span projection of every document, + each node carrying its `SourceRange` (line/column start and end) through `Model.LocatedValue` and + `Model.LocatedPair`. It runs alongside the plain parse without changing it, for callers that need + exact source positions (diagnostics, surgical fixes, language servers). +- `%TAG` directives are now scoped per document rather than globally, and a tag shorthand whose + handle is not defined in its own document is diagnosed instead of silently resolved. +- Canonical event-stream conformance gate: the parser is checked against the official yaml-test-suite + event (yeast) format, the strongest oracle, comparing anchors, tags, scalar styles, flow vs block, + and aliases for every valid case including those with no `in.json`. It ships an explicit recorded-gap + set (never a silent skip) and a CI workflow that fetches the suite and runs it on every push. - The tagged validator now enforces mapping-key uniqueness, the invariant the coverage manifest already claimed for `Tagged.Mapping` and `Tagged.Node` but no check enforced. `Tagged.Mapping` keeps every parsed pair, so a duplicate key survives into the tree; `Tagged.BuiltinCheck` @@ -84,6 +94,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed +- A repeated document-end marker (`...` immediately followed by another `...`) is now accepted. +- A root-level block scalar (`|`/`>` as the whole document) now ends at a following document marker + (`---`/`...`) rather than folding the marker into its content. +- An empty explicit key in a flow mapping now parses. - An explicit mapping key that is only a node property (`? &e` then `: &a`) now parses as an empty key carrying that property, completing the empty-property-key work for the explicit-key form. The block parser rejected the `:` after a property-only explicit key with an `expectedNode` error;