Skip to content

v0.2.0 — budget-aware recall, portable memory, forget, feedback verbs, audit log

Choose a tag to compare

@qspencer qspencer released this 16 Jul 11:10

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. confirm refuses
    non-assertable edges (elevating a claim by confirmation would be a laundering
    vector — affirmation is new evidence, use remember()). Neither is an MCP
    tool by design. Content-free feedback telemetry 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; --yes to skip).
    Deliberately not exposed over MCP — an agent-callable wipe verb is a standing
    prompt-injection target. Store gains forget_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. Recall gains
    tokens_estimated/truncated; the MCP recall tool exposes the parameter;
    the content-free telemetry recall event gains a trimmed counter.