Every term, defined once.
Mneia has a small vocabulary and uses it precisely. These are the definitions the product, the schema, and the rest of this documentation all mean.
How to read this
Domain terms match the schema exactly. Where a definition names a column - load_bearing, human_confirmed, asserted_by, valid_from - that is the literal column, and the mapping between the snake case in SQL and the camel case in TypeScript is mechanical.
Synonyms are not invented. "Memory", "note", and "entry" are not a context item, and a vocabulary that drifts between the specification and the code makes every later reference ambiguous.
Checkpoint
The operation that captures an agent session into project memory at a task or day boundary, extracting typed decisions, constraints, open questions, facts, and artifact references.
A checkpoint runs at a boundary rather than at a threshold. Ambient capture produces noise nobody trusts; compaction fires when the window is full, which is the point of maximum pressure and least judgement. Items that are load-bearing or that contradict something already recorded are held for a human to confirm rather than written on an agent’s say-so.
Also written: mneia checkpoint, mneia_checkpoint.
Rehydrate
The operation that assembles the minimal high-signal context slice for a stated task, under a token budget.
Rehydration is selection, not compaction and not semantic search. Compaction shrinks what is already there without knowing the task; search returns what is similar rather than what is load-bearing. Its p95 latency budget is 300 milliseconds, because a rehydration nobody waits for is a rehydration nobody calls.
Also written: rehydration, mneia brief, mneia_rehydrate, context slice.
Handoff
A receivable artifact produced when work stops and consumed when it resumes, carrying the next action, current state, constraints, decisions, open questions, what was recently superseded, and the artifacts involved.
The handoff is the unit of value. Storing context and querying it is a database posture that puts the burden on whoever picks the work up - they have to know what to ask. A handoff inverts that: the actor stopping produces the object, and the receiver reads rather than searches. The rendered markdown is frozen at creation; the item links stay live.
Also written: handoff artifact, mneia handoff, mneia_handoff_create.
Context item
The unit of project memory in Mneia. One typed, attributed, bi-temporal record of something the project decided, requires, is unsure about, or points at.
Every context item has a kind - decision, constraint, open_question, fact, or artifact_ref - and the kind decides how it is treated during rehydration. It carries provenance, a confidence score, a load-bearing flag, a status, an access scope, and both an assertion time and a validity window.
Also written: context_item.
Load-bearing
A flag on a context item meaning the work goes wrong if the item is wrong. Load-bearing active constraints are always included in a rehydration slice, whatever the token budget.
This is the flag that drives both the human confirmation requirement and the rehydration guarantee. An agent may suggest it; only a human settles it. A dropped load-bearing constraint is how an agent confidently redoes the approach a human already rejected, so the guarantee is enforced by a test rather than by convention.
Also written: load_bearing, load-bearing constraint.
Human-confirmed
A flag meaning a person read a context item and ratified it. A human-confirmed item carries authority that an agent assertion cannot overrule.
The flag is derived from the authenticated actor rather than accepted from a caller, so it is a fact about the world rather than a claim a client made about itself. An agent assertion that contradicts a human-confirmed item is stored as disputed and surfaced, never silently applied.
Also written: human_confirmed.
Provenance
The record of who asserted a context item - a human or an agent, which one, when, from which session, and on what basis - rendered everywhere the item appears.
A human-confirmed constraint and an unconfirmed agent assertion are not the same object and must not look the same. Most memory products flatten them into one list of facts, which is how a guess acquires the authority of a ruling.
Also written: asserted_by, actor attribution.
Superseding
Replacing a context item by pointing a new item at the old one and recording why, instead of deleting or overwriting the old one.
The superseded item keeps its text, its reasoning, and its provenance. This is what makes it possible to warn a fresh agent away from an approach the team already rejected - a store that overwrites has thrown that information away at the moment it was replaced.
Also written: supersedes_id, supersede, superseded.
Superseded recently
The section of a rehydration slice and a handoff artifact listing what was tried and rejected, so it is not proposed again.
The highest-value block in the artifact, and the one no other product produces. What was tried and rejected is exactly what a fresh agent proposes again on Tuesday, and it is cheap to prevent and expensive to discover.
Also written: do not re-propose.
Context slice
The output of a rehydration: a rendered, provenance-carrying selection of context items chosen for one stated task and fitted to a token budget.
Sections appear in a fixed order - constraints, decisions and why, open questions, facts, artifacts, superseded recently - and an empty section is omitted rather than rendered blank. The response also carries the slice id and the included item ids, so a later checkpoint can report which items were actually used.
Also written: slice, brief.
Token budget
The ceiling you set on how much of the context window a rehydration slice may consume. Per-kind quotas apply within it so one prolific kind cannot crowd out the others.
Load-bearing active constraints are included regardless of what the budget is set to. When items do not fit, the count of what was left out is reported in the slice header rather than silently omitted.
Also written: --budget.
Disputed
The status of a context item that contradicts another and has not been settled. Disputed items are penalised in ranking, surfaced rather than hidden, and - where two humans disagree - held out of rehydration until a person resolves it.
Feeding an agent a contested constraint is worse than feeding it nothing. The disagreement is recorded as its own object naming both items, and its resolution records the outcome and the reasoning behind it.
Also written: contradiction, conflict.
Conflict resolution
How Mneia settles disagreements between writers. Agent versus agent resolves on confidence then recency; an agent never overrules a human-confirmed item; human versus human is never resolved automatically.
The asymmetry is the design. Two agents disagreeing is an ordinary ranking problem. An agent disagreeing with a person is not a tie to be broken. Two people disagreeing is not software’s decision at all - quietly preferring the newer row is indistinguishable from working correctly until a team discovers a ruling was overwritten.
Also written: arbitration, mneia conflicts, mneia_conflicts.
Rationale
The recorded reason a conflict was resolved the way it was - not merely which side won.
The outcome could be inferred from the rows afterwards; the reason could not. It is what explains a decision to whoever reads it a year later, and it is gone forever if it is not captured at the moment somebody decides.
Also written: resolution reason.
Access scope
The visibility level of a context item: private to the asserting actor, the project, the owning team, the whole workspace, or an explicit grant list.
Scope is ratified, never routed. The extractor suggests a scope and a human confirms or overrides it at the checkpoint, so widening an item to the whole company is a scope change with provenance rather than an approval workflow with its own state machine.
Also written: access_scope, visibility hierarchy.
Workspace
The tenant boundary - one company. Every row in Mneia carries the workspace it belongs to, and Postgres row-level security enforces the isolation underneath the application.
A person can belong to several workspaces. The identity is shared; the actor, and therefore every item they assert, is not. An access token carries its workspace, so the token is the binding and the clients need no workspace flag.
Also written: tenant.
Actor
A person or an agent inside one workspace. Agents are first-class writers with their own identity in the record.
Actor kind distinguishes human from agent, and it is not cosmetic: it is how rehydration decides what to trust and how conflict resolution decides who arbitrates. Actor kind is read from the record, never from the caller, so a client cannot claim to be a human.
Also written: actor_kind.
Team
A group inside a workspace, carrying a function - engineering, product, design, sales, marketing, support, success, operations, or finance - which shapes what its members see by default.
Function lives on the team rather than the person, so it keeps one source of truth and survives people moving between teams. It is what keeps a support engineer out of a backend team’s debugging trail without per-person configuration.
Also written: team_function.
Project
A body of work that context items belong to. Usually one repository, but a sales team’s quarterly motion is as valid a project as a backend service.
A repository is bound to a project by .mneia/config.json, which holds the workspace, the project slug, and the endpoint - no data and no credentials. It is meant to be committed, because the binding is a property of the repository rather than of one laptop.
Also written: .mneia/config.json.
Session
One run of one actor against one project, carrying the client that produced it - the tool, its version, and a deep link back to the original conversation where the client exposes one.
A checkpoint summarises a session. Where a client exposes only part of that shape, the absence is reported as partial provenance rather than backfilled with a guess.
Also written: trajectory.
Watermark
The server-side marker of how far the previous checkpoint read into a session, so a rerun neither loses turns nor captures the same ones twice.
It moves only after a chunk of the transcript has been parsed successfully. A session too large for one extraction call is split rather than trimmed, and a run that stops half way resumes at the last chunk that actually landed.
Also written: checkpoint watermark.
Confirmation queue
The set of checkpoint candidates held back for a human, containing exactly two categories: items that are load-bearing, and items that contradict something already recorded.
Everything else is written without interrupting you. Prompting for every extracted fact would train people to hold down a key, which is worse than not asking - a confirmation nobody read is a false signal in the record. The queue is surfaced verbatim rather than summarised.
Also written: pending queue, review queue.
Bi-temporal
Keeping two clocks on every context item: when somebody asserted it, and the window in which it was true of the project.
Collapsing the two loses the question worth asking. Keeping both is what answers *what did we believe on the third of March*, separately from *what do we believe now* - which is the question a postmortem asks and the question an audit asks.
Also written: valid_from, valid_to, asserted_at.
Open handoff
A handoff that names no recipient and may be picked up by whoever takes the work, as opposed to a directed handoff addressed to one person.
It is the shape that fits the end of a day, a rotation, or work being put down without a decision about who resumes it. Both kinds are received the same way, and receiving starts the clock on time to first action.
Also written: mneia pickup, mneia_handoff_receive.