Glossary
A single message in a conversation between an agent and a user (or between two agents). Turns are the atomic write unit. They carry role, content, optional tool / actor / session_id provenance, and a SHA-256 content hash for deduplication.
→ See Quickstart for record_turn examples.
Memory
Section titled “Memory”A retrievable unit produced from one or more turns. Memoturn materializes several kinds:
- Turns: raw conversational content (the default search unit).
- Pinned: operator-asserted durable facts via
pin_memory. - Semantic: extracted durable facts via
extract_semanticor promoted candidates. - Consolidated: rolling per-session summaries.
- Reflections: cross-session consolidations produced by the daily cron.
Each memory carries a salience score (0.0–1.0) that decays over time and is boosted on recall.
→ See Architecture.
Project
Section titled “Project”The top-level isolation boundary. Each project has its own Durable Object (write coordinator), its own memories in Vectorize and Postgres, and its own API keys. Projects don’t share data; that’s by design.
Session
Section titled “Session”A logical “conversation thread” inside a project. Sessions group turns so summaries and presence can scope cleanly. Optional but recommended for any agent that sustains a thread across turns.
Pin / Forget
Section titled “Pin / Forget”Pin elevates a memory so it’s always returned in search regardless of relevance score. Use for canonical facts (“we use TanStack Start, not React Router”). Forget soft-deletes a memory by content hash so it stops appearing in search.
→ See Memory rules for automated pinning.
Broadcast
Section titled “Broadcast”A cross-tool message keyed by string. Any agent in the project can set_broadcast(key, value); any other agent can get_broadcast(key) or react via a rule. Used for “leave a note” patterns: “branch is in conflict”, “build is broken”, “review needed on PR-123”.
→ See Team coordination.
A short-lived lease on a resource (a file path, a feature flag, a deployment slot). claim(key, holder, ttl_ms) succeeds atomically; subsequent claims block or extend. Watchdog rules can release stale claims automatically.
→ See Team coordination.
Review
Section titled “Review”A request that another agent (or a human) check work before continuing. request_review writes a review record routed to a reviewer pool; mark_reviewed closes it. Pairs with the bundled review-router rule.
→ See Team coordination.
A cross-tool view of “what files / functions are agents currently working in.” Driven by heartbeat calls that include current_file and current_function. Surfaces collisions when more than one agent is active in the same path.
→ See Team coordination.
A declarative workflow that fires on broadcast events. JSON spec (on_kind plus actions[]) runs server-side with ${payload.X} template substitution. Three are bundled: error-pin, claim-watchdog, review-router.
→ See Memory rules.
A self-contained capability spec following the agentskills.io v1 format. A markdown SKILL.md plus optional resource files. Memoturn stores them, indexes the description for semantic discovery, and serves them on demand to agents that ask for them.
→ See Skills.
Hybrid search
Section titled “Hybrid search”Memoturn fuses five retrieval legs via Reciprocal Rank Fusion (RRF):
- Dense: vector similarity (Workers AI BGE embeddings, stored in Vectorize).
- Lexical: Postgres full-text search (
tsvectorovertsquery). - Hot: a recency cache served from the project’s Durable Object storage.
- Entity: structured lookup of extracted symbols, files, error codes, commands.
- Graph: BFS over entity co-occurrence edges.
Post-fusion, results are weighted by salience and rescored by a cross-encoder reranker. Each result reports per-leg ranks so you can see which legs contributed.
→ See Architecture.
Salience
Section titled “Salience”A 0.0–1.0 score on every memory. Initialized at 1.0, decays exponentially based on memory kind (turns=14d, consolidated=60d, pinned=180d, semantic=365d half-life). Boosted +0.10 when the memory is returned in search results (reinforce-on-recall). Multiplied into the RRF fusion score so stale context ranks lower than fresh.
Temporal fact
Section titled “Temporal fact”A structured subject-predicate-object triple with a validity window (valid_from / valid_to). Facts capture durable claims about the project (“auth uses JWT”, “deploy target is us-east-1”). Recording a new fact for the same subject+predicate auto-supersedes the previous one. Point-in-time queries answer “what was true on date X?”.
→ See Tool reference.
Candidate
Section titled “Candidate”An LLM-extracted memory proposal staged for review before promotion to durable memory. The ingest pipeline produces candidates from every turn; agents or humans accept or reject them via review_candidate. Prevents noise from low-confidence extractions.
→ See Tool reference.
Contradiction
Section titled “Contradiction”A conflict between two active facts with the same subject+predicate but different objects. find_contradictions scans for these and uses an LLM judge to classify severity (low/medium/high).
→ See Tool reference.
Edge transaction
Section titled “Edge transaction”A typed relationship between two memories or facts (supersedes / contradicts / derives_from / same_as) with cascading side effects. supersedes closes the destination’s validity and transfers salience. Created via execute_edge.
→ See Tool reference.
Synthesis
Section titled “Synthesis”The synthesize tool runs a search internally, feeds top results to an LLM, and returns cited prose with an explicit list of gaps — things the question asks about that the project’s memory doesn’t cover.
→ See Tool reference.
Provenance
Section titled “Provenance”Every turn and memory carries optional tool (e.g., cursor, claude-code, cli/observe) and actor (e.g., user email) columns. Search filters can scope by these: “what has Alice’s Cursor session done in the last hour?”.
ProjectDO
Section titled “ProjectDO”The Durable Object that owns a single project’s writes. Serializes record_turn / claim / broadcast / review mutations, hot-caches recent turns, and broadcasts WebSocket fan-out to all subscribers. One DO per project, zero cross-project sharing.