Skip to content

v2.3.0-rc.3 — What rc.2 taught us in a day

Pre-release
Pre-release

Choose a tag to compare

@Alan-TheGentleman Alan-TheGentleman released this 07 Aug 17:22
· 6 commits to main since this release
Immutable release. Only release title and notes can be modified.
d299eb8

Gentle AI v2.3.0-rc.3: What rc.2 taught us in a day

rc.2 went out and the reports started arriving within the hour. Most were right. Several were older defects that rc.2 finally made reachable. Two were ours from the night before. This build is what came back.

It is a prerelease for community testing. Please keep breaking it.

If you are upgrading, run this

gentle-ai sync

Replacing the binary does not refresh the runtime assets already installed for your agents. One rc.2 report turned out to be an rc.1 OpenCode plugin running under an rc.2 binary, failing with a message rc.2 cannot even produce (#2442). Our own install instructions caused that. Detecting the skew automatically is tracked in #2685.

Fixed since rc.2

SDD phase agents could refuse to work

An sdd-init executor announced it was the orchestrator and blocked with no artifacts, because the installed skill told it to delegate before telling it that instruction did not apply to it (#2697, #721). A model reads forward, so it committed to delegating before learning it should not, then found no delegation primitive because it already was the executor.

Every delegate_only skill now states one role contract in which each instruction follows the condition that scopes it, and a test fails if anyone reintroduces an instruction plus its retraction. Nine skills carried this, not the one originally reported. Credit to @chrisssp, who diagnosed it in May and whose fix is preserved in this history.

Reviewer context on large candidates

A 208-file candidate hit a fixed 120-second deadline before the first reviewer ever launched (#2693). The deadline was not the cause: assembling one lens context rebuilt the entire frozen candidate view on every single read, roughly twelve git processes per path instead of one, about 2,500 processes for that candidate and four times that across four lenses.

That work is now prepared once and reused. A candidate that exceeds the reviewer evidence limit also refuses immediately now, naming the real limit and what to do about it, instead of timing out after thousands of processes with an instruction to retry that could never succeed.

Receipts surviving a commit

An approved receipt from a staged review stopped governing once the same content was committed and evaluated as a committed range, even though base tree, candidate tree, changed paths, and digest were all identical (#2688). Governance now recognizes that pair as the same content. The overlay kind stays deliberately separate, because it can carry intervening commits a current-changes review never inspected, and a test asserts that exclusion rather than assuming it.

Reported by you, fixed here

  • The consent envelope reported claude-code for an OpenCode-bound start (#2676).
  • WSL resolved a Windows npm shim for CodeGraph and left a partial rollback (#2680).
  • Engram inferred the wrong project inside linked worktrees, so observations never matched (#2682).
  • The provider defect handoff overrode an explicitly authorized recovery (#2679).
  • Negotiated STATUS can now carry a forecast of the current step beside the transition (#2664).
  • Windows: a plugin rollback regression and an oversized test shard, both caught by our own Windows suite before this release (#2701).

Known issues going in

Same honesty section as always. Open, real, and being worked by root cause rather than one at a time:

  • Native admission still rejects some reviewer results too aggressively: non-empty findings on certain candidates (#2482) and two of four lenses on scope_changed successors (#2618).
  • sdd-verify-validate rejects every requirements value against an Engram store (#2500).
  • The managed OpenCode permission profile can deny review.start itself (#2615) and references an undo-checkpoint operation that does not ship (#2595).
  • Windows: a NUL attributes-file quirk can block review start before any mutation (#2358).
  • A corrupted authority edge still has no sanctioned quarantine path (#2014). The repository-wide blocking it originally caused is fixed; the stuck edge itself is a design question we are not rushing.
  • HIGH-tier corrections can dead-end after conflicting evidence (#2623).
  • Claude Code's reviewer path has unit and conformance coverage but no organic proof, so #2692 and #2566 stay open until a real Claude run completes a review to a terminal receipt. OpenCode and Codex both have that evidence. Claude does not, and we are not closing those on design alone.

What we want you to try

Ordered by how much we want the answer.

1. sdd-init on a clean project from OpenCode. The exact flow that blocked in rc.2. It should initialize and return its result contract.

2. A large review. A hundred files or more, high risk, four lenses. Tell us what refuses and whether the refusal names something you can actually do.

3. Stage your reviewed files, commit, and push. The approved receipt should survive the representation change instead of dying at the gate.

4. A full review on each runtime you use. OpenCode from an ordinary session, Codex, and Claude Code. Claude is the one we most want to hear about, because it is the one without organic proof.

Installing it

This prerelease does not update Homebrew, and the binaries are unsigned. Integrity comes only from SHA256SUMS.txt, so verify before running.

Linux and macOS

# pick your platform: linux_amd64, linux_arm64, darwin_amd64, darwin_arm64
PLATFORM=linux_amd64
VERSION=2.3.0-rc.3

curl -fsSLO "https://github.com/Gentleman-Programming/gentle-ai/releases/download/v${VERSION}/gentle-ai_${VERSION}_${PLATFORM}"
curl -fsSLO "https://github.com/Gentleman-Programming/gentle-ai/releases/download/v${VERSION}/SHA256SUMS.txt"

# verify before running it
sha256sum --ignore-missing -c SHA256SUMS.txt

chmod +x "gentle-ai_${VERSION}_${PLATFORM}"
sudo mv "gentle-ai_${VERSION}_${PLATFORM}" /usr/local/bin/gentle-ai
gentle-ai --version   # expect: gentle-ai 2.3.0-rc.3
gentle-ai sync        # refresh managed assets, see the note at the top

On macOS, Gatekeeper will quarantine an unsigned binary. Clear it with xattr -d com.apple.quarantine /usr/local/bin/gentle-ai.

Windows (PowerShell)

$Version = "2.3.0-rc.3"
Invoke-WebRequest -Uri "https://github.com/Gentleman-Programming/gentle-ai/releases/download/v$Version/gentle-ai_${Version}_windows_amd64.exe" -OutFile gentle-ai.exe
Invoke-WebRequest -Uri "https://github.com/Gentleman-Programming/gentle-ai/releases/download/v$Version/SHA256SUMS.txt" -OutFile SHA256SUMS.txt

# compare this against the windows line in SHA256SUMS.txt
Get-FileHash gentle-ai.exe -Algorithm SHA256 | Format-List

.\gentle-ai.exe --version
.\gentle-ai.exe sync

Going back

Keep your current binary before overwriting it, or reinstall the stable release with brew install gentleman-programming/tap/gentle-ai. Reviews completed on this build use the rc.2 identity format; an older binary treats them as it treats any receipt it cannot match, by failing closed.