What it gives you
- Three write paths, one taxonomy: edit an existing note in its file, gno capture creates a genuinely new document with provenance, gno remember upserts one fact of at most 4096 bytes; longer text is refused and pointed at capture
- Explicit scopes on every call, 1 to 8 per call, with no implicit global scope: an unscoped remember or recall fails with MEMORY_SCOPES_REQUIRED on every surface, and shared visibility is a scope name several callers agree on
- Supersession instead of edits: a new fact names its predecessor by gno:// URI and content hash, GNO checks both under the shared write lease, and two writers racing to replace the same fact get one successor and one MEMORY_SUPERSEDE_CONFLICT
- Budgeted, cited recall: at most 8 facts under 512 estimated tokens by default, current facts only, each with its gno:// URI, content hash, scopes, caller, session, and egress lineage
- Context fence: every recall carries a content-free receipt, and a remember that replays a receipted span or declares a gno:// origin is rejected with MEMORY_FENCED_REPLAY or MEMORY_FENCED_DERIVED
- The fence is exact-span plus declared origin. A paraphrase presented without its receipt is stored as an original fact; treat receipts as part of the agent's contract, not as a security boundary
- Identity bound to the connection: MCP takes the caller from the initialize handshake and the session from the transport, so a client cannot claim to be another one
- The caller decides: remember without a decision returns likely matches and writes nothing; --add and --supersede are the only ways a fact lands, and no model adjudicates a match
- Retrievable when the call returns: the write and the lexical index sync complete under the shared write lease, and the recall receipt shows retrieval mode hybrid or lexical with the reason
- Nothing is deleted by the contract: superseded facts stay on disk and in ordinary search, and recall excludes them inside the query
- Harness adapters without a second write path: the gno agents protocol block adds the recall rung and the remember decision to the ladder, the Hermes Agent provider maps prefetch and a gno_remember tool onto the contract, and the OpenClaw plugin retrieves over the workspace memory files
- Deliberate exclusions: no automatic capture, no model in the write path, no consolidation jobs, no delete or forget verb, no memory screen in the Web UI, and no cross-machine coordination beyond your own vault sync