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.
This commit is contained in:
pi
2026-06-26 00:22:29 +02:00
parent 904fe85249
commit bff810c1eb
+14 -8
View File
@@ -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 # Always installed in the base. Set INSTALL_MEMPALACE=false at base-build
# time to shave ~300 MB. # time to shave ~300 MB.
# #
# Stall protection (fixed 2026-06-13): mempalace-mcp is launched by the # Stall protection (fixed 2026-06-13; self-heal added 2026-06-25):
# `mempalace.ts` pi extension from mempalace-toolkit (cloned below). That # mempalace-mcp is launched by the `mempalace.ts` pi extension from
# extension now applies a per-REQUEST timeout in its JSON-RPC client and # mempalace-toolkit (cloned below). That extension applies a per-REQUEST
# kills the child on stall, so a virtiofs cold-open of chroma.sqlite3 / # timeout in its JSON-RPC client and kills the child on stall, so a virtiofs
# HNSW load can no longer hang the pi TUI uninterruptibly. Tunables: # 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 # MEMPALACE_MCP_TIMEOUT_MS (default 60000), MEMPALACE_MCP_INIT_TIMEOUT_MS
# (default 120000); 0 disables. A standalone stdio-watchdog shim is NOT # (default 300000 — generous so a genuine first cold-open isn't killed),
# needed — the extension already owns request/response correlation. See # MEMPALACE_MCP_MAX_RESPAWNS (default 2; 0 disables self-heal),
# CHANGELOG.md "Unreleased > Fixed". # 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 ARG INSTALL_MEMPALACE=true
# Pin to a known-good version. Bump deliberately, not implicitly: an # 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 # unpinned install silently swept in mempalace 3.3.x/3.4.0 with a broken