Releases: Gentleman-Programming/gentle-shell
Release list
v2.7.0 — Profiles in the Sidebar, Changes That Belong to the Session
v2.7.0 — Profiles in the Sidebar, Changes That Belong to the Session
gentle-pi v2.7.0 shows the active profile in the Gentle Shell sidebar, replaces the all-dirty-tree Changes tracker with bounded snapshots of the write and edit mutations this session and its owned subagents actually made (so startup no longer stalls in large working trees), and packages the verified Gentle AI v2.9.1 runtime.
Provenance
- Previous stable:
v2.6.4→7df2f2fb - Release target:
v2.7.0→c2bad51139608bd2590c889a34578e84f7a81a43 - CI workflow: run 34874684081
- Verification: package verification (
verify) and Windows review (review-repository-windows) jobs both succeeded; the npm publication ran as run 34875133830. - Pinned Gentle AI:
v2.9.1, provider contract1.2.0
What's new
The sidebar shows the active profile
The Status card now lists the active profile under Model. The line follows profile changes on the next render, is hidden when the profile store has no valid active marker, and long names wrap without touching the compact bottom bar.
Included work: #1016.
Changes are scoped to this session
The Changes sidebar previously modelled every dirty path in the repository and scanned their contents at startup. It now shows only the successful write and edit mutations captured from the current agent session and its owned subagents, grouped by the worktree they modified, with diffs generated from the captured snapshots. Snapshots are bounded (64 KiB / 2000 lines per capture, 256 operation identities and 4 MiB of serialized evidence per session); binary, oversized, or unverifiable results show truthful unavailable counts instead of a guess. Captured evidence persists in the local Pi session file, so the list survives a reload. Shell and custom-tool mutations and unrelated external edits are intentionally excluded because there is no evidence to attribute them.
Included work: #1021.
Package-local Gentle AI moves to v2.9.1
The bundled runtime is re-pinned to Gentle AI v2.9.1 with archive and executable digests verified against the Minisign-signed checksums.txt and the Windows Go SumDB module checksum, plus the 2.9.1 native review capability row. v2.9.1 restores Claude Code SDD delegation and lets OpenCode relay review consent without the custom question control; the Pi runtime path is unchanged and the provider contract stays 1.2.0.
Included work: #1026.
Breaking changes
No breaking changes are declared for v2.7.0.
Upgrade now
pi install npm:gentle-pi@2.7.0Restart Pi, then run:
gentle-ai syncThe package-local Gentle AI runtime is reinstalled at v2.9.1 by the package postinstall; run gentle-ai sync afterwards so managed agent and reviewer assets match it.
What was fixed
Startup no longer stalls in large working trees
The intro and queued prompts could hang while the old Changes tracker scanned every dirty path's content at startup. That scan is gone; the session-scoped tracker refreshes in memory and never blocks startup (closes #1007).
Included work: #1021.
Numbers
3 non-merge commits, 3 merged pull requests, and 2 unique GitHub PR authors since v2.6.4.
Install
pi install npm:gentle-pi@2.7.0Package: https://www.npmjs.com/package/gentle-pi
Full changelog: v2.6.4...v2.7.0
v2.6.4 — Profiles Replace What They Route
v2.6.4 — Profiles Replace What They Route
gentle-pi v2.6.4 is a hotfix release: applying a profile now replaces the routing of every agent instead of merging over routes an earlier apply left behind, and /gentle:profiles shows the routing the runtime actually uses even when the canonical models.json is sparse. The package-local Gentle AI runtime stays at v2.9.0.
Provenance
- Previous stable:
v2.6.3→e00b6b1a - Release target:
v2.6.4→7df2f2fb702124e50a79ecfbad6516024136c58f - CI workflow: run 34837704978
- Verification: package verification (
verify) and Windows review (review-repository-windows) jobs both succeeded; the npm publication ran as run 34837719624. - Pinned Gentle AI:
v2.9.0, provider contract1.2.0
What's new
No new features are declared for v2.6.4.
Breaking changes
No breaking changes are declared for v2.6.4.
Upgrade now
pi install npm:gentle-pi@2.6.4Restart Pi, then run:
gentle-ai syncThis release keeps Gentle AI pinned at v2.9.0; no runtime reinstall is required.
What was fixed
Applying a profile replaces routing instead of merging over it
The runtime resolves each agent's model from ~/.pi/agent/subagents.json and agent frontmatter, never from models.json. Applying a profile wrote the profile's sparse config to models.json and skipped every agent the profile did not name, so routes materialized by an earlier apply stayed in effect while the panel reported No routing entries. Applying a profile now materializes every discoverable agent the profile omits as inherit, exactly as /gentle:models does for an agent set to inherit, and the rollback after a failed apply re-materializes the previously active profile with the same replacement semantics (closes #1012).
/gentle:profiles reflects effective routing
The current-routing pane, the seeded current profile, and the update snapshot now read the effective routing: models.json when it has an entry, otherwise the model_profiles entry in subagents.json, otherwise the agent file's model: and thinking: frontmatter. Reading never writes, so an installation whose canonical store diverged from its materialized routing can inspect the truth and capture it into a profile with s.
Included work: #1013.
Numbers
2 non-merge commits, 1 merged pull request, and 1 unique GitHub PR author since v2.6.3.
Install
pi install npm:gentle-pi@2.6.4Package: https://www.npmjs.com/package/gentle-pi
Full changelog: v2.6.3...v2.6.4
v2.6.3 — Remediation Reconciles, Children Explain Themselves
v2.6.3 — Remediation Reconciles, Children Explain Themselves
gentle-pi v2.6.3 is a hotfix release: an uncertain managed remediation acquire can now be reconciled from the parent without relaunching an actor, subagent children name the last stage they completed when they stall or exit early, and the package-local Gentle AI runtime moves to v2.9.0, which carries the four SDD attempt-ledger fixes Pi users hit through the managed remediation route.
Provenance
- Previous stable:
v2.6.2→d857cdd6 - Release target:
v2.6.3→e00b6b1a5330767fdc74f8f26fbfa5dc932497c2 - CI workflow: run 34833475158
- Verification: package verification (
verify) and Windows review (review-repository-windows) jobs both succeeded; the npm publication ran as run 34833823076. - Pinned Gentle AI:
v2.9.0, provider contract1.2.0
What's new
Uncertain remediation acquires reconcile from the parent
A managed remediation whose native acquire or settle reply was lost left a retained uncertain mutation that nothing could resolve. A parent-only subagent_reconcile(task_id) workflow now replays only the exact persisted native authority, never launches an actor and never exposes a token, serializes shared-history reconciliation behind a durable, crash-aware task lock, and closes a recovered active claim through an idempotent interrupted settlement (closes #993).
Included work: #999.
Breaking changes
No breaking changes are declared for v2.6.3.
Upgrade now
pi install npm:gentle-pi@2.6.3Restart Pi, then run:
gentle-ai syncThis release pins Gentle AI v2.9.0. All four platform archives and their extracted binaries are SHA-256 pinned, and the Windows source install is bound to the v2.9.0 Go SumDB checksum.
What was fixed
Child terminal reasons name the last completed stage
A subagent child that stalled or exited before settling left a record that could not say where startup stopped: stderr was discarded, the stall watchdog re-armed only on stdout JSON lines, and the last step stayed at starting until the terminal error overwrote it. Every terminal reason now names the last completed stage (pi ready, prompt accepted) and, where it helps, the cause, with a bounded stderr tail appended to stall and pre-settle exit failures. Each of the six cancel sources records its own reason instead of the literal cancelled (closes #1005, #959).
Included work: #1006.
Package-local Gentle AI pin
Bumped the pinned Gentle AI runtime from v2.8.2 to v2.9.0: INSTALLER_VERSION, the four Darwin/Linux archive and executable SHA-256 digests (verified against the release's Minisign-signed checksums.txt and the extracted binaries), and the Windows Go SumDB module checksum for the source build. The new 2.9.0 native review capability row repeats 2.8.2, since no negotiated START/STATUS field changed and the provider contract stays at bundle 1.2.0. v2.9.0 fixes the SDD status remediation revision, the budget-exceeded remediation dead end, and the remediation pointer refusal on the gentle-ai side; gentle-pi needed no code change because it already relays the native status value.
Included work: #1010.
Numbers
5 non-merge commits, 3 merged pull requests, and 2 unique GitHub PR authors since v2.6.2.
Install
pi install npm:gentle-pi@2.6.3Package: https://www.npmjs.com/package/gentle-pi
Full changelog: v2.6.2...v2.6.3
v2.6.2 — Review and SDD State Stay Honest
v2.6.2 — Review and SDD State Stay Honest
gentle-pi v2.6.2 is a hotfix release: SDD execution stops mistaking known blocked outcomes for unresolved history, an approved review acknowledgement reports its result truthfully even when local cleanup afterward fails, the README is redesigned around Gentle Shell, and the package-local Gentle AI runtime moves to v2.8.2.
Provenance
- Previous stable:
v2.6.1→f3843818 - Release target:
v2.6.2→d857cdd6eacafe273a5503d75b11dcc8698c9d04 - CI workflow: run 34784759478
- Verification: package verification (
verify) and Windows review (review-repository-windows) jobs both succeeded; the npm publication ran as run 34784764668. - Pinned Gentle AI:
v2.8.2, provider contract1.2.0
What's new
gentle-shell becomes the front door
The README is redesigned around Gentle Shell as the coding agent built for Pi, using the supplied banner while keeping the current gentle-pi package and repository identifiers functional. Onboarding and feature narrative move to the README; detailed installation, configuration, SDD, and review reference material moves to a dedicated technical reference and a new workspace guide, both with diagrams. The trademark policy and README notice now cover gentle-shell alongside gentle-pi without changing existing license boundaries.
Included work: #982.
Breaking changes
No breaking changes are declared for v2.6.2.
Upgrade now
pi install npm:gentle-pi@2.6.2Restart Pi, then run:
gentle-ai syncThis release pins Gentle AI v2.8.2. All four platform archives and their extracted binaries are SHA-256 pinned, and the Windows source install is bound to the v2.8.2 Go SumDB checksum.
What was fixed
SDD state stays honest under blockers and remediation
The selected-change SDD startup gate treated any non-empty native blockedReasons as a phase-independent veto, so a remediated change whose native status recommended verify with the dependency ready could never start the verification its own blocker asked for; verify now starts when native selects it, while apply, archive, and terminal work still fail closed (closes #972). Separately, a received native remediation settlement is now treated as terminal task history whatever its state; only a genuinely uncertain outcome (a lost acquire or settle reply, or a retained claim with no settlement) stays unresolved, so a known blocked(<reason>) settlement no longer refuses every later sdd-remediate launch before native admission (closes #981).
Review acknowledgement reports the burn truthfully
The acknowledge-approved controller route ran the native burn, the retained-selection clear, and candidate-view cleanup inside one mutation-result try/catch, so a cleanup failure (for example git worktree remove --force failing) reached the caller as native-operation-failed with mutation_performed: false even though the review authority had already been burned. The native burn is now the only step inside that try/catch; both Pi-side teardown steps run afterward, each guarded on its own, and a failure is reported as deferred cleanup on the still-truthful closed / burned / mutation_performed: true result.
Included work: #984.
Package-local Gentle AI pin
Bumped the pinned Gentle AI runtime from v2.8.1 to v2.8.2: INSTALLER_VERSION, the four Darwin/Linux archive and executable SHA-256 digests (verified against the release's Minisign-signed checksums.txt), and the Windows Go SumDB module checksum for the source build. The new 2.8.2 native review capability row repeats 2.8.1, since no negotiated START/STATUS field changed and the provider contract stays at bundle 1.2.0. The same change re-syncs the vendored review provider-contract mirror byte-identical from the published bundle (manifest, Pi orchestration table, lens and targeted-validator schemas had drifted under the unchanged semver).
Included work: #989.
Numbers
12 non-merge commits, 5 merged pull requests, and 2 unique GitHub PR authors since v2.6.1.
Install
pi install npm:gentle-pi@2.6.2Package: https://www.npmjs.com/package/gentle-pi
Full changelog: v2.6.1...v2.6.2
v2.6.1 — Telemetry That Names What It Actually Runs
gentle-pi v2.6.1 is a small maintenance release: it corrects runtime telemetry so that models running on custom or lesser-known Pi providers are reported by name instead of collapsing into an unknown bucket, and it re-pins the package-local Gentle AI runtime to the latest patch release.
Provenance
- Previous stable:
v2.6.0→963e17f7 - Release target:
v2.6.1→f3843818d258b47f341d5064c35b9f3b0f6db031 - CI workflow: run 34767960298
- Verification: package verification (
verify) and Windows review (review-repository-windows) jobs both succeeded. - Pinned Gentle AI:
v2.8.1, provider contract1.2.0
What's new
Runtime telemetry recognizes models from any provider
Runtime telemetry only recognized 15 known model ids across 7 pi-ai providers, so any open-weight model served through a custom Pi provider (for example a NanoGPT provider serving deepseek-v4-flash or glm5.3) always left the machine as custom/custom; collector data showed roughly 60% of Pi tokens arriving with no model attached. Telemetry now derives model identity through a schema-driven normalizer mirrored from gentle-ai, recognizing any public model family prefix while keeping private or unrecognized identities behind the unknown/unknown, custom/custom, and opencode/custom sentinels. Closes #968.
Included work: #970.
Breaking changes
No breaking changes are declared for v2.6.1.
Upgrade now
pi install npm:gentle-pi@2.6.1Restart Pi, then run:
gentle-ai syncThis release pins Gentle AI v2.8.1. All four platform archives and their extracted binaries are SHA-256 pinned, and the Windows source install is bound to the v2.8.1 Go SumDB checksum.
What was fixed
Package-local Gentle AI pin
Bumped the pinned Gentle AI runtime from v2.8.0 to v2.8.1: INSTALLER_VERSION, the four Darwin/Linux archive and executable SHA-256 digests (verified against the release's Minisign-signed checksums.txt), and the Windows Go SumDB module checksum for the source build. The new 2.8.1 native review capability row repeats 2.8.0, since the provider contract stays at bundle 1.2.0.
Included work: #974.
Numbers
3 non-merge commits, 2 merged pull requests, and 1 unique GitHub PR author since v2.6.0.
Install
pi install npm:gentle-pi@2.6.1Package: https://www.npmjs.com/package/gentle-pi
Full changelog: v2.6.0...v2.6.1
v2.6.0 — A Workspace You Can Watch and Steer
gentle-pi v2.6.0 makes Pi's runtime experience more observable, navigable, and controlled — especially in Gentle Shell and Gentle Agents — while updating the package-local Gentle AI integration and letting review and SDD follow native authority more precisely.
Provenance
- Previous stable:
v2.5.0→d4792faf - Release target:
v2.6.0→963e17f78490502a1638bcddc73e4207b8224ee6 - CI workflow: run 34756674378
- Verification: package verification (
verify) and Windows review (review-repository-windows) jobs both succeeded;pnpm test, the provider contract mirror check, and the packed runtime harness passed on the release candidate; package verification passed with 169 required files and 69 exact byte-identical contract artifacts for the Gentle AI v2.8.0 runtime;npm pack --dry-runpassed with 470 packaged files. - Pinned Gentle AI:
v2.8.0, provider contract1.2.0
What's new
Gentle Shell now keeps the whole workspace in view
Session worktrees persist across reloads and /gentle:changes groups their diffs instead of flattening them into one list. The changes view now shows Git status and line counts, supports fullscreen pointer navigation, and opens inside a responsive sidebar that follows live session state. Fullscreen rendering reuses and caches unchanged frames, while contained styling and execution metadata keep the shell readable without hiding what an agent is doing.
Included work: #725, #739, #771, #779, #711, #840, #876, and #930.
Gentle Agents grows from a task list into an orchestration console
Agents are grouped by orchestrator session and presented with hierarchical, resize-safe List and Details navigation, semantic thread blocks, native Close and fullscreen controls, and retained completion history. Live orchestrators and their direct children are visible together; bounded child-to-parent notifications, correlated queries, and foreground handoff let a child ask for input without leaking raw protocol messages into the conversation.
Included work: #692, #698, #702, #712, #756, #776, #786, #788, #790, #794, and #841.
Agent state is more honest after the happy path ends
Completed groups remain available, aborted runs record why they ended, lost process exits settle into durable terminal records, and background completion belongs to the current turn rather than a stale host queue. Runtime observations identify packaged agents by model and effort, expose bounded usage, avoid duplicate elapsed-time displays, and keep Windows child consoles hidden.
Included work: #762, #853, #854, #885, #907, #912, #913, and #929.
Named profiles make model routing a live runtime choice
/gentle:profiles stores named agent-model profiles, applies them atomically, and opens a fullscreen selector where the orchestrator and each packaged agent can have independent provider, model, and effort settings. Routing consumers now share one authority, provider-owned review roles are configurable, and the details pane uses the same line-by-line navigation as Gentle Agents.
Included work: #845, #894, #901, #904, #917, #921, and #932.
Review and SDD follow native authority more precisely
Review inspection names and resolves intended-untracked selection, consent is shorter and easier to scan, deterministic relay failures can close impossible lens slots, committed-range START follows the provider's offered route, and reconciliation preserves native continuations and diagnostics. SDD research, planning, execution, selected-change routing, and startup status now consume native authority while requiring parent-confirmed session preflight.
Included work: #717, #796, #802, #822, #844, #860, #862, #864, #887, #888, #892, #933, #949, #953, #954, and #957.
Installation and package boundaries are clearer
Assets can be installed by subsystem, skipped npm lifecycle scripts now produce explicit recovery guidance, global Pi Git installs are recognized, custom ask responses are opt-in, and a TypeScript type gate protects the growing runtime surface.
Included work: #803, #823, #839, #881, and #909.
Breaking changes
No breaking changes are declared for v2.6.0. The negotiated capability surface remains gentle-ai.review-integration.capabilities/v2.5, so the new 2.8.0 capability row intentionally repeats 2.7.0.
Upgrade now
pi install npm:gentle-pi@2.6.0Restart Pi, then run:
gentle-ai syncThe package-local runtime now pins Gentle AI v2.8.0. All four release archives and extracted binaries are SHA-256 pinned; Windows source installation is bound to the v2.8.0 Go SumDB checksum.
What was fixed
Platform stability on Windows
Windows review candidates validate ownership and executable mode correctly, while startup, polling, permission, telemetry, and subagent processes stay hidden instead of opening consoles.
Included work: #795, #805, #830, and #855.
Gentle Todo and startup resilience
Gentle Todo keeps the next pending task visible when collapsed, and the startup banner survives TUI invalidation without freezing.
Review reminders and reviewer decoding
Review reminders stay scoped to session-owned mutations and disappear for acknowledged candidates; approved reviewer results decode correctly instead of surfacing transport internals.
Included work: #773, #780, and #886.
Numbers
126 non-merge commits, 77 merged pull requests, and 10 unique GitHub PR authors since v2.5.0.
Install
pi install npm:gentle-pi@2.6.0Package: https://www.npmjs.com/package/gentle-pi
Full changelog: v2.5.0...v2.6.0
v2.5.0 — The Release Where Pi Becomes a Gentle Tool
gentle-pi v2.5.0 is the biggest gentle-pi release so far: Pi gets a visual layer, its own subagents, its own todo list, and the RDD-aware delegation that the underlying Gentle AI runtime makes possible.
Provenance
- Previous stable:
v2.4.0→525812fb - Release target:
v2.5.0→d4792fafaf8f2530ef24692080cd93bd45c77d29 - CI workflow: run 34201112297
- Verification: package verification (
verify) and Windows review (review-repository-windows) jobs both succeeded;pnpm teston the release commit ran 1635 tests, 1625 passing, zero failures, ten expected skips; the provider contract mirror check (bundle 1.2.0) and the packed runtime harness passed; package verification passed with 167 required files and 68 exact byte-identical contract artifacts for the v2.7.0 runtime; published to npm with provenance by the "Publish to npm" workflow from the annotatedv2.5.0tag. - Pinned Gentle AI:
v2.7.0, provider contract1.2.0
What's new
Gentle Shell: Pi looks and feels like a Gentle tool
One status line replaces Pi's three-line footer: project and branch, model and effort, a context gauge that turns amber at 80% and red at 95%, session cost (marked sub when you run on a subscription), MCP status, and the session name. The prompt sits in a rounded frame with a petal that spins while the agent works and turns amber when messages are queued. Every call into gentle-ai renders as a card with a colored rail: amber while it runs, green when it finished, red when it failed. Working-tree changes show below the editor as they happen, and /gentle:changes (alt+g) opens them as a diff overlay you can jump from straight into $EDITOR and back. /gentle:usage shows how much of your Codex or Claude subscription window you have used.
Included work: #602.
Gentle Agents: subagents that live inside Pi
Delegating work no longer needs a third-party package. Each subagent runs as its own isolated Pi child, streams what it is doing into a card above the editor (task, model, tokens, cost, time), and everything is kept on disk: history, child sessions, and a markdown transcript per task. /gentle:agents (alt+a) opens the overlay: tasks on the left, the selected agent's whole thread on the right, with every tool output and every thinking block in full, scrollable with the keys or the mouse. You can stop one agent or all of them, follow the tail, or open the session in your editor from the footer buttons. The card and the overlay follow the active session: after /new the old tasks leave, on /resume they come back.
Included work: #609, #648, #657, #660, #684, and #689.
Gentle Todo
The third-party todo extension is replaced by a package-owned one drawn in the same card language: finished lists drop on reload, long lists fold.
Included work: #604.
Delegation that knows when to double-check
The orchestrator now reads the receipt-driven development switch before delegating. When it is on and the native review closes, the worker that wrote the code runs the verification and the review is the independent check, so you stop paying for a second verifier on every change. When it is off, or you said "not this time" to the review prompt, the new gentle_review assess operation asks gentle-ai v2.7.0 how risky the change is, and only risky changes get a separate verifier.
Included work: #664, #665, #667, and #669.
Say yes to reviews once per session
A session-scoped execution permission lets you grant the review once and let every candidate in that session proceed, instead of answering the same prompt each time; the coordination is hardened so two sessions cannot step on each other.
Included work: #643, #647, and #625.
Telemetry, the honest kind
Once per Pi process, the first primary-session turn asks the pinned gentle-ai binary to send its anonymous usage statistics, and /gentle:telemetry status|enable|disable relays the binary's answer. Nothing is sent from Pi itself, nothing about your repository or your machine is included, and DO_NOT_TRACK, GENTLE_AI_TELEMETRY=0, and CI=true stop it before the child is even started.
Included work: #678.
Breaking changes
- Gentle Agents requires Pi 0.85.1 or newer.
- Remove
npm:pi-subagents-j0k3randnpm:rpiv-todofrom your Pi packages: gentle-pi ships Gentle Agents and Gentle Todo now, and while the old packages are still installed the new tools stay unregistered and a startup warning says so.
Upgrade now
pi install npm:gentle-pi@2.5.0Restart Pi after installation, then run:
gentle-ai syncRun gentle-ai sync after the binary moves to v2.7.0 so the managed assets, including the risk-aware delegation guidance, match the runtime. Released gentle-pi builds up to 2.4.0 pin gentle-ai v2.6.0; they keep working, but the assess operation and the RDD-aware delegation need v2.7.0 — upgrade both together.
What was fixed
Package-local Gentle AI pin bumped to v2.7.0
INSTALLER_VERSION, the four signed-archive digests verified against the release's Minisign-signed checksums.txt (trusted comment repo=Gentleman-Programming/gentle-ai;tag=v2.7.0) and their extracted-binary digests, the Windows Go SumDB module checksum for v2.7.0 (4e4470b3), and a 2.7.0 capability row that repeats 2.6.0 because the binary advertises the same capabilities/v2.5 surface.
Included work: #704.
Windows
Executable candidate modes are accepted on Windows (thanks @dnlrsls), the CodeGraph shim is resolved and launched without a shell and with quoted PATH entries normalized (thanks @Shammael-genios), and consent keeps Windows working-directory paths.
Included work: #676, #553, and #658.
Review relay
Status decoding accepts collect and execute root actions, the frozen manifest digest, status/v6 and later for untracked selection, and capture-result inputs without a changed-path manifest; the managed-assets continuation is honored on stop transitions and failure envelopes; a retried START rebinds its candidate view and a lineage's finalize view is replaced without leaking it; the committed selector is retained for status; the relay handshake is declared in the session environment; packed abandon authorization matches the native eight-line binding (thanks @danielgap); Git-compatible null config paths and current authority inventory entries decode correctly.
Included work: #612, #616, #618, #621, #629, #637, #639, #672, #628, #613, #505, #652, #651, and #650.
Agents
Profile-specific runtime storage is respected and agent completion waits for settlement and owned-process cleanup (thanks @decode2); the finished row of the card clears on an idle terminal; the card caps its rows to the terminal height.
Included work: #634, #635, #623, and #679.
Shell
Cards render within narrow terminal widths, and extension statuses stay in the bar palette with the location compacted before anything is dropped.
Included work: #640.
Numbers
81 non-merge commits, 40 merged pull requests, and 5 unique GitHub PR authors since v2.4.0.
Install
pi install npm:gentle-pi@2.5.0Package: https://www.npmjs.com/package/gentle-pi
Full changelog: v2.4.0...v2.5.0
gentle-pi v2.4.0
gentle-pi v2.4.0
Carries the gentle-ai v2.6.0 binary and the provider contract bundle 1.2.0. The package-local pin moves from v2.5.0 (gentle-pi 2.3.0) to it.
What's new
- Pi has its review contract again. gentle-ai stopped writing the Pi system prompt on 2026-08-01, and a Pi session has run without a lifecycle contract since. The package now injects the mirrored
orchestration/pi.mdfrom provider contract bundle 1.2.0 into the primary session atbefore_agent_start, verified against the mirror's digest and outside the core prompt budget, and states the closed single-selectask_user_choiceroute always-on (#561). The Pi-specific contract keeps STATUS and every capture on one registered facade route, with regression coverage for the facade-only lifecycle and explicit acknowledgement (#583, thanks @decode2). - The loop end reminds you to preflight. With receipt-driven development on, a read-only
agent_endhandler sends onegentle-pi.review-preflightmessage naming the target identity and the exactgentle_reviewinspect route, once per candidate, and stays silent when the CLI is missing, the session is headless or a subagent loop, the switch reads off, or STATUS does not offer a START (#558).session_startrecords the session's baseline candidate so a worktree that was already dirty before the session never triggers the reminder (#570). - Concurrent reviewer groups. Reviewer process execution is split from native result submission, independent reviewer preparation runs concurrently while admission stays in provider order, and detached reviewer output is protected behind an unforgeable prepared-result identity (#557).
gentle_review_capture_groupvalidates a complete provider-issued group before launch and preserves restart, drift, partial-mutation, refusal, closure, and unknown-outcome reconciliation (#559). Grouped captures bind to the provider's stable phase revision instead of the advancing authority revision, keep exactreview-*lens identities, and reject missing or mismatched contexts, targets, and per-slot bindings before any reviewer launches (#590, thanks @decode2). - CodeGraph for exploration.
sdd-exploregets the constrained directcodegraphtool under an exact ordered allowlist, without the broadermcpgateway (#585).
Upgrade notes
- Install with
pi install npm:gentle-pi@2.4.0. - After upgrading, restart the Pi process. If an older gentle-ai build had written managed blocks into
~/.pi/agent/APPEND_SYSTEM.md,gentle-ai syncon v2.6.0 strips them; this package owns everything gentle-ai used to write there. - Released gentle-pi builds up to 2.3.0 pin gentle-ai v2.5.0 and decode the 1.1.0 bundle without an
orchestrationmanifest; they keep working against v2.5.0 but never see the Pi contract. Upgrade both together.
What was fixed
- Package-local Gentle AI pin bumped to v2.6.0:
INSTALLER_VERSION, the four signed-archive asset digests verified against the release's Minisign-signedchecksums.txt(trusted commentrepo=Gentleman-Programming/gentle-ai;tag=v2.6.0) and their extracted-binary digests, the Windows Go SumDB module checksum and source tag resolving toc24a724a, and oneNATIVE_CLI_CONTRACTSrow ground-truthed against the published binary. Pi negotiatescapabilities/v2.5and decodesstatus/v7, which adds only the optionaleligible_untracked_inventorydigest on top ofstatus/v6(#595). - Package assets follow
PI_CODING_AGENT_DIR. Package-owned agent home resolution aligns with Pi Subagents,GENTLE_PI_AGENT_HOMEstays the explicit override, andgentle-ai-exploreremains visible with itscodegraphallowlist (#587, thanks @barbatdev). - Writer surfaces with spaces. The orchestrator's edit-surface parser fails closed: whitespace-bearing paths need whole-entry backticks, every non-empty line stays in scope until the next heading instead of being silently truncated, and absolute, traversal, home-relative, Windows-drive, UNC, and control-bearing entries stay rejected (#547, thanks @decode2).
- Issue forms without a browser. The issue-creation skill materializes a reviewed body deterministically from the YAML form instead of requiring browser-only completion, which stays available only on explicit request (#576, thanks @decode2).
- The README header carries the star history chart and the ecosystem links (#563, #567).
Verification
- Exact release SHA
525812fb8f2ba5f5e26c867d4a18321b6eda46ba. pnpm teston the release commit: 1219 tests, 1218 passing, zero failures, one expected skip; the provider contract mirror check (bundle 1.2.0) and the packed runtime harness passed.- Package verification passed with 163 required files and 68 exact byte-identical contract artifacts for the v2.6.0 runtime.
node scripts/test-packed-runner.mjs:packed package E2E passed (gentle-pi 2.4.0; Gentle AI 2.6.0).
gentle-pi v2.3.0
gentle-pi v2.3.0
Carries the gentle-ai v2.5.0 binary, the first stable release of receipt-driven development. The package-local pin moves from v2.4.0 (the last published gentle-pi, 2.2.0) straight to it; the v2.5.0-rc.3 prerelease pin (2.3.0-rc.1) was never published to npm.
What's new
- Receipt-driven development is stable, and Pi speaks the stable contract. Pi negotiates
gentle-ai.review-integration/v2at capabilities v2.4 and decodesstart/v4,status/v6, andconsent/v3, with each minor carrying exactly the requirement set its provider contract defines (#487, #506, #527). RDD stays opt-in:gentle-ai review mode enable --scope global. - A review that closes where proof ends. Pi relays the atomic lifecycle (#386), consumes last-event closure (#411), and reaches parity with the acknowledgement lifecycle: the approving capture returns one acknowledgement, Pi relays it, and only that exact invocation burns (#478, #490, #513). The delivery command gates are retired; delivery follows ordinary repository policy.
- Provider-issued continuations run verbatim. The
start/v4re-entry, correction status continuations, and the intended-untracked selection handoff execute exactly what the provider printed (#470, #534, #537). - SDD Research and SDD status v2. The
sdd-researchexecutor and its pre-proposal gate (#423); thegentle-ai.sdd-status/v2identity (#467); residual RDD pre-gates removed from SDD (#494); the Pi SDD-to-RDD path is continuous (#538). - Native closed-choice selector and the Herdr bridge. Closed choices route through a native Pi selector (#452); RPIV questionnaire blocking bridges to Herdr (#461, #482); guarded commands emit a permission lifecycle and coalesce overlapping Herdr confirmations (#458, thanks @Andiveli).
- Quiet tools for Gentle AI commands. Bounded cards, Gentle AI redaction, the command lifecycle, composed commands, and every Gentle AI tool call render compactly (#393, #418, #425, thanks @decode2).
- Orchestrator edit surfaces. The parent supplies the worker's allowed edit surface and enforces it (#353, #454, #485).
- Themes. Gentleman-Sexy and Gentleman-Cute, with a hue-separated syntax palette (#410, #413, #434). The gentle-pi trademark policy is written down.
Breaking changes
- SDD slash commands carry the
gentle-sdd-prefix (#526), matching the gentle-ai v2.5.0 rename. - Approval is terminal. Once a review on v2.5.0 approves and its acknowledgement burns, there is no receipt to validate. Do not run a downgraded binary against a repository whose review authority v2.5.0 has written.
Upgrade notes
- Install with
pi install npm:gentle-pi@2.3.0. - After upgrading, restart the Pi process and run
/gentle:install-sdd --forceto refresh the installed agent assets; the SDD command rename retires the unprefixed files only on that refresh.
What was fixed
- Package-local Gentle AI pin bumped to v2.5.0:
INSTALLER_VERSION, the four signed-archive asset digests and their extracted-binary digests, the Windows Go SumDB module checksum and source tag, and oneNATIVE_CLI_CONTRACTSrow ground-truthed against the published binary. Darwin and Linux are back on signed.tar.gzarchives verified against the release's Minisign-signedchecksums.txt; the raw-binary asset form and the gentle-pi mirror release exist only for prerelease pins. - Consent is bound, not assumed. Consent choice agent bindings are validated (#496), stale consent recovers through native status (#450), stale bindings are named and admission refusals surface (#527), START diagnostics survive the consent round-trip (#489), and committed status selectors and reopened untracked selectors are preserved (#437, #495).
- Native RECOVER is separated from the legacy RESET challenge (#350); plain finalize advisory findings are accepted (#399).
- Host relay hardening. Restart parity, organic provider role vectors, bounded timeouts, and relative PATH normalization (#331, #374, #328, thanks @barbatdev; #368). On Windows, collect inputs serialize once,
go installis bounded separately, and Pi launches through the host entry (#528). - Model routing and SDD preflight. Saved model routing fails closed on invalid state (#398, #408, @decode2); SDD preflight resolves its choices before prompting (#403, @decode2).
- Skills and assets. Subagents no longer minify code to chase the review budget (#530); duplicate package discovery is prevented (#424); dangling rule sources are removed (#488, @barbatdev); the prompt budget is path-independent (#416).
Verification
- Exact release SHA
6c391ad9e6fc2e4ca5931a7c22eaf08b97412162. pnpm teston the release commit: 1163 tests, 1162 passing, zero failures, one expected skip; the provider contract mirror check and the runtime harness passed. The suite is now green on macOS as well as Linux (#542).- Package verification passed with 162 required files and 68 exact byte-identical contract artifacts.
node scripts/test-packed-runner.mjs:packed package E2E passed (gentle-pi 2.3.0; Gentle AI 2.5.0)— pack,npm installwith postinstall from the real signed archive, and negotiation with the installed binary through the packed decoder.- The v2.5.0
checksums.txtMinisign signature was verified out of band (trusted commentrepo=Gentleman-Programming/gentle-ai;tag=v2.5.0); archive digests match it and binary digests were computed from the extracted executables. - The release review disposition is
disabled/unmanaged: no review receipt was issued, validated, or implied.
Full changelog: v2.2.0...v2.3.0
gentle-ai binary mirror for v2.5.0-rc.3
Byte-identical mirror of the four Darwin/Linux raw binaries from gentle-ai v2.5.0-rc.3. Second download source for the gentle-pi 2.3.0-rc.1 prerelease pin; the installer verifies every byte against the same pinned SHA-256 digests regardless of source.