1.2.0 (2026-11-08)
Features
- git: fold ls-tree path listings by directory (#1816)
Bug Fixes
- analytics: sum per-project ccusage rows in monthly economics (#4771)
- cargo: keep nextest timeouts and retried failures (#4697)
- cicd: build the deb, rpm and aarch64 Linux binaries as static musl (#5017)
- dotnet: preserve discovery and classic TRX reports (#4628)
- gain: distinguish filtered timings from passthrough lifetimes (#4677)
- git: announce the cap on the filtered
git logpath (#4152) - hermes: close the rewrite's stdin and make its timeout configurable (#3833)
- hook: honour opt-outs inside a quoted script behind uv run (3467fb2)
- hook: preserve fish-wrap decisions and reuse permission scans (#4785)
- hook: rewrite commands without rewriting the text between them (#4132)
- hook: skip proxy autostart on occupied loopback ports (#4778)
- hooks: honour exclude_commands for a swapped program called by path (#5019)
- hooks: preserve host checks when settings cannot be loaded (#4680)
- init: install the OpenCode plugin independently of agent setup (#4740)
- init: return exit code 2 when codex uninstall guard refuses hook (fixes #4164) (#4463)
- init: scope guidance to external commands (#4175)
- lexer: classify heredocs before /dev/null exemption (#4666)
- lint: route SQLFluff file shortcuts through lint (#4683)
- ls: hold a bare listing to what ls prints, not to the long listing rtk asks for (#4833)
- permissions: ignore NotADirectory and strip BOM before empty check (#4658)
- pipe: preserve non-JSON Go test reports (#4455)
- pipeline: swap commands rtk has no filter for (#4685)
- read: fall back to raw bytes when a plain read is not valid UTF-8 (#4066)
- read: separate line numbers with a tab (#4647)
- read: window the tracking baseline like the output, so a partial read is not booked as a saving (#3943)
- ruff: route flag-first implicit check invocations to check (#3927) (#3968)
Performance Improvements
- hook: use mimalloc as the global allocator on musl builds (#4461)