diff --git a/Dockerfile.base b/Dockerfile.base index e94d6a7..c9f503e 100644 --- a/Dockerfile.base +++ b/Dockerfile.base @@ -289,15 +289,21 @@ RUN ARCH=$(case "${TARGETARCH}" in amd64) echo "x86_64" ;; arm64) echo "aarch64" # Always installed in the base. Set INSTALL_MEMPALACE=false at base-build # time to shave ~300 MB. # -# Stall protection (fixed 2026-06-13): mempalace-mcp is launched by the -# `mempalace.ts` pi extension from mempalace-toolkit (cloned below). That -# extension now applies a per-REQUEST timeout in its JSON-RPC client and -# kills the child on stall, so a virtiofs cold-open of chroma.sqlite3 / -# HNSW load can no longer hang the pi TUI uninterruptibly. Tunables: +# Stall protection (fixed 2026-06-13; self-heal added 2026-06-25): +# mempalace-mcp is launched by the `mempalace.ts` pi extension from +# mempalace-toolkit (cloned below). That extension applies a per-REQUEST +# timeout in its JSON-RPC client and kills the child on stall, so a virtiofs +# cold-open of chroma.sqlite3 / HNSW load can no longer hang the pi TUI +# uninterruptibly. A stall-kill is no longer a permanent latch either: the +# next tool call respawns the server with capped exponential backoff (the +# budget resets on any successful response). Tunables: # MEMPALACE_MCP_TIMEOUT_MS (default 60000), MEMPALACE_MCP_INIT_TIMEOUT_MS -# (default 120000); 0 disables. A standalone stdio-watchdog shim is NOT -# needed — the extension already owns request/response correlation. See -# CHANGELOG.md "Unreleased > Fixed". +# (default 300000 — generous so a genuine first cold-open isn't killed), +# MEMPALACE_MCP_MAX_RESPAWNS (default 2; 0 disables self-heal), +# MEMPALACE_MCP_RESPAWN_BACKOFF_MS (default 1000); timeouts of 0 disable. +# Defaults live in the extension, so no ENV is needed here. A standalone +# stdio-watchdog shim is NOT needed — the extension already owns +# request/response correlation. See CHANGELOG.md "Unreleased > Fixed". ARG INSTALL_MEMPALACE=true # Pin to a known-good version. Bump deliberately, not implicitly: an # unpinned install silently swept in mempalace 3.3.x/3.4.0 with a broken