Skip to content

gentle-pi v4.5.0 — One Profiles Screen, the Newest Pi, and Music on Request

Choose a tag to compare

@Alan-TheGentleman Alan-TheGentleman released this 28 Oct 00:05
· 20 commits to main since this release

Gentle Shell v4.5.0 is a feature release. The models and profiles screens become one screen with profiles as tabs, opened by /gentle:profiles; the fullscreen rail gains a Jobs card; bundled installs move to Pi 1.4.0 and can install the newest published Pi with gentle-shell update --latest; and /gentle:music offers to install its player inside Gentle Shell. The npm package remains gentle-pi, and the bundled Gentle AI runtime remains v4.3.1.

Provenance

  • Previous stable: v4.4.0 → b6c301c41b426ebb09cbd9dc3309cfceedcc1820
  • Release target: v4.5.0 → 19b4fade568d3499020c988573056f38b3bc05e4
  • Release validation: run 40606485076 passed package verification, published gentle-pi@4.5.0 to npm with provenance, built, verified and attached the installers, and verified the bundled distribution 4.5.0-1.4.0 on Ubuntu, Windows and macOS before attaching it.
  • Pinned Gentle AI: v4.3.1 (2dba778); the review provider contract remains unchanged at 1.4.0, and the negotiated capability identity is unchanged.

What's new

One models and profiles screen

/gentle:profiles opens one screen with each profile as a tab (◉ this session, ★ default, ⌂ this repository) and the selected profile's routing as a table with the orchestrator first. Three actions apply it: Use in this session, Make default (the guarded global apply) and Save. It is pointer-first and keyboard-complete, offers only the effort levels each model supports, shows where Pi lands an unsupported saved level, and lists invalid or stale pins under the profile name. Switching tabs redraws in place. /gentle:profiles export <name>, import and publish <name> move profiles; /gentle:profiles export-routing and restore-routing move the global routing file.

Included work: #2588 (issue #2586), #2599 (issue #2598).

Jobs card in the fullscreen rail

Running background jobs get their own collapsible card, newest first, each with its elapsed time. Finished jobs stay for 60 seconds with ✓, ✗ or –, then the card clears itself. Click the header or press ctrl+shift+j to collapse it; GENTLE_PI_JOBS_KEY remaps or disables the shortcut.

Included work: #2592.

Newest Pi for bundled installs

Bundled installs now ship Pi 1.4.0, audited against every private Pi surface Gentle Shell relies on (the Vim editor's sources are byte-identical from 1.2.0 to 1.4.0). gentle-shell update --latest installs the newest published stable Pi without waiting for a Gentle Shell release: it warns that it skips the release's verified lockfile, verifies the new version like upgrade, keeps the previous one for gentle-shell upgrade --rollback, and never downgrades Pi. A later gentle-shell upgrade keeps that Pi until a newer Gentle Shell release arrives.

Included work: #2599 (issue #2598).

Music player on request

In a bundled install without gentle-stream or uv, /gentle:music asks before installing the player inside Gentle Shell: a pinned, checksum-verified uv 0.13.6 in runtime/, and the uv-managed Python 3.13 and gentle-stream in music/ (about 150 MB to download), isolated from any user uv, Python, pip or virtualenv settings and without needing git. Declining keeps the manual install hint, and pnpm or npm installs keep it unchanged. Sample voices still need the system FluidSynth library.

Included work: #2599 (issue #2598).

What was fixed

Bundled installs stuck on an older Pi

gentle-shell update in a bundled install redirected to gentle-shell upgrade, which installs only the Pi its Gentle Shell release pins, so a newer published Pi was unreachable. The pin moves to Pi 1.4.0 and --latest opens the newest published Pi on demand.

Included work: #2599 (issue #2598).

Profile tabs flickered

Switching profile tabs closed the screen and reopened it after reloading the model catalog, which painted the screen below for a frame. The panel now switches profiles in place.

Included work: #2599 (issue #2598).

Pinned runtime

The pinned Gentle AI runtime is unchanged at github.com/gentleman-programming/gentle-ai/v3 v4.3.1: signed release archives on Darwin and Linux, and a SumDB-verified source build on Windows. The review provider contract remains 1.4.0; no NATIVE_CLI_CONTRACTS row or capabilities/vN identity was added.

Breaking changes

  • /gentle:models is retired: /gentle:profiles opens the same screen, and /gentle:models export|restore become /gentle:profiles export-routing|restore-routing.
  • The separate models panel, profiles list and detail, routing editor and orchestrator picker are replaced by the one tabbed screen. Saved profiles and routing are unchanged.

Upgrade

pi install npm:gentle-pi@4.5.0

Restart Pi. No runtime migration is required. Bundled installs run gentle-shell upgrade.

Numbers

7 non-merge commits, 3 merged pull requests, and 2 unique GitHub PR authors since v4.4.0.

Verification

  • Local suite (pnpm test, macOS arm64, Node 24) on the release commit: 7761 tests, 7650 pass, 75 skipped, 36 fail. Every failure is pre-existing in that local environment (PulseAudio fake-socket, agent-home config override, orchestrator-scope and one agents test); the same suite on the pre-release main baseline fails 38 tests in the same files. The provider-contract and runtime-harness stages pass.
  • PR CI for #2599: verify, tests on Ubuntu and Windows, installers on macOS, Ubuntu and Windows, and review-repository-windows all passed.
  • Package verification: 236 package resource files and 69 exact byte-pinned contract artifacts for the v4.3.1 runtime; npm pack --dry-run lists 965 files (11.7 MB packed).
  • Pi 1.4.0 audit: the Vim editor's editor.js, undo-stack.js and keys.js are byte-identical in Pi 1.2.0, 1.3.0 and 1.4.0; cli/args.js and the extension types are identical; the package-manager-cli.js and tui-alt-screen.js changes are compatible.
  • Independent verification of gentle-shell update --latest: no blockers; 6175 update inputs without --latest produce identical plans before and after.
  • Independent verification of the music install: no blockers; uv pins re-hashed; archive extraction rejects traversal and links; a corrupted download publishes nothing; nothing installs without consent. A real macOS arm64 install ran gentle-stream --help successfully.

Install

pi install npm:gentle-pi@4.5.0

Package: https://www.npmjs.com/package/gentle-pi

Full changelog: v4.4.0...v4.5.0