v1.4.0 — memories that can find each other
A memory reaches a model one of two ways: by its words, or by association. Association needs edges — shared topics and links — and a store that stops making them keeps answering keyword questions while quietly losing the other kind. That failure does not look like a fault: recall still works, the field just stops settling.
Weaving can finish
dream --weave --passes Nkeeps weaving until nothing is proposed or N passes have run. A pass proposes a reviewable number of pairs, which is right for a move that needs judgement and wrong for the one move here that does not — arelatesedge only ever adds. Clearing a real backlog previously meant running the same command by hand two dozen times. One pass remains the default, and without--weaveit does nothing.- The pair scan now reports how many candidates it found alongside the capped number it shows. It had been finding hundreds and reporting fifteen, so a worklist reading "15 connections to weave" was describing a backlog twenty times that size.
Topics, asked for and proposed
- The MCP
rememberandremember_manytools accepttopics. They had no way to set one at all, so every memory stored through that path was unclusterable by construction. - Storing from the CLI without
--topicnow says so and names the repair, the same way the write path speaks up when it splits an oversized gist. - The consolidation worklist lists memories carrying no topic, with suggestions. Suggestions prefer topic names the store already uses — reusing a name creates an edge to the memories carrying it, while coining a fresh word connects the memory to nothing.
Measured
On a lived-in store, weaving the association backlog — 354 links across 752 memories, no memory rewritten or removed — took the field settle rate of a low-glue workload from 19.8% to 50.2% across four hundred real queries: 122 gained an answer, none lost one. That is a young project's memory reaching what a mature one already had.
Restoring topics to untagged memories was worth a further 2.7 points on the same corpus, and suggestions drawn from existing topic names beat suggestions picked for distinctiveness alone.
Recall ranking is unaffected by either change — verified rather than assumed, by running the ranking fence before and after.
If your store has been accumulating memories without weaving, this is the release to run dream --weave --passes 30 on.
1096 tests + 1 skip.
Install: pip install "git+https://github.com/itdtllc/fornixdb@v1.4.0"