---
title: "Changelog"
description: "What shipped in each Basic Memory release."
canonical_url: "https://docs.basicmemory.com/whats-new/changelog"
---
# Changelog

> What shipped in each Basic Memory release.

Notable changes in each Basic Memory release, most recent first. For complete patch-by-patch notes, see [All releases](#all-releases) below.

---

## 1.0 — A workspace your team can read

In Basic Memory Cloud, every project opens as a [Wiki](https://docs.basicmemory.com/cloud/wiki), with an overview, folder pages, and a change log kept current as `index.md` and `log.md` files in the Open Knowledge Format. Notes can hold [live notes](https://docs.basicmemory.com/cloud/live-notes) components (KPIs, Gantt charts, comparisons, task boards) written in Comark, including live views that query the project each time you open them. Uploaded PDF, Word, PowerPoint, and CSV files become searchable notes. [Basic Memory agents](https://docs.basicmemory.com/agents/about) (beta) look after notes on their own, with every change in a shared review queue you can keep or undo. In browsers that support WebMCP, the web app gives browser agents tools that act as you. Plans move to Cloud ($19), Pro ($99), and Business ($249), with usage credits, member limits, and a spending limit you set; see [Plans and Billing](https://docs.basicmemory.com/teams/seats-and-billing) and [Usage and Credits](https://docs.basicmemory.com/cloud/usage-and-credits).

In the core package, the MCP server moves to the 1.0 `bm_*` tools: twelve tools such as `bm_read`, `bm_write`, `bm_edit`, `bm_search`, and `bm_context`, plus an opt-in `bm_project_delete`, with typed refusals and a manual page for each. `bm doctor` becomes a read-only report on your real projects, with the command that fixes each problem, and a `memory-doctor` skill walks an agent through it. Fixes cover watching newly created projects, large vector deletions and interrupted migrations on SQLite, and a stale storage read that could roll a note back to an older version. FastAPI is upgraded past the v0.24.1 pin.

Breaking changes: the MCP tools are renamed and their arguments change, and with several projects, note and search tools need an explicit project. Read [Basic Memory 1.0](https://docs.basicmemory.com/whats-new/basic-memory-1-0) for the highlights and [Migrating to 1.0](https://docs.basicmemory.com/reference/migrating-to-1-0) before switching clients.

---

## v0.24 — An agent-grade knowledge base

*October 2026 · v0.24.0 · v0.24.1*

v0.24 lets agents read a knowledge base the way they read a codebase. Six POSIX-style read tools ship on by default: **cat**, **grep**, **ls**, **find**, **tail**, and **man**. Projects act as mount points, and `cat` can read one section, a line range, or a token budget. Matching CLI verbs (`bm cat`, `bm grep`, `bm ls`, `bm find`, `bm tail`, `bm tree`) sit beside them. `search_notes` and `build_context` gain compact modes, and `read_note` gains line ranges and metadata-only reads. Basic Memory also ships its own manual over MCP (`memory://man`, `bm man`), with tool pages generated from the live schemas.

Writes are now safe for many agents. `write_note` and `edit_note` accept `expected_checksum` and apply only to the revision the caller read. Every refused write, edit, delete, or move is an MCP tool error. `locked: true` makes a note read-only to the API, and accepted writes stamp `created_by`/`updated_by` when the runtime knows the author. When a new note looks like existing ones, `write_note` asks whether you meant to update one of them.

The graph gets richer: **PDF, Word, PowerPoint, and CSV import** (`bm import document`) writes extracted-text sidecar notes that link back to their source file, plus a provenance note for each import run. Observations accept **valid-time qualifiers** (`@effective:2026-06-10`) with matching `valid_at`/`valid_overlaps` search filters. Ordinary Markdown links become `links_to` relations, and deleting a note leaves inbound links unresolved instead of erasing them.

Search runs **one scoped query across projects** (`search_all_projects`, or a `projects=[...]` subset). Vector search is partitioned by project. Semantic search is always on, full-text covers CJK and other unsegmented scripts, metadata filters gain `$contains` and `$exists`, and the `openai` provider works with any OpenAI-compatible endpoint. New operator commands include `bm wiki`, `bm okf export`/`check`, `bm prune`, `bm project index`, `bm status --wait`, and `bm install claude-code|codex|tau|pi`. Tau and Pi integrations are new.

Breaking changes: refused writes are tool errors, the POSIX tools are on by default, `semantic_search_enabled` and `disable_permalinks` are retired, the HTTP transport binds to `127.0.0.1`, `bm project remove` always deletes cloud files for cloud projects, and `bm cloud sync`/`bisync` are deprecated in favor of push/pull. Read [What's New in v0.24](https://docs.basicmemory.com/whats-new/v0-24) for the highlights and [Upgrade to v0.24](https://docs.basicmemory.com/whats-new/v0-24-upgrade) before upgrading.

**Security fixes in v0.24.0.** Every earlier release is affected:

- [GHSA-4gfv-c2mm-mvj2](https://github.com/basicmachines-co/basic-memory/security/advisories/GHSA-4gfv-c2mm-mvj2) (high): a web page could reach a `--transport sse` or `streamable-http` server on `127.0.0.1` through DNS rebinding and call any MCP tool. Both HTTP transports now check `Host` and `Origin`. Stdio, the default transport, was never affected
- [GHSA-pqm2-2wxw-p5hx](https://github.com/basicmachines-co/basic-memory/security/advisories/GHSA-pqm2-2wxw-p5hx) (low): in hosted deployments, project path validation could reveal which host paths are symlinks. No file contents were exposed
- `build_context` and `recent_activity` cap `depth` at 5, and `/memory/recent` caps `page_size` and `max_related` at 100, so one deep call can't run until the client times out
- Dependency floors for pyjwt and litellm. `read_content` now decodes only PNG, JPEG, and WebP images and refuses other formats, GIF included

**The v0.24.1 patch** fixed fresh installs. Commands that load the API, such as `bm status`, failed with `cannot import name 'get_flat_dependant' from 'fastapi.dependencies.utils'` because new installs picked up a FastAPI release that removed that helper. FastAPI is now pinned to 0.139.0. Upgrade to v0.24.1, or see [Troubleshooting](https://docs.basicmemory.com/reference/troubleshooting#fastapi-import-error-after-installing-v0240) for a workaround.

---

## v0.23 — Search that ranks and scales

*August 2026 · v0.23.0 · v0.23.1 · v0.23.2*

Semantic search takes a major step forward in v0.23. Opt-in cross-encoder reranking can rescore vector and hybrid candidates locally with FastEmbed or through LiteLLM, while Postgres deployments can move vector storage from pgvector to Milvus, Milvus Lite, or Zilliz Cloud. File-watcher writes now receive embeddings, non-BGE FastEmbed models are normalized correctly, SQLite full-text search covers complete long notes and relaxes non-Latin queries (CJK, Cyrillic, and other scripts), and reindex failures are reported honestly.

The operator surface expands with **bm inspect** — a [retrieval inspector](https://docs.basicmemory.com/reference/cli-reference#retrieval-inspection-commands) that shows how the index sees a note (`bm inspect chunks`) and traces a query's retrieval stages (`bm inspect query`) — plus **bm config** for validated settings, **bm hook** for harness lifecycle capture, Rich interactive output for **bm tool**, a diagnostics MCP tool, a usable local Postgres path, Cloud share management, and targeted **bm cloud prune** cleanup.

Team workspaces gain working **bm cloud push**/**pull**: transfers now run over the cloud's permissioned WebDAV API with per-project access checks, so every member can sync — previously these commands required owner-only storage credentials on Team workspaces. `list_directory` learns title and updated-time sorting for one-read folder navigation.

The reliability tail is substantial too: incremental full-text reindexing clears stale rows, glob-filtered directory listings still traverse subfolders, root-level wikilinks resolve by filename with collision-safe case and separator aliases, transcript time ranges no longer become observation categories, and repeatedly selecting the current default project remains safe.

Underneath those features, the indexing and persistence core moves to generation-versioned relations and observations, compare-and-swap materialization, consistent lock ordering, and batched resolution. Observations and relations now land with accepted writes, eliminating the deadlock and stale-projection failures that appeared under concurrent agent workloads.

This release also removes MCP tools and legacy API routes and changes several CLI, config, sync, edit, and pagination contracts. See the [v0.23.0 release notes](https://github.com/basicmachines-co/basic-memory/releases/tag/v0.23.0) before upgrading an integration or automation.

**The v0.23.1 patch** brought Postgres search to parity with SQLite and fixed a destructive reindex:

- PostgreSQL full-text search covers complete note bodies, indexed as bounded overlapping chunks
- The per-project search reindex no longer wipes every other project's search rows in the same database
- New `#bm:links_to` directive forces a prose list item's wikilink to the implicit `links_to` relation
- `bm update` and `bm doctor` hardening

**The v0.23.2 patch** stopped `write_note` and `move_note` from creating case-duplicate folders (`schemas/` beside an existing `Schemas/`).

---

## August 2026 — Cloud review and Pocketbook

*August 2026 · Basic Memory Cloud*

Two new Cloud collaboration surfaces make it easier to work with people and AI assistants without leaving your notes or conversation:

- **Comments and Suggestions** — add attributed comments or propose insertions, deletions, and replacements. The Cloud `review_note` MCP tool gives connected assistants the same reply, resolve, accept, and reject workflow with checksum conflict protection.
- **Pocketbook (Interactive MCP App)** — browse, search, graph, read, edit, and review Basic Memory inside ChatGPT and Claude on web or desktop. Set an active writing folder or add a specific note to the conversation as context.

AI-assisted review is integrated across the Cloud note tools. `read_note` returns clean prose, typed review threads, and a revision checksum; `edit_note` preserves open review work and blocks changes that overlap reviewed text; and `search_notes` keeps review markup out of results while reporting items that still need attention. See [Review with an AI assistant](https://docs.basicmemory.com/cloud/comments-and-suggestions#review-with-an-ai-assistant) for the complete workflow.

These are Basic Memory Cloud product updates. The versioned Core release notes continue under [All releases](#all-releases).

---

## v0.22 — Team-safe cloud push and pull

*June 2026 · v0.22.0 · v0.22.1*

v0.22.0 makes cloud sync safe for teams. New **bm cloud push** and **bm cloud pull** commands transfer changes additively — they never delete files on the destination — so you can collaborate on a shared team workspace without risking a teammate's work. They model `git push` / `git pull`: conflict-aware, with `--on-conflict` options (`fail`, `keep-cloud`, `keep-local`, `keep-both`) when a file differs on both sides. The mirror-style `bm cloud sync` command remains personal-only and exits with an error on team workspaces.

Also in v0.22.0: search improvements, more capable `bm tool` and `bm status` commands, and a long list of MCP tool and embedding reliability fixes. See [Cloud Sync](https://docs.basicmemory.com/cloud/cloud-sync) for the full push/pull workflow.

**The v0.22.1 patch** fixed first-run reliability and shipped a few MCP fixes and parity additions:

- Fresh installs no longer get stuck when the projects table is empty — Basic Memory routes you to project setup and promotes your first project to the default automatically
- Sync skips projects without a valid local path and ignores stale projects left in the database but missing from your config
- MCP qualified project routes resolve workspace display names and tenant ids correctly
- `search_notes` comma-splits `note_types`, `entity_types`, and `categories`, matching how tags already behave
- `write_note` gains a `workspace` parameter for parity with `edit_note`
- Faster CLI startup — heavy imports are deferred out of the command path

---

## v0.21 — Workspace-aware everywhere

*May–June 2026 · v0.21.0*

Every MCP tool and CLI command now routes through the same workspace/project model, and search and sync are noticeably faster.

- **Cross-workspace discovery** — MCP project listing spans every accessible cloud workspace, so team projects show up without switching workspaces first, and `bm project list` includes projects from every workspace
- **Create projects by workspace** — `create_memory_project(workspace=...)` from MCP, and `bm project add --visibility` for cloud projects
- **Parameter aliases** — MCP tools accept training-data-friendly aliases (`q` / `search` / `text` for `query`, etc.) so assistants reach for them naturally
- **bm orphans** — lists entities with no incoming or outgoing relations in the knowledge graph — notes not yet linked to anything
- **Breaking change** — unquoted multi-word text before a wikilink no longer parses as a custom relation type. Use single-token types like `relates_to [[Target]]`, or quote multi-word types: `"relates to" [[Target]]`

Notable patches: v0.21.5 fixed workspace/project routing for MCP, and v0.21.6 consolidated the satellite repositories into the main `basic-memory` tree and shipped a redesigned Claude Code plugin — a memory bridge with a guided setup interview, capture skills, and team workspace support — alongside Codex, Hermes, and OpenClaw integration packages.

---

## v0.20 — Auto-update

*March 2026 · v0.20.0*

A default-on auto-update system keeps CLI installs current, with a new **bm update** command (`--check` to check only). Install-source detection handles Homebrew and uv tool installs with the right upgrade flow for each, and MCP servers check silently in the background. Patches fixed API-key authentication for CLI cloud commands (previously only OAuth worked) and Homebrew update detection.

---

## v0.19 — Semantic search and schemas

*March 2026 · v0.19.0*

The biggest release of the docs era:

- **Semantic vector search** for SQLite and Postgres with FastEmbed embeddings and hybrid keyword + vector fusion
- **Schema system** — `schema_infer`, `schema_validate`, and `schema_diff` for validating and evolving note structure
- **Per-project cloud routing** with API key authentication — route individual projects through cloud while others stay local
- **JSON output mode** for MCP tools and CLI commands
- **Project-prefixed permalinks** for unambiguous cross-project references
- **write_note overwrite guard** — writing to an existing path returns an error unless `overwrite=true`
- Upgraded to FastMCP 3.0 with tool annotations

Upgrading from v0.18? The [v0.19.0 release notes](https://github.com/basicmachines-co/basic-memory/releases/tag/v0.19.0) cover the configuration and behavior changes.

---

## All releases

Full release notes for every version, from [GitHub](https://github.com/basicmachines-co/basic-memory/releases):

<github-releases :limit="30" repo="basicmachines-co/basic-memory">



</github-releases>


## Sitemap

See the full [sitemap](https://docs.basicmemory.com/sitemap.md) for all pages.
