Root cause: The node-llama-cpp Metal GPU backend was crashing with an
assertion failure (ggml-metal-device.m). This was being triggered by the local
vector embedding provider used for memory search. Each time the gateway
started, it loaded the local llama model, hit the Metal bug, and crashed —
causing a SIGTERM restart loop until macOS gave up.
Fix: Disabled memorySearch.enabled → false in openclaw.json. The provider is
still set to "local" (to pass config validation) but won't be loaded since
search is disabled.
Trade-off: You lose hybrid vector+text memory search. Once OpenClaw ships a
fix for the node-llama-cpp Metal assertion (or you update), you can re-enable
it by setting memorySearch.enabled: true. Text-based memory (keyword matching
from compaction/session files) should still work through the normal agent
context.