Twig 3.1.0 — Reliable data, a clearer path
This release hardens the Rust rewrite, improves everyday navigation, and brings the website and documentation into the same repository as the application.
Correctness and privacy
- Source changes automatically select a new content-validated cache. Failed or cancelled imports never publish partial data; concurrent loads are isolated.
- Mixed arrays preserve order, large unsigned integers stay numeric, and quoted bracket paths distinguish punctuation-containing keys from nested keys.
- Unicode previews/highlights no longer slice through UTF-8. Terminal and worker guards restore state and cancel unfinished work on exit.
- Private cache permissions, automatic retention,
--no-cache, and--clear-cachegive local data a defined lifecycle. - The RustSec-flagged YAML dependencies are replaced with
serde_norway.
Navigation and CLI
- JSON node-event parsing uses bounded insertion batches. Navigation uses 256-row pages and keeps the deepest columns visible; inspector previews have explicit limits.
- Mouse selection/scrolling, Vim movement, Enter-to-open, Home/End, and
g/G. - Literal substring search in document order.
%and_are literal characters. - Copy complete selected values up to 10,000 nodes, or show an explicit size error; copied data is never silently depth-truncated.
--fix --printcomposes correctly, JSON indentation works with-o, YAML detection is case-insensitive, and YAML print supports document streams.- JSON stdin for noninteractive modes,
-iindentation, and the legacy-vversion alias. Output-file replacement is atomic; CLI output is plain text. - Automatic legacy macOS config import when the new config is absent.
Distribution and documentation
- Fail-closed checksum verification with Linux/macOS tools, working piped help, pinned source installs, and destination-aware atomic installation.
- CI on stable and Rust 1.88 across Linux, macOS, and Windows, plus offline installer tests, dependency checks, and a cold-ingestion resource budget.
- Releases build the verified tag commit and publish checksums, provenance, build metadata, and these notes. Automatic releases wait for successful CI.
- A complete website rewrite with an interactive sample explorer, responsive layout, accessible controls, and guides generated from repository Markdown.
Upgrade notes
Install with curl -fsSL https://twig.wtf/install.sh | bash, or download the archive for your target. Source builds require Rust 1.88+ and a C compiler.
Old caches are ignored; close Twig and use twig --clear-cache to remove them. Punctuation keys now use paths such as .regions["us-east-1"]. JSON duplicate keys and multiple top-level values are rejected. Help is ?; h moves back. See the migration guide.
YAML parser memory, large scalars, full exports, and substring scans still have input-dependent resource costs. TUI YAML supports JSON-compatible values. Clipboard persistence after exit depends on the desktop manager. Native binaries are not OS code-signed/notarized; Linux targets use GNU libc. See the guide for cache privacy and platform limitations.