github Gentleman-Programming/gentle-ai v4.4.0
v4.4.0 — Antigravity 1.4 Parity, Faster Gentle Shell Launches and Safer Windows Restores

49 minutes ago

Gentle AI v4.4.0 is a minor release over v4.3.1. Restores and rollbacks now work when Windows redirects %APPDATA% outside the profile, and a workspace uninstall snapshot can be restored on its own. JSON and JSONC configs that start with a UTF-8 BOM keep the user's keys instead of being merged into an empty object. The Windows Full Suite is green again and now runs on every pull request. Antigravity (agy 1.4) reaches parity with native Judgment Day agents, per-role model tiers and guidance that fits agy's 24 KB rule budget. Gentle Shell provisions Stable from a reviewed gentle-pi supplier list, launches in a fraction of the time, and publishes gs on Windows. Codex honors CODEX_HOME end to end. The provider contract stays byte-frozen at 1.4.0.

Provenance

  • Previous stable: v4.3.1 → 2dba7784114fff57864519c4c0d067e952a8c98b
  • Release target: v4.4.0 → 55240afb100ad6d2ef5fbe16f7be33a7693f77ad
  • Release workflow: run 42396346091
  • Verification: preflight, release, and verify jobs all succeeded.
  • Provider contract: 1.4.0

What's new

Antigravity 1.4 parity

Antigravity now receives the Judgment Day native agents (jd-judge-a, jd-judge-b, jd-fix-agent) that Claude Code, Cursor and Kiro already had. Their model tier (inherit, flash_lite, flash, pro) can be picked per role in the installer and changed later from Configure Models. Gentle AI guidance is rendered as owned agy rule files that each stay under agy's 24 KB limit, and legacy Gentle AI sections in GEMINI.md are migrated into them.

Included work: #5931, #5938, #5939, #5940, #5941, #5942 (issue #5930).

Gentle Shell Stable follows a reviewed gentle-pi supplier list

Gentle Shell now ships a reviewed list of gentle-pi releases, each pinned by its npm tarball SRI and installer hash, and reads it live with a fail-safe fallback. Stable installs provision the newest reviewed release, the Windows provisioner reads the same list, installs without a list authenticate supplier files at launch, and the Stable update check detects an outdated gentle-pi by its installed version and targets the newest listed release. gentle-pi 4.5.1 is the first reviewed entry.

Included work: #5849, #5852, #5853, #5863, #5871, #5873, #5876 (issue #5845) by @decode2.

Faster Gentle Shell launches

Standalone gentle-shell/gs launches spent 13 to 19 seconds re-verifying unchanged bytes on every start. Pinned binaries, the retained Main source and the installed graph are now checked against ctime-bound stamp caches and receipts that a prior full audit produced, so every check stays as strict while unchanged bytes are no longer re-read. Main launches drop to about 3.3 seconds and Stable launches from 2.81 to 0.33 seconds; a timing probe on the Windows runtime lane measured the Windows launch boundary at about 52 ms warm.

Included work: #5920 (issue #5917), #5960, #5922 by @decode2.

gs and gentle-shell on Windows

The Windows Separate install now publishes both gentle-shell.cmd and gs.cmd, atomically, reports occupied names instead of overwriting them, and removes only its own canonical shims. This completes the cross-platform launcher contract that shipped for Unix in v4.3.1.

Included work: #5921 (issue #5740) by @decode2.

Manage custom agents from the TUI

A new "Manage Custom Agents" entry lists installed custom agents and deletes the selected ones. Uninstall removes the full payload directory and reports restore failures, and registry labels are sanitized before they reach the terminal.

Included work: #3637 (issue #443) by @Clowraider, #5803 (issue #5802) by @decode2.

Version-aware CodeGraph install and --force-community-tools

Install no longer short-circuits when the installed CodeGraph CLI is older than the target contract: it upgrades to @latest and continues the reconcile, with the version probe bounded to 10 seconds. gentle-ai install --force-community-tools forces a fresh community-tool install at @latest even when the installed CLI is current; nothing is uninstalled first, and non-forced behavior is unchanged. The flag is wired for install; sync parity is a follow-up.

Included work: #5171 by @ardelperal, #6007 (salvaged from #5172 by @ardelperal), #6009 (issue #984).

Scoop-owned installs update through Scoop

When the active Windows gentle-ai executable belongs to a Scoop installation, including custom Scoop roots, the upgrade now runs scoop update gentle-ai and restores Scoop's IGNORE_RUNNING_PROCESSES setting afterwards. Go and binary fallbacks are unchanged for every other install.

Included work: #2112 (issue #541) by @dnlrsls.

Native STATUS phase timing diagnostics

--phase-timings (or GENTLE_AI_STATUS_PHASE_TIMINGS) prints per-phase durations of the native review STATUS pre-work to stderr, marking phases that were still in flight or not measured when the aggregate completed or timed out.

Included work: #5459 (issue #5457) by @AdamMagued.

Groundwork for verify and bench

The verify model gains a NoRollback policy so a compatibility failure can fail without reverting correct work; existing checks keep their rollback behavior. The bench gains a canonical path token normalizer, the first slice toward path-free journey results that are stable across sandboxes.

Included work: #5228 (issue #5159) by @danielxxomg, #5649 (issue #1866) by @danielgap.

Breaking changes

No breaking changes are declared for v4.4.0. The module path stays at /v4, the provider contract remains byte-frozen at 1.4.0, and no existing review CLI flag changed; --phase-timings and install --force-community-tools are additive. These behavior changes are deliberate and take effect after gentle-ai sync:

  • Antigravity loads Gentle AI guidance from agy rule files instead of ~/.gemini/GEMINI.md, and Gemini CLI receives its guidance through GEMINI.md imports of owned modules.
  • Codex config, guidance, skills and Engram instruction files are written under CODEX_HOME when it is set, instead of ~/.codex.
  • Workspace-scoped Context7 for Claude Code is written to <workspace>/.mcp.json, which Claude Code requires you to approve once, instead of the inert .claude/settings.json entry.
  • Claude Code secret deny rules are anchored to the home directory (~/.ssh/* and similar) instead of resolving relative to the project.
  • The published review-integration/v2 intended-untracked selection schema now describes one repo-relative path string per entry, matching what the runtime always accepted; the object form it published before was always refused.
  • The gentleman theme overlay is no longer written into settings of adapters without theme assets, such as Pi and Gemini.

Upgrade now

brew upgrade gentle-ai
gentle-ai sync

Windows and other source installs:

go install github.com/gentleman-programming/gentle-ai/v4/cmd/gentle-ai@v4.4.0
gentle-ai sync

Run gentle-ai sync after upgrading so managed agent, reviewer, and runtime assets match the installed binary. Antigravity and Gemini CLI users need it to move guidance into agy rules and Gemini CLI modules, Claude Code users to receive the anchored secret deny rules and the updated Judgment Day agent tools, and Codex users with CODEX_HOME set to have their files written there.

What was fixed

Restores and rollbacks under a redirected %APPDATA%

On Windows with folder redirection, %APPDATA% can live outside the profile. Restore admitted only the home and workspace roots, so it refused the whole manifest as soon as one target lived under %APPDATA%\gga, and a failed install or sync could not roll those targets back. Restore, uninstall and rollback now share one helper that admits exactly the product config directories (%APPDATA%\gga and the Kiro, Windsurf, VS Code and Trae User folders), on Windows only, only when a recorded target sits strictly inside them and no admitted root already covers them, and never the whole %APPDATA% or %LOCALAPPDATA%. Separately, an uninstall snapshot spanning a workspace outside the home root could be created but not restored on its own; restore now authorizes that workspace root when a manifest entry resolves strictly inside it.

Included work: #6027 (issue #6024), #6031 (issue #6030), #6032 (issue #6029), #6008 (issue #6010).

UTF-8 BOM configs

A user .json that started with a UTF-8 BOM made the shared JSON merge fall back to an empty base, so theme, MCP and sync writers dropped the user's keys; .jsonc merges refused the file. The BOM is now stripped before parsing and restored on write only when the original had one. OpenCode CodeGraph detection also skipped BOM-prefixed configs, so sync re-ran the installer and failed on every attempt; detection now tolerates the BOM, and valid CodeGraph MCP commands with supported options or absolute executable paths are accepted instead of requiring exact template equality.

Included work: #6021 (issue #6020), #6019, #5628 by @dnlrsls (issue #5545).

Windows Full Suite green and on every pull request

The Windows Full Suite ran only after merge and had been red on main: tests stubbed POSIX paths, compared non-canonical temp paths or leaked the real APPDATA. Those tests are fixed without product changes, and the suite now also runs on every pull request to main, with stale runs cancelled by newer pushes. Tests that depended on the host codex binary now pin its version, and output-style rollback gained failure-injection coverage.

Included work: #5884 (issue #5883), #6023 (issue #6022), #6026 (issue #6025), #5874 (issue #5061) by @0wex, #5712 (issue #3163) by @0wex.

Review

A read-only review.status that times out is now marked retry-safe with next_action: "retry"; STATUS carrying repair or recovery flags still stops. The intended-untracked selection schema publishes the string form the runtime accepts, the refuter is asked to echo request_hash as refuter_request_hash so its result is admissible, START echoes an explicitly supplied commit base verbatim, and free-form reviewer evidence that quotes a host:port value is no longer path-adjudicated. Other fixes: the Stop hook due gate assesses the selectors STATUS offered, a base-diff predecessor is recovered over its frozen base, the intended-untracked submission keeps its target selector, a committed-range correction lineage resumes on selectorless STATUS, inconclusive compact fix findings are accepted in the correction plan, and corrected-candidate inspection resolves sealed rctx3_ handles on OpenCode.

Included work: #6018 (issue #6017), #6006 (issue #4311), #5865 (issue #5597), #5068 (issue #4924) by @Benivinilo, #5664 (issue #5624) by @LuisAlbertoMK, #5788 (issue #4815) by @decode2, #5870 (issue #5038), #5872 (issue #4890), #5881 (issue #5424), #5896 (issue #5888) by @decode2, #5962 (issue #4972) by @danielgap.

Codex honors CODEX_HOME

CODEX_HOME is validated before any Codex mutation, config, guidance, skills and Engram instruction files are written under the resolved Codex root, discovery reads from it, and install and sync rollback snapshot exactly where they write. The override directory is never pruned.

Included work: #5526, #5925, #5799, #6002 (issue #5031) by @danielgap.

Antigravity and Gemini CLI guidance

agy 1.4 truncates ~/.gemini/GEMINI.md at 24 KB, so about 77 KB of guidance lost the Engram protocol, routing and most of the orchestrator. Guidance now loads through agy rules with core guidance kept inline within the budget, rules a failed install or sync published are rolled back, and uninstall and upgrade republish and back them up. Gemini CLI, which shares GEMINI.md with Antigravity, now receives its guidance through imports of owned modules proven by a manifest, keeps a single persona, and has its modules retired when it is not installed. Antigravity targets the agy 1.4 shared config root, doctor accepts and lists legacy and variant roots, uninstall cleans files left in legacy roots, the Engram plugin is installed where agy 1.4 loads it, guidance is injected once per session, plugin health and real sync changes are reported, a stale Engram command is re-resolved, the plugin-owned Engram registration is removed on uninstall, and the plugin migration recovers from failed activations and legacy cleanup failures.

Included work: #5932, #5933, #5934, #5935, #5936, #5937, #5948, #5943, #5944, #5945, #5946, #5949, #5950, #5951, #5952, #5953, #5954, #5955, #5956, #5961 (issue #5930), #5806 (issue #779) by @decode2, #1643 (issue #797) by @dnlrsls.

Gentle Shell installs and updates

Separate installs now share the user's Engram server and provision the Engram core and gentle-engram, pinned by the installed gentle-pi release. Component-scoped updates carry their scope through the worker entry, admit and stop pinning the supervisor they replace, prepare the stage skeleton before reusing components, carry SDK-owned artifacts and operator state across rebuilds, regenerate the reused CodeGraph command without recopying it on Windows, and reuse an installation another build recorded. A pinned preimage identity no longer refuses an intact macOS installation after a reboot shifts st_dev. Fresh Linux installs stay on the legacy worker, valid hosts are no longer refused on unrelated mountinfo lines, the transient unit budget comes from one source with TasksMax raised to 512, Main overlay composition derives from the frozen snapshot, the Main preview update check reports the supervisor, the Windows Separate launch gets a verified Git and ProgramFiles, the staged Windows selection keeps the six-field provision ABI, Windows Stable resolves onto reviewed supplier releases, and the stable channel resolution installs without supplier gating.

Included work: #5891, #5893 (issue #5889), #5801 (issue #5800), #5811 (issue #5810), #5835 (issue #5834), #5827 (issue #5826), #5862 (issue #5861), #5848 (issue #5847), #5916 (issue #5847), #5824 (issue #5823), #5844 (issue #5843), #5897 (issue #5815), #5903 (issue #5902), #5890, #5924 (issue #5923), #5804 (issue #5789), #5992 (issue #5990) by @decode2; #6003 (issue #5918), #5866 (issues #5798, #5807, #5818, #5854), #5879 (issue #5819).

Agents, permissions and guidance

Claude Code's Judgment Day agents are granted both Engram tool namespaces, so judges and the fix agent reach mem_search whichever way Engram is registered. Uninstall removes only the managed Context7 entry from the workspace Claude config. Sync preserves retired OpenCode prompts that surviving settings still reference and rolls back when a {file:...} target is missing. A Pi CodeGraph probe that never answered is reported as its own pending reason instead of aborting sync. On macOS without Homebrew, the GGA step is deferred instead of failing the whole install. OpenCode catalog output is captured through a regular file to stop truncation, and the model picker warns when it falls back to configured-only models. Orchestrator guidance preserves an informed approval across runtime guidance, contribution skills follow the destination repository's own policy, GENTLE_AI_TELEMETRY=0 is honored with surrounding whitespace, the welcome screen detects agent builder engines once instead of on every frame, and a test pins that no OpenCode agent permission shadows the sensitive-path denies.

Included work: #5194 (issue #4589) by @Yi-111-a, #2695 (issue #2213) by @miguelgalera, #5633 (issue #5623) by @dnlrsls, #5070 (issue #2146) by @WarisGG, #6005 (salvaged from #4776 by @naml14; issue #4775), #5724 (issue #3018) by @0wex, #5841, #5842 (issue #5833) by @decode2, #5867 (issue #5280), #5850 (issue #5485), #5907 (issue #4463), #5864 (issue #4866), #5868 (issues #268, #5729), #5817 (issue #787) by @decode2.

CI and qualification lanes

CI bounds setup time and cancels obsolete pull-request runs, and the stale workflow never closes approved or high-priority issues. The Linux and macOS Gentle Shell qualification lanes surface a bounded guest verdict and failure tail when output is withheld, drive the Pi 1.3.0 TUI, derive the macOS member pin from the authenticated installer, and align the lab leaf budget with the shared unit budget.

Included work: #5900, #5878 (issues #4324, #5877), #5856 (issue #5855), #5875, #5880, #5882, #5885, #5905 (issue #5904) by @decode2.

Numbers

142 non-merge commits, 117 merged pull requests, and 14 unique GitHub PR authors since v4.3.1. Thanks to @decode2, @danielgap, @dnlrsls, @0wex, @Clowraider, @AdamMagued, @ardelperal, @Benivinilo, @danielxxomg, @LuisAlbertoMK, @miguelgalera, @WarisGG and @Yi-111-a for their pull requests, and to @naml14 and @ardelperal for the work salvaged into #6005 and #6007.

Install

brew install Gentleman-Programming/tap/gentle-ai

or

go install github.com/gentleman-programming/gentle-ai/v4/cmd/gentle-ai@v4.4.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, except that an existing Scoop-owned installation now updates through Scoop itself.

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

Full changelog: v4.3.1...v4.4.0

Don't miss a new gentle-ai release

NewReleases is sending notifications on new releases.