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