← Back to home
Changelog

What we're shipping.

Real features. Real dates. No vapor. The product as it actually exists today, week by week.

May 3, 2026 — Evening Latest

Auto-supersede (beta).

Aurra now detects supersession for you

The supersede() API you got this morning is now optional. Pass auto_supersede=true on a write and Aurra runs an LLM classifier against the most semantically-similar existing memories. When it's confident a new fact replaces an old one, it supersedes automatically and writes an audit log entry. False negatives are recoverable via the manual API; false positives have a 0.85 confidence floor and a per-category opt-out gate that runs before the classifier ever sees the memory.

Per-write opt-in

Off by default. Pass the flag explicitly when you want it.

client.memories.add(
    content="User now prefers dark mode",
    auto_supersede=True,
)

Per-API-key defaults: PATCH /agent/settings

Set auto_supersede_default once and every write on that key opts in. Same endpoint controls excluded_categories (defaults to ["health_medical", "legal_status"] — the system filters these before the LLM ever runs), min_confidence (floor 0.85, raise to be more conservative), and classifier_model.

Tested at 100% gated precision

121-case hand-labeled benchmark covering 25 categories — clear supersessions, refinements, independent facts, hedging, reversion, generalization, B2B agent state, multi-entity ambiguity. 100% precision on the "supersedes" verdict at the 0.85 confidence threshold: every time the classifier was confident enough to act, it acted correctly. Pinned to claude-haiku-4-5. Eval methodology and acceptance criteria in the design doc.

Beta status: live behind a server-side feature flag

The API surface and SDK methods ship today and are stable. Live classification is gated by an environment variable while we run final production validation. Calls with auto_supersede=true currently return ran: false, skipped_reason: "level_2_disabled_by_env" — the memory still saves normally, the classifier just doesn't fire yet. The flag flips on later this week.

Python SDK v0.3.1 + JS SDK v0.2.1

Both clients ship with the new auto_supersede parameter on memories.add() plus a settings resource for the configuration surface. PyPI · npm

May 3, 2026

Bi-temporal versioning.

Memory now has a sense of time

Every memory carries valid_from, valid_to, and superseded_by. Your agent can now query what was true on any specific date, walk the supersession chain of any fact, and distinguish between "current truth" and "historical truth". Existing memories were backfilled with valid_from = created_at — no migration needed. Read the launch post →

New endpoint: POST /memories/{id}/supersede

Mark a memory as replaced by another, or expire it without a replacement. Old memory keeps its valid_from; valid_to is set to now. Both SDKs ship with a supersede() method.

client.memories.supersede(
    old_memory_id,
    superseded_by=new_memory_id,
)

New endpoint: GET /memories/{id}/timeline

Walk the full supersession chain for any memory — both forward (what replaced it) and backward (what it replaced). Returns oldest-to-newest with temporal flags on every entry.

Point-in-time queries on /agent/memories

Pass ?as_of=2026-04-01T00:00:00Z to get memories that were valid at that exact moment. The default response stays clean — only current truth — with a superseded_count so you know how much history exists without paying to fetch it.

Python SDK v0.3.0 + JS SDK v0.2.0

Both clients ship with supersede(), timeline(), and bi-temporal params on list(). Typed result objects (SupersedeResult, TimelineEntry) on both. PyPI · npm

May 2, 2026

JavaScript SDK + production billing.

JavaScript / TypeScript SDK on npm

npm install aurra ships a typed, Promise-based client with full parity to the Python SDK. ESM + CJS dual-build, zero dependencies, Node 18+, edge-runtime compatible. View on npm →

import { Aurra } from 'aurra';

const aurra = new Aurra({ apiKey: process.env.AURRA_API_KEY! });

await aurra.memories.add({
  messages: [
    { role: 'user', content: "I'm Alice. I prefer dark mode." },
    { role: 'assistant', content: 'Got it!' },
  ],
  sessionId: 'alice_1',
  tenantId: 'alice',
});

Aurra LLM add-on (Pro tier)

Skip the BYO-key setup. Aurra runs the extraction LLM for you, billed at $0.005 per write via Stripe Billing Meters. Toggle on or off from your dashboard at any time.

Stripe-powered self-serve billing

Hobby ($0), Starter ($29), Pro ($99), Enterprise ($3,000+) — all live, all self-serve. Webhook idempotency, grace-period quota gating, automatic seat billing on Pro at $25 per extra seat. See pricing →

HNSW vector index

Semantic search now uses pgvector's HNSW graph index. Roughly 10× faster query latency on memory recall, especially at scale. Zero schema migration required for existing customers.

Multi-tenant native

Every write accepts a tenant_id for end-user-level scoping. Build B2B agents without rolling your own isolation layer. Read endpoints filter automatically.

Apr 30, 2026

Source citations, audit trail, and BYO-LLM.

Source citations on every memory

Every read endpoint now returns a source_citation object with the source type, channel, capture timestamp, and original input. No more black-box recall.

Audit trail endpoint

GET /memories/{memory_id}/audit returns full provenance — source, original input, extraction model, prompt version, and history events. Wire it into your debugging tools or surface it to your end users.

Bring your own LLM

Pass your own provider key per request. Anthropic and OpenAI supported today. Mistral coming soon. Your API costs stay on your bill, your model choice stays yours.

from aurra import Aurra
client = Aurra(api_key="aurra_...")

client.memories.add(
    messages=[...],
    session_id="...",
    llm={"provider": "openai", "api_key": "sk-...", "model": "gpt-4o"}
)

Python SDK v0.2.0 on PyPI

pip install aurra ships a refactored client with typed exceptions, a memories resource, and full coverage of the new API surface. View on PyPI →

Dashboard rebuild

New three-tab UI focused on what AI agent developers actually need: Memories, API Keys, Quickstart. Audit trail modal on every memory.

Apr 29, 2026

Benchmark launch.

LoCoMo benchmark, open-sourced

We ran Aurra against Mem0 on the standard memory benchmark. Mem0 stamped 23% of stored memories with the wrong date — even for source conversations from years prior. Open-source benchmark code at github.com/aurra-memory/benchmarks.

Roadmap

Coming next.

  • Bi-temporal Level 2 + 3 LLM-detected auto-supersession + transaction time. Both ship next week.
  • docs.aurra.us Full API reference, both SDK references, working examples. This week.
  • Self-hosted Docker Full Aurra stack on your VPC. Enterprise tier.
  • Mistral + Cohere providers Expand BYO-LLM beyond Anthropic and OpenAI.
  • Gmail + Notion + Linear connectors Pre-built memory ingestion adapters.
  • Webhook delivery Push memory events to your stack as they're extracted.
  • Memory expiry policies TTL on memories, auto-archival of stale facts.