0.51.0 (2026-10-02)
⚠ BREAKING CHANGES
- cli: callers that relied on implicit shell expansion in positional arguments must pass the script explicitly, e.g.
rtk test --shell sh 'cargo test && cargo clippy'.
Features
- hook: add native Google Antigravity plugin lifecycle and hook support (7efbaef)
- hook: add native Google Antigravity plugin lifecycle and hook support (27774fe)
- search: fold shared path prefix in file-list passthrough (feac25d)
Bug Fixes
- allow clean-run summaries to bypass never_worse guard for injected JSON (58f42f2)
- allow clean-run summaries to bypass never_worse guard for injected JSON (fixes #4218) (3d829e1)
- allow tee mode to record recall stats (9833d66)
- cli: answer for a program that cannot run, not just an unresolvable name (3ee51b2)
- cli: preserve argv boundaries in generic runners (c298de6)
- diff: return exit code 2 for unreadable files (bf23cff)
- discover: distinguish zero-session scans (bccafef)
- discover: match Claude project dirs case-insensitively on Windows (2955687)
- discover: name the scan scope in the zero-session message (22ae255)
- discover: require token boundaries for rewrite rules (60446ff)
- gradle: remove the unreachable gradle.toml filter (b4d2396)
- hooks: reach deployed hooks with the host scrub, and pin it (0b07197)
- init: --agent cursor installs Cursor only and creates ~/.cursor (b21c038)
- init: create Claude config dir for global init (91872ab)
- init: give the Antigravity plugin its awareness rules, and report like the sibling agents (0671ac5)
- openclaw: let the host own approval without losing RTK's deny gate (a89a314)
- openclaw: let the host own approval without losing RTK's gates (c6f484f)
- pip: stop doubling the tool name in pip messages (720d276)
- pip: use prog_label in tracking labels too (05320b9)
- pytest: preserve elapsed duration in summaries (c529013)
- pytest: preserve long-run durations (ebb6b72)
- read: only treat /* at line start as block comment opener (f3d4d9b)
- read: skip one-line strings and comments when tracking Python triple quotes (ea1ead8)
- read: track Python triple-quoted strings in minimal filter (c75f159)
- ruff: bypass never_worse only for the format rtk injected (bff334c)
- search: leave a file list verbatim when a line is not a plain path (3223a80)
- shell: run unresolvable single-string commands through the platform shell (ff9bd8e)
- shell: run unresolvable single-string commands through the platform shell (a6408ad)
- tests: keep the test suite and the developer's environment apart (4c8a255)
- tests: keep the test suite and the developer's environment apart (e0d99ab)
- use contains() instead of iter().any() for clippy (7a446f1)
Reverts
Miscellaneous Chores
- release 0.51.0 (f985ad8)