Skip to content

fix(extraction): read every parsed format with the crate's own parsers - #62

Merged
nolindnaidoo merged 1 commit into
mainfrom
fix/crate-parsers
Oct 17, 2026
Merged

nolindnaidoo merged 1 commit into
mainfrom
fix/crate-parsers

Conversation

@nolindnaidoo

Copy link
Copy Markdown
Owner
  • The engine's JSON, JSONC, YAML, TOML, INI and CSV readers moved off npm libraries and onto src/parsers/, the transcriptions shared with units-le.
  • Behaviour that now matches the crate:
    • Refusals use the crate's wording.
    • A repeated YAML key and a mixed-type TOML array are read.
    • A JSON lone surrogate and an unclosed INI header are refused.
    • JSON values come in source order, and repeated keys yield both values.
    • An unclosed quote in TSV is read.
  • Strict checks: the CLI parity no longer masks parse errors and has a broken document of every format, the differential compares refusals whole, and the crate's MCP test asserts the full message.
  • src/parsers/parsers.test.ts checks the parsers against what the real crates answer for 4,821 documents.
  • Every surface moves to 2.7.0.

The extension, the npm MCP server and the npm command line parsed with
JSON.parse, js-yaml, @iarna/toml, ini and csv-parse, which accept and
refuse different documents from the crate and word their refusals
differently. They now read with src/parsers/, the transcriptions of
jsonc-parser, saphyr, toml, rust-ini and csv shared with units-le and
held to the pinned crates by its own reference test.

SPEC.md's parsing divergences are closed. The CLI parity stops masking
parse errors and gains a broken document of every format, the
differential holds refusals and the once-divergent documents whole, and
the crate's MCP test asserts the full message. Every surface moves to
2.7.0.
@nolindnaidoo
nolindnaidoo merged commit c875802 into main Oct 17, 2026
36 checks passed
@nolindnaidoo
nolindnaidoo deleted the fix/crate-parsers branch October 17, 2026 14:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant