From bff810c1eb918ccaa21905427f2110b910eeea55 Mon Sep 17 00:00:00 2001 From: pi Date: Fri, 26 Jun 2026 00:22:29 +0200 Subject: [PATCH] docs(dockerfile): sync mempalace stall-protection comment with self-heal mempalace.ts now self-heals (respawn with capped backoff) instead of latching unavailable, and the init-timeout default is 300000. Update the explanatory comment + tunable list (MEMPALACE_MCP_MAX_RESPAWNS, MEMPALACE_MCP_RESPAWN_BACKOFF_MS). Comment-only; no build/ENV change. --- Dockerfile.base | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) 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