Two memories

    Partial

    One for how it decides, one for what your code is. The first is running; the second is stale.

    Most agent tooling forgets everything between tasks. Vibemind keeps two memories, deliberately separate, because conflating them makes both worse. One of them is running; the other has not been updated since early September.

    The routing graph

    This holds how decisions got made: episodic traces of individual routes, semantic associations, procedures, state, recorded decisions and a self-model of the system’s own behaviour. The code defines nine logical collections plus archives; the vector store holds 13 collections in total, two of which are currently empty. A separate plan log records each executed plan.

    It answers questions like: when someone says this, where does it usually belong, and did that work last time.

    The code graph

    This is a semantic index over a codebase, chunked and embedded, meant to re-index as commits land. It answers a completely different question: what is in this repository, and where.

    Keeping it separate matters because it has a different lifecycle. The routing graph should persist and compound across everything you ever do. The code index is disposable and rebuildable from the repository at any time.

    Why not one store

    Routing graphCode graph
    QuestionHow do I decide?What is this code?
    LifecycleCompounds indefinitelyRebuilt from source
    Loss impactSystem gets worse at routingRe-index and continue
    ScopeGlobalPer repository
    Written byExecuted plans and decisionsCommit hooks (currently failing)

    The practical argument: if you put them together, a repository re-index churns the store that holds your routing history, and a routing update invalidates cache for code lookups. They have no reason to share anything and several reasons not to.