Repository navigation
v2.7.0 — memory layer boundaries
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 intofacts.lan_recallseparatesmemory,fact, andexperience; a fact search cannot hit manual memory and vice versa.- Added the
lan:manualcontext, 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.