v0.2.0 — budget-aware recall, portable memory, forget, feedback verbs, audit log
The launch release: the five capability gaps identified by an independent
landscape analysis, plus the display-brand and one-liner refresh.
- branding: display brand is capitalized Veracium in all prose (code
identifiers stay lowercase); canonical one-liner applied to the PyPI summary,
README lead, and MCP server description. - audit: opt-in operation audit log —
Memory(audit=AuditLog(path))
appends one content-free JSONL line per operation (UTC timestamp, op,
user_id, the op's counters; never memory text) covering
remember/recall/answer/maintain/dispute/confirm/forget/export/import.
Append-only, host-owned; sink failures never break memory. - feedback verbs:
dispute(user_id, edge_id, reason=, actor=)— the edge
leaves every assertable surface immediately (non-destructive invalidation,
reason"disputed"), and the dispute itself is remembered as an episode with
actor and reason;confirm(user_id, edge_id)— refreshes validity, clears
the possibly-stale flag, records the confirmation.confirmrefuses
non-assertable edges (elevating a claim by confirmation would be a laundering
vector — affirmation is new evidence, useremember()). Neither is an MCP
tool by design. Content-freefeedbacktelemetry event. - forget (compliance erasure):
Memory.forget(user_id)irreversibly erases
everything stored for a user — edges incl. superseded history and quarantined
claims, episodes, wiki cache, counters. Distinct from lifecycle by design
(maintain()never deletes;forget()never preserves). CLI:
veracium forget --user X(confirmation prompt;--yesto skip).
Deliberately not exposed over MCP — an agent-callable wipe verb is a standing
prompt-injection target.Storegainsforget_user()(non-abstract;
custom stores keep working until they implement it). - portability: JSONL export/import —
Memory.export_memory(user_id, path)
writes the complete store of record (all edges incl. superseded history and
quarantined claims, all episodes, full provenance/disclosure);
import_memory(path, user_id=...)is idempotent (existing ids skipped, never
overwritten) and can remap users. CLI:veracium export/veracium import
(store-only, no LLM needed). The wiki cache is not exported — it recompiles. - recall: token-budget-aware context assembly —
recall(user_id, query, token_budget=N)caps the rendered context (chars/4 heuristic; Veracium is
tokenizer-agnostic). Trimming follows a documented priority: query-matched
facts, then unverified-claim flags (never silently dropped below the facts
they annotate), then the curated wiki (all-or-nothing), then recent episodes
newest-first; best-effort minimum of one item.Recallgains
tokens_estimated/truncated; the MCPrecalltool exposes the parameter;
the content-free telemetryrecallevent gains atrimmedcounter.