Repository navigation
v12.4.0 — 100% functionality through every install path
[12.4.0] — 2026-05-26 — 100% functional through every install path
npx connect, bash install.sh, docker run, docker compose up — same
4 services, same MCP HTTP API, same dashboard. No path is missing pieces
anymore.
Added — MCP Streamable HTTP transport
src/server.pynow supportsMCP_TRANSPORT=http(also accepts
streamable-http). Boots a uvicorn ASGI app exposing:POST/GET/DELETE /mcp— MCP Streamable HTTP (spec 2025-03-26)GET /healthz— DB-independent liveness probe
- Same
Serverinstance powers both stdio and HTTP, so all 60+ MCP tools
are reachable over the network — IDEs, sidecars, k8s pods can all
connect without a stdio bridge. stateless=Falsekeeps in-process session multiplexing; clean
SIGTERM via uvicorn'stimeout_graceful_shutdown=5matches Docker
stop-grace.
Added — scheduler service (cron-style)
docker/scheduler_daemon.py— stdlib-only scheduler that runs
orphan-backfill4×/day andcheck-updatesweekly inside the same
image. Replaces themcuadros/ofeliaexternal container and its
Docker-socket mount.- npm wrapper 1.3.0 ships matching scheduler services on macOS
(StartCalendarInterval) and Linux (OnCalendarsystemd timers).
Added — full single-image stack
tam-entrypointshim routesdocker run … mcp|dashboard|reflection|scheduler|all
through the supervisor.- Default
TAM_SUPERVISOR_SERVICES=mcp,dashboard,reflection,scheduler
→docker run -p 3737:3737 -p 37737:37737 -v vol:/data ghcr.io/.../total-agent-memory
brings the whole product up with one command. EXPOSE 3737 37737; HEALTHCHECK probes both/healthzendpoints.- ML caches pinned to the data volume (
HF_HOME,TRANSFORMERS_CACHE,
TORCHINDUCTOR_CACHE_DIR) — prevents torch._dynamo from crashing on
containers with tmpfs/tmp< 100 MB. - Default
OLLAMA_URL=http://host.docker.internal:11434— single-image
finds host Ollama out of the box on Docker Desktop / Windows / WSL2.
Graceful degradation to FTS+embeddings if Ollama unreachable.
Added (v12.3 carry-over — never tagged separately)
docker/tam_supervisor.py— stdlib supervisor (prefix logging,
exponential-backoff restarts, signal propagation)./healthzendpoint on the dashboard.- Auto-initialise
memory.dbon first boot inside the container. launchagents/com.total-agent-memory.dashboard.plist(installed by
install.shon macOS)..github/workflows/docker.yml— multi-arch (amd64+arm64) build+push
to ghcr on every git tag, with/healthz+/api/stats+ docker
healthcheck smoke before publish..github/workflows/smoke.yml— install-matrix smoke on every PR.tests/smoke/install-docker-pull.sh,tests/smoke/install-sh-macos.sh.- Plist placeholders unified to
__INSTALL_DIR__/__MEMORY_DIR__/
__HOME__. Old plists hardcoded__HOME__/claude-memory-server/...,
breaking clones with any other directory name.
Changed
docker-compose.ymlmcpservice is back (was removed in v12.3 when
HTTP transport didn't exist). Same image asdashboard/reflection,
command: ["mcp"].schedulercompose service now runs in the main image
(command: ["scheduler"]) instead ofmcuadros/ofelia— no more
Docker socket mount in the stack.install.shStep 5 (olddashboard-service.sh installcall) removed
— it created acom.claude-total-memory.dashboardplist that fought
the canonicalcom.total-agent-memory.dashboardplist for port 37737.
Fixed
bash install.shunder any clone name now writes valid plist/unit
paths instead of references to a non-existent~/claude-memory-server/.bash install.sh --uninstallcleans up the new dashboard plist too.