SuperLocalMemory 4.0.6 — The Connected Brain
A dashboard that reads like a report rather than a metrics dump, and the knowledge graph fixed.
The Brain, rewritten for people who do not read telemetry
The Brain section leads with the number of questions your memory has answered instead of a raw event count. It names its ranking phase in words. It no longer presents a starting value as if it were a measured result, and source quality no longer lists internal identifiers. When nothing has been measured yet, it says so and explains what would change that.
The knowledge graph no longer opens blank
The graph could render nothing on first open — and again each time you came back to it — until you nudged the node slider. Two separate causes: the view framed its camera against a canvas that had no size yet, and re-entering the pane cleared the canvas without redrawing it. Default node count is now 50.
Below 1100px the details and chat panel stacks under the graph a full screen-height out of view. There is now a control to reach it, and a way back.
Fixes from reported issues
Saving dashboard settings no longer destroys your API key (#119, reported by @barrygfox). The write path distinguishes a field you left alone from one you deliberately cleared, and the endpoint keeps its scheme across a reload-and-save. The key is cleared when the destination provider actually changes, so a credential is never relayed to an endpoint it was not issued for.
Self-hosted rerankers on a private LAN work over plain HTTP (#112, reported by @unfall103-debug). retrieval.trust_plain_http_lan (default on) allows plain HTTP to numeric private addresses — the same posture already applied to loopback. Public IPs, carrier-grade NAT and bare hostnames still require HTTPS. Turn the flag off for hardened deployments.
WAL close-path hardening (#118, reported, diagnosed and fixed by @kenyonxu). Per-call connections disable checkpoint-on-close. On SQLite builds whose close-path checkpoint can block, closing a WAL connection could wait on reader marks pinned by another connection while holding SQLite's process-global lock, stalling every later connection in the process — and busy_timeout does not apply there. Reviewing that fix surfaced a second bug: wal_autocheckpoint is per-connection and is not stored in the database file, so the configured value had only ever applied to the short-lived startup connection while working connections silently ran on SQLite's default.
Recall survives a reranker that returns no scores — it falls back to its existing ranking instead of raising.
Presence says when it stopped being recorded. A gap in recording used to look identical to "no agents are active".
Code graph
build_code_graph had failed on every repository since late July: the resolver was written but never called, so unresolved edges reached the store and the whole build aborted on a foreign key. The resolver is wired into both the full and incremental paths, and a batch now inserts every node before any edge, so a result no longer depends on the order files happened to be processed.
Memory consolidation (#113, requested by @unfall103-debug)
Repeated facts about the same entity are merged during maintenance, and the originals are archived rather than deleted.
Session, daily and project summary generators also landed — but nothing calls them yet. There is no command, tool or endpoint, so that part is not usable in this release; the surface lands in 4.0.7. Tracked in #113.
Connected clients
Codex is listed with the configuration that proves it. Bounded Loops is detected when installed, with its version and the bridge it speaks.
Thanks to @kenyonxu, @barrygfox and @unfall103-debug — every reported fix in this release came from an issue with a reproduction attached.
pip install --upgrade superlocalmemoryFull changelog: https://github.com/qualixar/superlocalmemory/blob/main/CHANGELOG.md
Compare: v4.0.5...v4.0.6