Skip to content

v1.4.0 — memories that can find each other

Choose a tag to compare

@dthorntonz dthorntonz released this 24 Aug 01:19
· 5 commits to main since this release

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 N keeps 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 — a relates edge 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 --weave it 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 remember and remember_many tools accept topics. 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 --topic now 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"