Skip to content

Represent host-scoped path topology so same pathname doesn't flatten into wrong operational truth #21

@BlueBirdBack

Description

@BlueBirdBack

Problem

Mneme is already stronger on recall, citations, and drift, but it still seems weak at one specific class of memory truth:

the same pathname can mean different things on different hosts / roles, and flattening that loses operational truth.

Recent example shape:

  • Host A: /opt/work/app is the canonical local git checkout
  • Host B: /opt/work/app is a tar-synced deploy/build directory with .git intentionally absent
  • Same pathname string
  • Different semantics
  • Different valid actions

If memory preserves only the path string and not the host/role/deploy semantics, retrieval can produce a confident-but-wrong next step such as:

  • assuming remote git pull is valid
  • assuming a path is a repo because it is a repo somewhere else
  • missing that the real deploy method is sync -> build -> restart service

That is not just a retrieval miss. It is a provenance/topology miss.

Why this matters

Mneme is trying to help operators recover truth, not just repeat strings.

For operational memory, these distinctions matter:

  • host / machine identity
  • path role (git_checkout, synced_build_dir, runtime_output, service_workdir, etc.)
  • deployment method (git pull, tar sync, rsync, artifact copy, image deploy)
  • whether .git is expected to exist
  • related service/process anchor

Without that, memory can retrieve a real path but still support the wrong action.

Proposed direction

1. Add topology-aware provenance

Extend durable memory / compiled memory shape so path-bearing facts can carry at least:

  • host
  • path
  • pathRole
  • deployMethod (optional)
  • serviceName (optional)
  • repoRemote (optional, when actually applicable)
  • gitExpected / isGitCheckout (optional boolean)

2. Treat "same path, different host/role" as first-class

Mneme should not collapse these into one canonical remembered path.
It should preserve them as separate facts and help retrieval surface the distinction.

3. Drift detection should catch semantic collisions

A future drift pass should flag things like:

  • same path string appears in multiple places
  • but host / role / git semantics differ
  • operator review recommended

This is similar to contradiction detection, but not identical: both facts may be true.
The bug is the missing distinguishing context.

4. Retrieval should prefer action-safe phrasing

When evidence is host-scoped, retrieval/compilation should favor output like:

  • "On host A, this path is the git checkout."
  • "On host B, the same path is a synced build directory, not a repo."

instead of flattening to:

  • "The path is /opt/work/app."

Acceptance criteria

  • Mneme can represent path-bearing facts with host + role semantics
  • compiled memory keeps host/path-role distinctions instead of flattening them
  • retrieval can surface both facts cleanly when the same path exists on multiple hosts
  • drift tooling can flag same-path / different-semantics collisions for review
  • docs/examples include at least one operator/deploy topology example

Short version

Mneme should get better at memory topology, not just memory text.

A pathname without host/role/deploy semantics is often only half a fact.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions