The startup health check in observer.ts:645 did fetch().then(r => r.json()) against the gateway /health endpoint, which returns text/plain "lakehouse ok" not JSON. r.json() throws, .catch swallows to null, observer concludes "gateway unreachable" and exits. Combined with systemd Restart=on-failure this produced a 5-second crash loop on every boot of matrix-test. Fix: r.ok ? r.text() : null — keeps the same null-on-failure contract for the existing if (!health) guard while accepting the actual content type. Sealed in pathway_memory as TypeConfusion:fetch-health-json (trace at matrix_handover_validate|mcp-server/observer.ts|service_crash_loop) so the matrix index preempts this on any future deploy probe. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Description
Architectural checkpoint: matrix-driven agent loop with Mem0 versioning + deletion validated end-to-end on Chicago permit data
Languages
Rust
44.2%
TypeScript
30.4%
HTML
12.5%
Python
8.6%
JavaScript
1.7%
Other
2.6%