Skip to main content
Anona Memory ships continuously, so there are no version numbers to follow. This page groups each month’s customer-facing changes. Internal work, infrastructure and tests are left out. Subscribe to the feed at docs.anonalabs.com/changelog/rss.xml.

Context receipts

A receipt can now account for the cuts search makes internally, not only the ones made after it returned. Pass receipt_detail: "full" on retrieve and the manifest gains three reasons for memories that were ranked and dropped before your limit or min_score ever applied.There is also a way to ask about one specific memory: GET /v1/receipts/{request_id}/explain?memory_id=... replays that search, pinned to the moment it originally ran, and reports where the memory left the pipeline, which search methods found it, and what it scored. Its not_retrieved answer is the one that was previously impossible to get: no part of search matched the memory at all, so raising limit will not help and the scope or the wording is what to check. It works on any earlier call, not just ones that asked for a receipt in advance, and costs no credits.Context receipts

Slack

Anona answers in Slack from a bound space. It reads the thread it was mentioned in, not only the message, so a question that depends on what was said three replies ago still gets an answer.A conversation can also be saved into memory, either by asking the bot in the thread or from the message menu. The channel has to be set to Read & write first: a channel is read only by default, because saving changes what the space recalls afterwards. Saves are capped per workspace. Connecting your Slack identity to your Anona account attributes the memories you save to you.Slack integration

Uploads

Video is read into memory. MP4, MOV, WEBM and MKV, covering speech, on-screen text and a description of what is happening. Video gets a larger per-file ceiling than other uploads, since a few seconds of it outweighs a long document.Documents and uploads

SDKs

Both the Python and the TypeScript client can now filter on when something happened, not only on when it was recorded.Temporal search

API

An API key can file a feedback report. Before this it took a dashboard session, which an agent running on its own does not have.Feedback

Fixes

  • An ingestion that fails gives back the credit it charged to start.
  • A memory model keeps its answer when the model that writes it wraps that answer in an envelope of its own. The wrapper is unwrapped rather than stored.
  • amazon.nova-2-lite-v1:0 is billed at the cheap rate. It was falling through to the mid tier and collecting about 2.5 times what it was worth.
  • Creating a space that already exists answers 409 instead of failing with a server error, and uploading to a space that does not exist creates it.

Memory

  • Scope every write and read by user, agent and session, so one space can serve many end users without them seeing each other. Multi-tenant scoping
  • Ask what memory looked like at a past moment with as_of, and filter recall on when an event happened rather than when it was written. Temporal search
  • Edit or invalidate a single memory with PATCH. Memories
  • A write returns the ids of the memories it created, on both the synchronous and the asynchronous path.
  • A running ingestion job can be cancelled. Parts already in flight finish; the rest are dropped.
  • Per-user profiles, and a way to ask a question about one user. User profiles
  • Per-space extraction settings, so a space can be told what is worth remembering. Extraction settings
  • Export a space and download everything in it. Export

Uploads

Files are read into memory: documents, images (JPG, PNG) and audio (MP3, WAV). Each file is routed to a parser by its extension, per file rather than per request, so a mixed batch is handled correctly.Two limits arrived with them. A file whose bytes contradict its extension is rejected, and an archive that unpacks to far more than it weighs is refused before anything is unpacked. Documents and uploads

Retrieve and the drop-in proxy

  • format="block" returns the assembled context as a string, ready to paste into a prompt. Retrieve
  • A context receipt says what entered the prompt, what was cut and why. Context receipts
  • block_order="stable" holds the memory block in a stable order across turns so a provider’s prompt cache can hit it, with a meter reporting how much of the prefix was eligible.
  • The proxy covers three wire shapes: OpenAI Chat Completions, OpenAI Responses and Anthropic Messages. Migrating to the proxy
  • Choose the model that answers reason and chat, from a published catalog. Every model is available on every plan. Model selection

Spaces and access

  • A space can be shared, including with someone in another organization, who joins by invitation as a read only or a read and write member.
  • API keys can be created with an expiry (expires_in_days). An expired key is rejected with key_expired, which is distinct from an invalid one. API keys
  • Signup no longer mints an API key. Create one in the dashboard, or through the API, when you need it.
  • You can sign up with a social identity rather than a password.

SDKs and integrations

  • A TypeScript SDK. JavaScript and TypeScript
  • Memory adapters for six Python agent frameworks: LangChain, CrewAI, LlamaIndex, Google ADK, Microsoft Agent Framework and Strands. Integrations
  • Both SDKs reach per-space configuration and the per-user profile endpoints.

Dashboard

  • A new visual system across the whole dashboard and the transactional email.
  • The Ask tab is a multi-turn chat over a space’s memory, with a model picker.
  • A Users tab, a memory models tab, and a Profile page that owns the organization name.
  • Send us feedback without leaving the page you are on.

Billing

  • Stripe checkout, the customer portal and webhook settlement.
  • Plans repriced. Developer is the free tier at 5,000 credits a month. Plans and billing
  • Starter and Scale are no longer sold. Existing subscriptions keep their allowance and their price.