v0.9.14
rohitg00/agentmemoryv0.9.14May 15, 2026by rohitg00
AI Summary
Rebuilds CLI bootstrap to favor the native iii binary over Docker, introduces `agentmemory stop`, and fixes safety issues.
Key Highlights
- `agentmemory stop` command
- Native iii binary preference over Docker
- `AGENTMEMORY_USE_DOCKER=1` opt-in
- CLI no longer kills its own parent process
- Docker-started engines stop safely
New Features
- Stop command for engines
- Native binary preference
- Docker opt-in path
- Safety fixes for CLI
- Safe stopping of Docker engines
Full Release Notes
CLI bootstrap rework so `npx @agentmemory/agentmemory` stops failing on Rancher Desktop and other Docker-shim daemons. The native iii-engine binary is now the first-class start path; Docker becomes opt-in. Also ships `agentmemory stop` so engines started in the background can be torn down without `lsof | xargs kill`. README agents grid reorders OpenHuman next to the other native-integration agents. ## Added - **`agentmemory stop` command** (#396). Reads `~/.agentmemory/iii.pid` first, falls back to `lsof -i :PORT -sTCP:LISTEN -t`, sends `SIGTERM`, waits 3s, escalates to `SIGKILL`. State file (`~/.agentmemory/engine-state.json`) records whether the engine was started natively or via `docker compose up -d`, so `stop` runs `docker compose -f <file> down` for Docker engines instead of signaling the host's Docker socket proxy by accident. - **`AGENTMEMORY_USE_DOCKER=1` env var**. Opt-in path for users who want the bundled `docker-compose.yml` to keep handling iii-engine lifecycle. Without it, the CLI prefers the native binary in `~/.local/bin/iii`. ## Changed - **`startEngine()` fallback order rewritten** (#396). New tier order: (1) `iii` on PATH, (2) `~/.local/bin/iii` or fallback paths, (3) interactive clack `p.select` with three choices — auto-install the pinned v0.11.2 binary, use Docker compose, or print manual install instructions and exit, (4) Docker compose only via explicit opt-in or the post-install failure fallback, (5) fail-loud with install instructions. CI / non-TTY environments auto-pick install. The Docker fallback was tier 2 and silently fired on every cold start; on Rancher Desktop `docker compose up -d` returns 0 even when the daemon's pull silently fails, which produced "engine started but REST never responded" misdiagnoses. - **Installer logic extracted from `runUpgrade` into `runIiiInstaller()`**. Both first-run and `agentmemory upgrade` now share the same pinned-v0.11.2 curl-and-tar path. - **README agents grid reordered** (#397). Row 1 is now Claude Code → Codex CLI → OpenClaw → Hermes → pi → OpenHuman → Cursor → Gemini CLI. ## Fixed - **CLI no longer kills its own parent process**. `lsof -i :PORT -t` returns every PID with an active TCP connection to the port, including the CLI's own keep-alive `fetch()` from `isEngineRunning()`. Without a LISTEN filter, `agentmemory stop` would SIGKILL itself — exit code 137, state files never cleaned up. Now filters to `-sTCP:LISTEN` and drops `process.pid` from the candidate set. - **`agentmemory stop` no longer clears the pidfile when a stale process holds the port**. Pre-fix behaviour cleared the pidfile and printed "Nothing to stop" — the next run would silently start a second engine on a port that the first engine still owns. Now preserves the pidfile and surfaces the live PIDs. - **Docker-started engines stop safely**. Pre-fix code called `findEnginePidsByPort` and signaled whatever held :3111. When the engine was started via `docker compose up -d`, that's the host's Docker socket proxy, not the engine — killing it took down Docker Desktop networking for every other container. The new state file lets `runStop` detect Docker-managed engines and run `docker compose down` instead. ## Install ```bash npx @agentmemory/agentmemory@0.9.14 ``` Or pin in `package.json`: ```json "@agentmemory/agentmemory": "0.9.14" ``` Full changelog: https://github.com/rohitg00/agentmemory/blob/main/CHANGELOG.md#0914--2026-05-15