v2.1.5-alpha — production-hardening follow-ups
Pre-release
Pre-release
Production-hardening follow-ups — the remaining issues from the code- & test-quality reviews (milestone v2.2.0 — production hardening). The exported /v2 surface is unchanged (TestExportedSurfaceGolden frozen); this stays -alpha (pre-production maturity, not API churn).
Fixed
- XML/HTML
Reformatno longer decodes entities into the buffer — it re-encodes&→&,<→<(and"→"inside attribute values), so a reformat-then-save stays valid markup and round-trips&(#81). Display/copy still show the decoded text. - A JSONC document that begins with a comment auto-detects as JSONC (a
// licenseheader or{ // note) instead of falling back to raw, preserving the comment as a visible node; a//inside a string value still stays plain JSON (#82).
Performance
- The live edit reproject pools its Document arenas + buffer snapshot across keystrokes (#80): a keystroke on a large over-budget buffer drops from ~18.6 MB / 18 allocs to ~32 B / 1 alloc and is ~35 % faster, byte-identical to a fresh parse (locked by a randomized equality fuzz). Wall-time stays O(buffer); work strictly proportional to the edited region is deferred to #84.
Changed
- Dropped the dead
tabWidthparameter from the internalParseEditableColored(#83).
Docs
- Reconciled the contradictory
-alpha/ "v1.0.0 frozen" / "pre-1.0 v0.x" copy to one story across README / package docs / SECURITY.md / CHANGELOG, and added a testable drop-alpha checklist to WORKFLOWS.md (#67).
Full changelog: see CHANGELOG.md.
Full Changelog: v2.1.4-alpha...v2.1.5-alpha