Skip to content

v2.7.0 — memory layer boundaries

Choose a tag to compare

@kiefeng kiefeng released this 22 Oct 08:28
· 9 commits to master since this release

v2.7.0 — memory layer boundaries

The counts and the memory tab no longer disagree about what a “memory” is.

Four layers

  • 常驻 / pinned — always injected, highest priority; identity and hard constraints only.
  • 手动记忆 / memory — things the user explicitly asked to remember; injected every turn via lan:manual, editable, never auto-created.
  • 自动事实 / facts — model-extracted from summaries; participates in the compiled profile; editable; never mixed into memory.
  • 经验 / experience — reusable methods and lessons; recall-only, never part of the user profile.

memory.md remains the compiled profile, not a fifth input layer.

Behavior changes

  • lan_remember(layer=memory) no longer copies the entry into facts.
  • lan_recall separates memory, fact, and experience; a fact search cannot hit manual memory and vice versa.
  • Added the lan:manual context, so manual memory does not depend on a recall call.
  • Settings overview now shows 常驻 / 手动记忆 / 自动事实 / 经验 / 待编译, matching five sections.
  • Memory tab splits into: profile, automatic facts, manual memory, pinned, experience, each with its own inclusion rule.

Tests

63 node:test checks pass, including the boundary assertion that manual memory leaves facts empty.