From eb9fa04b6c5ccdcd5319d6e068793663da4084de Mon Sep 17 00:00:00 2001 From: Alan Buscaglia Date: Sat, 13 Jun 2026 11:25:22 +0200 Subject: [PATCH] chore(pi): bump gentle-engram to 0.1.8 --- docs/AGENT-SETUP.md | 4 ++-- internal/setup/setup.go | 2 +- internal/setup/setup_test.go | 8 ++++---- plugin/pi/README.md | 6 +++--- plugin/pi/cli.js | 4 ++-- plugin/pi/package.json | 2 +- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/docs/AGENT-SETUP.md b/docs/AGENT-SETUP.md index 8e6a159e..9034078b 100644 --- a/docs/AGENT-SETUP.md +++ b/docs/AGENT-SETUP.md @@ -35,14 +35,14 @@ Install Engram's Pi package, the MCP adapter, and Pi MCP config: engram setup pi ``` -`engram setup pi` runs `pi install npm:gentle-engram@0.1.7` and `pi install npm:pi-mcp-adapter`, then ensures Pi settings contain both packages and writes `mcpServers.engram` in the Pi agent MCP config when no Engram server is already configured. Existing `mcpServers.engram` entries are preserved. +`engram setup pi` runs `pi install npm:gentle-engram@0.1.8` and `pi install npm:pi-mcp-adapter`, then ensures Pi settings contain both packages and writes `mcpServers.engram` in the Pi agent MCP config when no Engram server is already configured. Existing `mcpServers.engram` entries are preserved. When [mise](https://mise.jdx.dev/) is detected in `PATH`, `engram setup pi` also auto-pins `npmCommand` in Pi's `settings.json` to `["mise", "exec", "node@", "--", "npm"]`, preventing Node version drift from silently changing which npm root Pi uses. If `npmCommand` already exists in `settings.json`, the existing value is preserved. This step is a no-op when mise is not installed. Manual equivalent: ```bash -pi install npm:gentle-engram@0.1.7 +pi install npm:gentle-engram@0.1.8 pi install npm:pi-mcp-adapter pi-engram init ``` diff --git a/internal/setup/setup.go b/internal/setup/setup.go index 3bfa2df1..b9a509bb 100644 --- a/internal/setup/setup.go +++ b/internal/setup/setup.go @@ -82,7 +82,7 @@ const claudeCodeMarketplace = "Gentleman-Programming/engram" const openCodeSubagentStatuslinePlugin = "opencode-subagent-statusline" -const piGentleEngramPackage = "npm:gentle-engram@0.1.7" +const piGentleEngramPackage = "npm:gentle-engram@0.1.8" const piMCPAdapterPackage = "npm:pi-mcp-adapter" // claudeCodeMCPTools are the MCP tool permission names for the agent profile diff --git a/internal/setup/setup_test.go b/internal/setup/setup_test.go index 8eada746..4e786afd 100644 --- a/internal/setup/setup_test.go +++ b/internal/setup/setup_test.go @@ -317,7 +317,7 @@ func TestInstallPiInstallsPackagesAndWritesConfig(t *testing.T) { if result.Agent != "pi" || result.Destination != agentDir || result.Files != 2 { t.Fatalf("unexpected install result: %#v", result) } - wantCommands := []string{"pi install npm:gentle-engram@0.1.7", "pi install npm:pi-mcp-adapter"} + wantCommands := []string{"pi install npm:gentle-engram@0.1.8", "pi install npm:pi-mcp-adapter"} if !reflect.DeepEqual(commands, wantCommands) { t.Fatalf("unexpected pi install commands: got %#v want %#v", commands, wantCommands) } @@ -332,7 +332,7 @@ func TestInstallPiInstallsPackagesAndWritesConfig(t *testing.T) { if err := json.Unmarshal(settingsRaw, &settings); err != nil { t.Fatalf("parse settings: %v", err) } - for _, pkg := range []string{"npm:gentle-engram@0.1.7", "npm:pi-mcp-adapter"} { + for _, pkg := range []string{"npm:gentle-engram@0.1.8", "npm:pi-mcp-adapter"} { if !slices.Contains(settings.Packages, pkg) { t.Fatalf("expected settings packages to include %q, got %#v", pkg, settings.Packages) } @@ -400,7 +400,7 @@ func TestInstallPiPreservesExistingEngramMCPServer(t *testing.T) { if err != nil { t.Fatalf("read settings after install: %v", err) } - if !strings.Contains(string(settingsRaw), "npm:existing") || !strings.Contains(string(settingsRaw), "npm:gentle-engram@0.1.7") || !strings.Contains(string(settingsRaw), "npm:pi-mcp-adapter") { + if !strings.Contains(string(settingsRaw), "npm:existing") || !strings.Contains(string(settingsRaw), "npm:gentle-engram@0.1.8") || !strings.Contains(string(settingsRaw), "npm:pi-mcp-adapter") { t.Fatalf("expected settings packages to be preserved and extended, got %s", settingsRaw) } } @@ -411,7 +411,7 @@ func TestInstallPiCommandFailure(t *testing.T) { return []byte("boom"), errors.New("exit 1") } _, err := Install("pi") - if err == nil || !strings.Contains(err.Error(), "install npm:gentle-engram@0.1.7") { + if err == nil || !strings.Contains(err.Error(), "install npm:gentle-engram@0.1.8") { t.Fatalf("expected pi install error, got %v", err) } } diff --git a/plugin/pi/README.md b/plugin/pi/README.md index 907ea704..abf19085 100644 --- a/plugin/pi/README.md +++ b/plugin/pi/README.md @@ -78,7 +78,7 @@ Engram includes a terminal UI for browsing sessions, observations, prompts, proj ## Quick start ```bash -pi install npm:gentle-engram@0.1.7 +pi install npm:gentle-engram@0.1.8 pi install npm:pi-mcp-adapter pi-engram init ``` @@ -208,7 +208,7 @@ If the binary is missing, Pi keeps running and memory degrades instead of crashi `pi-engram init` writes Pi-owned config in the Pi agent directory: -- `settings.json`: ensures `npm:pi-mcp-adapter` and `npm:gentle-engram@0.1.7` are declared. +- `settings.json`: ensures `npm:pi-mcp-adapter` and `npm:gentle-engram@0.1.8` are declared. - `mcp.json`: adds an `engram` MCP server that launches `engram mcp --tools=agent` through a safe Node wrapper with `directTools: false`, so MCP remains available through the gateway without duplicating Pi-native `mem_*` tools. `engram setup pi` also auto-pins `npmCommand` in Pi's `settings.json` when [mise](https://mise.jdx.dev/) is detected in `PATH`. It sets `npmCommand` to `["mise", "exec", "node@", "--", "npm"]` so Pi always uses the mise-managed Node version. Existing `npmCommand` values are never overwritten; if mise is not found, this step is a no-op. @@ -243,7 +243,7 @@ MCP tool calls still use Engram core's canonical project resolver at call time. | Symptom | Fix | | ------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `mem_*` tools are missing | Install/verify `npm:gentle-engram@0.1.7`, run `pi-engram init`, then restart Pi. Keep `npm:pi-mcp-adapter` installed if you use MCP integrations such as Notion or direct MCP flows. | +| `mem_*` tools are missing | Install/verify `npm:gentle-engram@0.1.8`, run `pi-engram init`, then restart Pi. Keep `npm:pi-mcp-adapter` installed if you use MCP integrations such as Notion or direct MCP flows. | | Pi cannot find `engram` | Set `ENGRAM_BIN=/absolute/path/to/engram`. | | Session capture should use another server | Set `ENGRAM_URL=http://host:7437`. | | Pi shows `error MCP: 0/N servers` but `mem_*` works | That status is Pi's global MCP gateway, not proof that Engram's Pi-native HTTP tools failed. Check `~/.pi/agent/mcp.json` for stale/unreachable servers such as remote OAuth services, and keep `npm:pi-mcp-adapter` installed if you use MCP integrations like Notion. | diff --git a/plugin/pi/cli.js b/plugin/pi/cli.js index 9b63493d..23cad3d8 100755 --- a/plugin/pi/cli.js +++ b/plugin/pi/cli.js @@ -3,7 +3,7 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs"; import { homedir } from "node:os"; import { dirname, join } from "node:path"; -const PACKAGE_NAME = "npm:gentle-engram@0.1.7"; +const PACKAGE_NAME = "npm:gentle-engram@0.1.8"; const MCP_ADAPTER_PACKAGE = "npm:pi-mcp-adapter"; const HELP = `pi-engram @@ -12,7 +12,7 @@ Usage: Creates Pi's Engram MCP config in the Pi agent dir and ensures pi-mcp-adapter is declared in settings.json. The Pi extension itself is loaded by installing -the package with: pi install npm:gentle-engram@0.1.7 +the package with: pi install npm:gentle-engram@0.1.8 `; const MCP_LAUNCHER = diff --git a/plugin/pi/package.json b/plugin/pi/package.json index fe1a5f9b..7c9f9ee2 100644 --- a/plugin/pi/package.json +++ b/plugin/pi/package.json @@ -1,6 +1,6 @@ { "name": "gentle-engram", - "version": "0.1.7", + "version": "0.1.8", "description": "Persistent memory for Pi agents — one local-or-cloud brain shared across sessions, compactions, and MCP agents", "type": "module", "license": "MIT",