github Gentleman-Programming/gentle-ai v2.9.0
v2.9.0 — RTK Joins the Toolbox, Remediation Finds Its Exit

4 hours ago

Gentle AI v2.9.0 ships RTK as an opt-in Community Tool, and closes four SDD attempt-ledger dead ends that left remediation unfinishable: status now names the same failed evidence the ledger accepts, a budget-exceeded pass can be remediated after an audited reset, and a wrong remediation pointer is refused with the chain's actual value instead of a shape hint. gentle-ai sync also accepts an agent config directory symlinked into a dotfiles repository.

Provenance

  • Previous stable: v2.8.2e3f53de6
  • Release target: v2.9.0be49554794917ae92a6dc9dbfa2eb3db5cf70084
  • Release workflow: run 34829397766
  • Verification: preflight, release, and verify jobs all succeeded.
  • Provider contract: 1.2.0

What's new

RTK is an opt-in Community Tool

RTK (Rust Token Killer) compresses command output before it reaches the model's context. The installer's Community Tools screen now offers it as an opt-in integration, never selected by a preset or by detection. On supported macOS and Linux architectures it installs the attested pinned v0.49.0 binary at ~/.local/bin/rtk, configures only the detected and selected Claude Code, OpenCode, Codex CLI, and Pi installations, and disables RTK telemetry for every child process. gentle-ai sync restores a persisted RTK selection with the same pinned setup. Windows stays explicitly unavailable, Gentle AI does not edit shell profiles or PATH, and RTK removal remains the upstream manual workflow. This completes the acquisition foundation that shipped in v2.8.2.

Included work: #4560.

Breaking changes

No breaking changes are declared for v2.9.0. The provider contract remains at 1.2.0 and previously published contract artifacts remain byte-frozen.

Upgrade now

brew upgrade gentle-ai
gentle-ai sync

Run gentle-ai sync after upgrading so managed agent, reviewer, and runtime assets match the installed binary.

What was fixed

SDD attempt ledger

Native SDD status derived the remediation revision from the verify-report file while sdd-attempt settle bound it to the ledger's newest failed attempt, so after a failed remediation the two disagreed forever and consumers relaying the status value were refused with invalid_continuation. Status now resolves that revision through the ledger chain, falling back to the file only when no ledger exists.

A settle that passed verification but exceeded max_changed_lines was hidden from the remediation chain, so the audited reset --relation remediation route could never re-acquire and returned remediation_unsatisfiable. A budget-exceeded pass is now the chain's unremediated attempt, carrying the evidence the maintainer was told to reset over.

--remediates-evidence-revision is a pointer to a value the ledger already recorded. Its shape was checked before its equality with the chain, so a wrong pointer was refused with a shape hint and no chain value. The pointer is now decided by equality first, every refusal names the chain's actual value and the exact sdd-attempt subcommand to rerun, and two redundant shape gates are gone.

Included work: #4564, #4567, #4569.

Sync

The telemetry runtime ownership check refused any symlink among the agent config root, the plugins directory, and the managed leaf, so a config directory symlinked into a dotfiles repository (stow, chezmoi, plain symlink farms) aborted the whole sync pipeline before any other managed asset refreshed. A root symlink that resolves to an existing directory is now a valid managed root, indirection inside the root is still refused, and both refusals name the exit.

Included work: #4565.

OpenCode review transport

The OpenCode reviewer relay accepted only the byte-exact completed Task wrapper and classified every other real shape as malformed output, including an empty result from a reviewer that produced no final text, the optional host summary line, and background or error states. It also imposed a 10-minute bound that preempted longer valid reviews. Task outcomes are now decoded semantically and typed distinctly, and the deadline is replaced by a silent-host backstop.

Included work: #4545.

Engram protocol

The Engram protocol asset now states the ambiguous_project recovery contract precisely for both session start and write tools, with byte-exact fixtures updated across every affected surface.

Included work: #4179.

Numbers

16 non-merge commits, 7 merged pull requests, and 4 unique GitHub PR authors since v2.8.2.

Install

brew install Gentleman-Programming/tap/gentle-ai

or

go install github.com/gentleman-programming/gentle-ai/v2/cmd/gentle-ai@v2.9.0

Windows remains supported through the Go installation path. Official Windows binary archives and Scoop publication remain unavailable; Windows upgrades fail closed to Go-based guidance rather than downloading unsigned binaries.

Signed platform archives below: linux_amd64, linux_arm64, darwin_amd64, darwin_arm64, with checksums.txt and its minisign signature.

Don't miss a new gentle-ai release

NewReleases is sending notifications on new releases.