The mnestome is the local store that can represent a graph of mnests between executors. Its code implements persistence, traversal, decay, and inspection tools. It is not currently a graph that the runtime populates automatically from every turn, and it is not a personal memory of the user.
Mnestoma opens a SQLite database with WAL and foreign keys
enabled. Its API can record edges, change their state, traverse them, find
recurring protos, and read statistics and events.
The turn runtime populates the separate canonical_query_log table
in the same file when it receives a useful canonical query. It does not call
record_passing() for edges. These two kinds of telemetry must not be
confused.
In the logical model, nodes are executor names and versions and edges are
directed, weighted mnests. A proto edge ends at a desired name with
no version. walk(start, max_depth) performs breadth-first search,
excludes protos by default, and orders paths by decreasing average weight.
Synt's composer can use this structure to find a chain of existing executors. It does not generate L0 or L1, alter the ordinary planner ranking, or replace the signed catalog.
| It is not | Reason |
|---|---|
| Complete turn history | Turns have separate logs; an event may store only their identifier. |
| A user profile | The schema describes executors, edges, and technical telemetry, not preferences or personal facts. |
| A plan cache | L0 and L1 use their own stores, keys, and validity rules. |
| Proof of effects | An edge exists because a caller wrote it. |
| An automatic synthesis system | Protos are signals; Synt, tests, and the promoter have separate responsibilities. |
| Object | Content |
|---|---|
executors | Name, version, state, load time, and manifest hash. The current API does not populate it automatically. |
mnests | Edges, weights, uses, timestamps, states, tags, and desired signature. |
events | Reinforcements, decays, and state changes, with an optional turn_id. |
v_mnestoma | View of active and proto edges. |
canonical_query_log | Canonical query, tool, observed argument shape and values, counters, and outcome. It is telemetry separate from the graph. |
On open, idempotent migrations add events.turn_id and
canonical_query_log.args_observed to older databases.
The main public operations are:
record_passing(): create or reinforce a mnest or proto;transition_state() and
promote_proto_to_active(): change state with an event;top_k_outgoing(), top_k_incoming(),
walk(), and by_tag(): query the graph;recurring_protos(), decaying(), and
top_active(): select operational sets;events_for(), audit_recent(), and
stats(): support inspection and audit;record_canonical_query(): update separate normalized-query
telemetry.The scheduler installs the nightly_aging job at 03:30. It runs
executor aging and Mnestoma.apply_ager() in sequence. The latter:
active and proto edges with time;active edges to decaying;decaying archive candidates;The job is idempotent for the same logical instant only if it is not repeated
with an advancing timestamp: each run updates ts_last and writes
events for decayed records.
The ager does not automatically archive decaying edges: it returns
a proposed_archive count. The module has no routine that creates
monthly snapshots, compresses annual copies, or includes the database in a backup.
Those operations require an explicit external policy.
The only automatic graph deletion performed by the ager concerns proto-mnests
with weight below 0.05. Their associated events are also removed by
the foreign key's ON DELETE CASCADE.
Italian documentation uses mnestoma; English documentation uses
mnestome. The Python module, class, and SQLite-directory name remain
mnestoma in both languages. Mnest is the technical name of
one edge and is not translated.
On first open, the database is created with an empty schema. No hidden edge
seed is installed, and the Mnest class does not admit a
seed state. Edges appear only through explicit API calls or data
already present in the configured database.
Turns may instead add records to canonical_query_log. This
activity must not be shown as the birth of mnests, clusters, or L0/L1 paths.
python3 -m mnestoma provides commands for statistics, aging,
top incoming/outgoing edges, protos, walks, summaries, and audit. The
python3 -m observability render renderer can include counts, active
edges, protos, and recent events in static HTML.
These tools read store contents; they do not establish that those contents are complete. An empty mnestome is a legitimate outcome of the current integration.
<workspace>/.mnestoma/mnest.sqlite: its scope is the configured
workspace, not a user derived from the turn.runtime/mnestoma.py, runtime/synt.py,
runtime/jobs/maintenance_tasks.py, and
runtime/observability.py.