Repository navigation
Added
- CLI resource limits for initial loading and reloading:
--max-input-bytes(8 MiB),--max-nodes(100,000), and--max-depth(128). Set a limit to0to disable it for trusted input. bubbletea.WithAliasRowLimitto bound projected alias rows. The default is 10,000; nonpositive values hide projections without hiding ownership rows.- Document accessors for sequence lengths, individual sequence items, mapping entries, and reverse reference lookups.
- Regression tests for YAML editing, snapshot isolation, terminal rendering, save conflicts, atomic saving, and Windows ACL preservation.
- YAML round-trip and selector fuzz tests, plus Linux and Windows CI builds, vet checks, Linux race detection, and reachable vulnerability checks.
Changed
- CLI saves now prepare, flush, and close a temporary file before replacing the destination. Existing symlinks are preserved, file mode bits are retained, and Windows replacement preserves the destination's ACL.
- Document snapshots share unchanged immutable nodes; builder mutations copy only affected nodes.
- Capability and selector resolution avoid copying entire parent containers. Deletion checks use reverse reference indexes instead of scanning the full document for every candidate.
- Terminal tree rows are cached across unchanged views and refreshed when the document, expansion state, or validation results change.
- Terminal widths, clipping, cursor movement, and deletion account for wide characters and grapheme clusters.
- Embedding documentation delegates saving to an application-owned persistence callback and describes resource limits and safe file replacement.
Fixed
- Optional YAML mapping entries can be deleted when schema and policy allow it, while mapping keys remain protected from editing.
- Moves that would place a YAML alias before its anchor are rejected without changing the document or history.
- NaN values produce validation errors when numeric minimum or maximum constraints are configured.
- Input-derived terminal control sequences and bidirectional formatting controls are displayed as escaped text without modifying stored values.
- Failed file writes or save preparation no longer truncate the original file.
Full Changelog: v0.1.0...v0.2.0