Gentle AI v3.6.0 is a minor release with one new capability and three fixes. gentle-ai install and sync now honor PI_CODING_AGENT_DIR, the same override Pi reads, so a Gentle Shell isolated home can be provisioned without touching the real ~/.pi/agent. On the fix side, the Claude Code UserPromptSubmit hook is now PowerShell-safe on Windows, the hook migration no longer appends the canonical entry twice, and uninstall --help and restore --help answer with real usage. The provider contract stays byte-frozen at 1.2.0, and the Go module path stays at /v3.
Provenance
- Previous stable:
v3.5.0→0b335e430546e8ca590c62d83722d745f18ef259 - Release target:
v3.6.0→314bbbbd6d82950c0c54cd9050ec6ea83bf785d8 - Release workflow: run 35759474602
- Verification: preflight, release, and verify jobs all succeeded.
- Provider contract:
1.2.0
Release gate evidence on the exact tagged commit: CI run 35756481568 success and Windows Full Suite run 35756481215 success.
What's new
Pi agent directory override
The Pi adapter resolves its agent directory through PI_CODING_AGENT_DIR when the variable is set: an absolute path is used as-is, a ~-prefixed path expands against the home directory, and a relative path resolves against the directory gentle-ai runs from, falling back to ~/.pi/agent when that resolution fails. gentle-ai install, sync, the CodeGraph guidance paths and the Engram MCP provisioning all target that directory, and child processes such as pi install and pi-engram init inherit the variable unchanged. The Pi config root (~/.pi) keeps one meaning and never follows the override, and the npm manifest that Engram provisioning edits now lives where Pi keeps its npm package root, <agent dir>/npm/package.json, instead of ~/.pi/npm/package.json. This is what lets the standalone gentle-shell launcher (gentle-pi 3.5.x) provision its isolated ~/.gentle-shell/agent home with the same companion packages gentle-ai installs into a regular Pi. Included work: #4892 (issue #4888).
Breaking changes
No breaking changes are declared for v3.6.0. The Go module path stays at github.com/gentleman-programming/gentle-ai/v3, the provider contract remains byte-frozen at 1.2.0, and no review CLI flag changed shape. One behavior change to name explicitly: Engram provisioning for Pi now writes pi-mcp-adapter into <agent dir>/npm/package.json; an existing ~/.pi/npm/package.json is left as it is. Claude Code users on Windows must run gentle-ai sync to receive the PowerShell-safe hook.
Upgrade now
brew upgrade gentle-ai
gentle-ai syncWindows and other source installs:
go install github.com/gentleman-programming/gentle-ai/v3/cmd/gentle-ai@v3.6.0
gentle-ai syncRun gentle-ai sync after upgrading so managed agent, reviewer, and runtime assets match the installed binary. Windows users of Claude Code need the sync to replace the POSIX UserPromptSubmit hook literal with the PowerShell-safe one.
What was fixed
PowerShell-safe UserPromptSubmit hook on Windows
Root cause: the generated Claude Code UserPromptSubmit hook used the POSIX ... || true form, which PowerShell 5.1 cannot run, so the skill-registry refresh failed on every prompt on Windows. The hook now runs through a PowerShell-safe wrapper on Windows, and a settings file holding both the legacy POSIX literal and the canonical one gets the legacy entry pruned and persisted instead of keeping both. Contributed by @ardelperal and re-hosted with the Windows evidence the review asked for. Included work: #4875 (issue #2124).
No second canonical hook after pruning
Root cause: when the legacy entry was pruned, the canonical-existence check was skipped because it was guarded on "nothing pruned", so the canonical hook was appended a second time and the refresh ran twice per prompt. Canonical existence is now computed after the prune and the append is gated on it; a pruned-only change is still written and reported. The regressions that hid this were Windows-only tests skipped in every pull-request lane; they now drive a platform-independent core and run on Linux, macOS and Windows. Included work: #4877 (issue #4876).
--help on uninstall and restore
Root cause: uninstall --help and restore --help returned an opaque sentinel error instead of usage. Both now answer --help, -help, -h and --h with usage derived from the command's own flags and exit successfully, and restore names its positional backup selector (latest or a backup id), including after a positional backup name and when the home directory cannot be resolved. Contributed by @aparragithub and re-hosted. Included work: #4881 (issue #2153).
Still open: the Pi adapter's persona.json, background-subagents policy, uninstall targets, skill-registry scan and config detection still join ~/.pi literally and do not follow PI_CODING_AGENT_DIR; the override covers install, sync, CodeGraph guidance and Engram provisioning.
Numbers
25 non-merge commits, 4 merged pull requests, and 2 unique GitHub PR authors since v3.5.0.
Install
brew install Gentleman-Programming/tap/gentle-aior
go install github.com/gentleman-programming/gentle-ai/v3/cmd/gentle-ai@v3.6.0Windows 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.
Full changelog: v3.5.0...v3.6.0