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.
This commit is contained in:
parent
b35e2a04f0
commit
5e5e568e2c
14
CHANGELOG.md
14
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;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user