> ## Documentation Index
> Fetch the complete documentation index at: https://docs.anonalabs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> What shipped in Anona Memory, newest first.

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](https://docs.anonalabs.com/changelog/rss.xml).

<Update label="September 2026">
  ### 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](/api-reference/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](/slack)

  ### 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](/api-reference/documents)

  ### SDKs

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

  [Temporal search](/guides/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](/api-reference/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.
</Update>

<Update label="August 2026">
  ### 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](/guides/scoping-multi-tenant)
  * 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](/guides/temporal-search)
  * Edit or invalidate a single memory with `PATCH`.
    [Memories](/api-reference/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](/api-reference/user-profiles)
  * Per-space extraction settings, so a space can be told what is worth
    remembering. [Extraction settings](/api-reference/extraction-settings)
  * Export a space and download everything in it. [Export](/guides/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](/api-reference/documents)

  ### Retrieve and the drop-in proxy

  * `format="block"` returns the assembled context as a string, ready to paste into
    a prompt. [Retrieve](/api-reference/retrieve)
  * A context receipt says what entered the prompt, what was cut and why.
    [Context receipts](/api-reference/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](/guides/migrating-to-proxy)
  * Choose the model that answers `reason` and chat, from a published catalog.
    Every model is available on every plan.
    [Model selection](/api-reference/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](/api-reference/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](/sdk/javascript)
  * Memory adapters for six Python agent frameworks: LangChain, CrewAI,
    LlamaIndex, Google ADK, Microsoft Agent Framework and Strands.
    [Integrations](/integrations/langchain)
  * 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](/guides/plans-and-billing)
  * Starter and Scale are no longer sold. Existing subscriptions keep their
    allowance and their price.
</Update>
