github Gentleman-Programming/gentle-ai v2.2.3-rc.3
v2.2.3-rc.3 — Compact SDD attempts + community fix wave

pre-release9 hours ago

Compact SDD attempts + community fix wave

What's New

v2.2.3-rc.3 is a new immutable community-testing refresh that carries the compact SDD runtime-attempt work from v2.2.3-rc.1 and the exact reviewer recovery from v2.2.3-rc.2, and adds the nineteen community fixes merged since — a wave that clears long-standing installer, TUI, and review-lifecycle papercuts. Earlier release candidates remain unchanged.

The headline additions: Context7 finally registers where Claude Code actually reads MCP servers from (~/.claude.json), reviewers now inspect frozen candidates through a native gentle-ai review inspect-candidate capability instead of a hardened raw-Git shell recipe, review status works from any subdirectory, and the installer respects --scope workspace for Context7, discovers LM Studio models dynamically, and stops corrupting managed sections on repeated syncs.

Changes

Review lifecycle

  • Provider-bound candidate inspection: reviewers get a closed, native review inspect-candidate command that resolves immutable trees from the provider binding, sanitizes Git configuration, and bounds execution time and output — replacing the env -i git shell recipe that reviewer sandboxes had to allowlist verbatim and that was not portable to Windows shells. (#2005, #2011)
  • review status resolves the repository root from nested directories: selector-free status previously inventoried authority against the literal --cwd, so running it from a subdirectory silently reported nothing. (#1862, #2024)
  • Staged recovery proven to ignore worktree bytes: the staged-recovery fixture now asserts the exact authorized staged bytes are recovered, unrelated untracked files are excluded, and the snapshot identity is stable when only worktree bytes change. (#1948, #2023)

Installer and sync

  • Context7 registers in ~/.claude.json for Claude Code: user-scope MCP servers are only read from ~/.claude.json, so the mcpServers block earlier versions wrote into settings.json was inert. Registration now merges non-destructively into the user registry (a corrupt base aborts instead of being reset, 0600 is enforced, the inert settings block is cleaned best-effort), and uninstall never deletes the OAuth-bearing registry. Workspace scope keeps the scoped settings merge. (#1868, #1909)
  • Context7 injection honors --scope workspace: install and sync wrote the Context7 MCP configuration to the home directory even when workspace scope was selected, polluting global config and breaking workspace isolation. (#736, #1617)
  • Theme identifier matches the installed theme: settings pointed at gentleman-kanagawa while the installed theme registers as gentleman, so selecting the theme never resolved. (#896, #1630)
  • Managed sections no longer duplicate: repeated syncs could leave multiple copies of the same managed block in CLAUDE.md-style files; injection now collapses duplicates in one idempotent pass while preserving user content between them. (#1675, #1764)
  • Skill registry cache detects content edits: registry fingerprints included only file metadata, so editing a skill without changing its size and timestamp kept serving the stale cached copy. Content bytes are now part of the fingerprint. (#1732, #2019)
  • GGA installs cannot be branch-shadowed: Unix source installs and upgrade clones now fetch the exact refs/tags/… object instead of git clone --branch, which a branch named like the release tag could shadow. (#1727, #1751)
  • doctor deduplicates symlinked PATH tools: equivalent PATH directories reached through symlinks no longer report the same tool twice. (#1664, #2015)

OpenCode TUI

  • LM Studio models are discovered live: the model picker queries the local LM Studio endpoint asynchronously instead of depending on a static cache, so locally served models appear without manual configuration — with a warning, not a dead end, when discovery fails. (#375, #1917)
  • Reasoning-effort variants survive provider ID mismatches: cached variants stored under one provider ID now fall back deterministically to alias providers exposing the same model, so the effort picker no longer silently disappears. (#1648, #1695)

Community tools and benchmark

  • Pi MCP probe timeouts name their phase: a stalled CodeGraph MCP probe now reports whether initialize or tools/list exceeded the deadline instead of a generic wait error. (#1644, #2020)
  • Benchmark rejects empty explicit selections: an explicit journey selector matching nothing now fails loudly instead of silently running an empty set. (#1883, #2018)

Skills and documentation

  • The issue-creation skill discovers repository policy: templates, labels, approval gates, and Discussions support are now discovered per repository through read-only checks instead of hardcoding one repo's workflow, with a contract test pinning discovery before any publication command. (#1374, #1779)
  • The issue-creation skill requires a pre-submission privacy review: before gh issue create, environment-specific data — private project names, usernames, home paths, hostnames, secrets — is replaced with explicit placeholders that keep the reproduction teachable, with a contract test pinning the rule. (#1906, #1981)
  • Delegated agent reports close with Key Learnings: SDD phase agents and generic delegations end their final report with a structured ## Key Learnings section that engram passive capture extracts automatically, so learnings survive delegation boundaries. (#1703, #1707)
  • Benchmark validation attestation documents when benchmark-module validation applies and how to mark it N/A, in CONTRIBUTING and the PR template. (#1990, #1991)
  • Quick-fix readiness audit handoff publishes the corrected 56-issue readiness partition with an independent verification report. (#2006, #2010)

Carried forward from rc.1 and rc.2

  • Compact sdd-attempt acquire/settle orchestration for apply, verify, and remediation — idempotent, CAS-protected, with attempt/line budgets, immutable history, and explicit-only reset.
  • Exact-slot, STATUS-mediated reviewer recollection after a pre-inspection access/provider failure, adding no retry state and consuming no additional review budget. (#1986)

Community testing

  1. Download SHA256SUMS.txt and the binary for your platform, then verify the binary against its listed SHA-256 digest.
  2. Run the binary directly and confirm gentle-ai --version reports 2.2.3-rc.3.
  3. Run a real SDD change through apply and verify; confirm normal orchestration returns compact acquire/settle results instead of full attempt history.
  4. Exercise a 4R review and confirm reviewers inspect the candidate through gentle-ai review inspect-candidate with no raw Git allowlist entries.
  5. Run gentle-ai review status from a nested subdirectory of your repository and confirm it reports the same authority as from the root.
  6. If you use LM Studio, open the OpenCode model picker with the local server running and confirm your models appear.

Please include your OS, agent/client, gentle-ai --version, and the compact result or recovery status in reports.

Validation

  • Exact commit: e0744dae5aba853c066104d17203d0ea9da95052
  • Required CI run 30536155653 is green: all jobs passed for the exact commit.
  • The E2E suite was migrated to the new Context7 user-registry contract as part of this refresh (the previous suite still asserted the inert settings.json block that #1909 removed).
  • The optional, non-gating Windows Full Suite run 30536155561 completed with failure before publication; it is not part of the required release gate.
  • All five binaries were built with vcs.modified=false and are covered by SHA256SUMS.txt.

Contributors

Thanks to the community contributors whose merged work is part of this refresh:

  • @dnlrsls - nested-cwd review status, staged-recovery proof, Pi MCP timeout attribution, benchmark selection guard, doctor PATH dedup, skill-registry fingerprints, LM Studio discovery, repository-aware issue-creation skill, duplicate-section collapse, benchmark attestation docs, and the quick-fix readiness audit. (#2024, #2023, #2020, #2019, #2018, #2015, #2010, #1991, #1917, #1779, #1764)
  • @decode2 - provider-bound candidate inspection, branch-shadowing-safe GGA installs, effort-variant fallback, theme identifier alignment, and workspace-scoped Context7 injection. (#2011, #1751, #1695, #1630, #1617)
  • @Denver2828 - moved Claude Code Context7 registration to the ~/.claude.json user registry with a non-destructive, retrying merge. (#1909)
  • @ardelperal - added the mandatory pre-submission privacy review to the issue-creation skill. (#1981)
  • @pablontiv - closed delegated agent reports with Key Learnings for engram passive capture. (#1707)

Distribution notice

These community-testing binaries are unsigned. SHA256SUMS.txt provides integrity checking but not publisher authentication. This prerelease does not update Homebrew.

Don't miss a new gentle-ai release

NewReleases is sending notifications on new releases.