---
title: Changelog
description: What changed in the openmemory API and MCP server, and what you may need to do about it.
---

## 0.2.0: 3 November 2026

**Forget everywhere, safer updates.** `forget` can now reach every kind of data, updating a record keeps what you leave out, and the OpenAPI document works with client generators.

### Check your code

Two changes affect existing callers:

- **Updating a record by key keeps what you leave out.** `POST /v1/collections/{c}/records` with an existing `key` used to reset every field you didn't send, so sending only `status` wiped `data`, cleared `due_at`, and set `origin` to `agent`. If you relied on that, send the field explicitly: `"due_at": null`, `"data": {}`, or `"status": ""`.
- **`forget` with a `query` matches whole words in facts.** Forgetting "Sam" used to delete facts containing "same" too. If you relied on prefixes, name the whole word.

`GET /v1/context` also returns more than it did: `open_records` now covers every collection without being asked, up to 20. Use `open_limit=0` to go back to leaving them out.

### Forget

- New scopes: `actions`, `kv`, and `events`. The default is still `["memories"]`, so to forget something everywhere, list all six.
- The result now has `not_searched`, the scopes it didn't look in, and `truncated`, which is `true` when there's more to do. Check both before saying something is gone.
- Actions are redacted, not deleted, so a denied action can't be proposed and run again. Any that could still run become `superseded`. `executing_actions` lists those already running.
- Phrase matching now ignores case and accents in any script, and it covers journal `source_refs` and fact `tags` and `source_ref`.

See [Forget and privacy](/docs/forget-and-privacy).

### New

- `POST /v1/space/key` replaces a space's key. The old key stops working at once, and everything in the space stays, including a stored OpenAI key. REST only.
- `PATCH /v1/actions/{id}` merges into an action's `meta`, in any status. Also the `action_update` MCP tool and the `action.update` batch op. The MCP server now has 34 tools.
- `search.indexing` on recall counts the matching facts that may not be findable by meaning yet.
- `open_records_total` and `open_limit` on `GET /v1/context`.
- `error.details.op_index` and `op` on a failed batch, including failed preconditions.

### Fixed

- A `q` with no letters or digits, such as `?!`, now finds nothing. It used to list every fact.
- OpenAPI: `created` is a plain boolean on both responses, `weekly` is nullable in a form client generators keep, the name pattern no longer has a stray `/i`, and the batch limit says 50, the real limit. If you generate a client from the document, regenerate it.

### Unchanged on purpose

Proposing an action with a used `idempotency_key` and the same payload returns the existing action, even if it was denied. A retry mustn't be able to reopen something the owner refused, so use a new key to ask again.

## 0.1.0: 1 November 2026

**First release.** A memory API and MCP server for agents. One request creates a space, with no signup.

### At launch

- Spaces with anonymous keys: `POST /v1/spaces` returns a key with no signup.
- Facts with full-text recall.
- A journal, records with compare-and-set, an approval ledger with idempotent proposals, KV, and capped events.
- `GET /v1/context` loads what matters at the start of a task, and `POST /v1/batch` applies writes atomically.
- `forget` with content-free tombstones and journal redaction.
- Dreaming: nightly housekeeping, a model stage on your agent's own model or on Workers AI, safety rules for what you stated, and a 7-day undo.
- A REST API with an OpenAPI 3.0 document, and a stateless MCP server.
- Docs and agent guides, with every page also served as Markdown, plus `llms.txt`, `llms-full.txt`, and an agent skill.

### Added before 0.2.0

- Meaning search: recall matches by meaning as well as by words, within a daily budget.
- [Your own OpenAI key](/docs/own-openai-key) for embeddings, with `PUT /v1/space/embeddings`. It's stored encrypted and is write-only and REST-only.
- Recall lifts facts about the person a question names, and matches other word forms.
- `extract_job` and `extract_submit` let an agent go through a conversation with its own model. The server runs no model and keeps no copy of the conversation.
- A [retrieval benchmark](/docs/benchmarks) on LongMemEval.
- MCP lists four tools by default: `get_context`, `remember`, `recall`, and `forget`. Add `?tools=all` to list the rest. Every tool can still be called by name.
- `recall` with no question, or `GET /v1/memories`, reaches every fact. It returns `total` and `next_cursor`, and doesn't count as a recall.
- MCP gained 16 tools, for 33 in all. Creating or deleting a space and managing an OpenAI key stay REST-only.
- The API reference lets you try calls from the browser. CORS allows only openmemory.sh and localhost, and your key goes only to the API. `api.openmemory.sh/docs` now redirects to the reference.

[Learn more](/docs/quickstart)
