{{ message }}
Releases: basicmachines-co/basic-memory
Releases · basicmachines-co/basic-memory
Release list
v0.23.2
What's Changed
- fix(api): resolve note directories case-insensitively by @phernandez in #1329
- docs(core): add v0.23.2 changelog entry by @phernandez in #1330
- chore(core): release v0.23.2 by @phernandez in #1331
Full Changelog: v0.23.1...v0.23.2
v0.23.1
What's Changed
- fix(plugins): ship the claude-code hook version bumps with releases by @phernandez in #1313
- ci(core): add an OIDC-authenticated MCP registry publish workflow by @phernandez in #1314
- fix(core): prepare v0.23.1 fast-follow fixes by @phernandez in #1321
- fix(core): scope search reindex to the active project by @phernandez in #1325
- fix(cli): allow disposable doctor project under configured root by @phernandez in #1327
- chore(core): release v0.23.1 by @phernandez in #1328
Full Changelog: v0.23.0...v0.23.1
v0.23.0
What's Changed
- fix(core): repair FTS half of hybrid search for natural-language queries by @groksrc in #994
- docs(ci): fix stale basicmachines.co post-release step by @groksrc in #999
- docs: Update README.md by @phernandez in #1000
- ci(ci): validate Auto BM webhook by @phernandez in #1019
- ci(ci): remove legacy Basic Memory workflow by @phernandez in #1020
- fix(core): make local Postgres backend usable (migrations, pooling, default project) by @phernandez in #1018
- test(benchmarks): vendor benchmark suite and add write-load harness by @phernandez in #1021
- docs(core): clarify DCO and CLA requirements by @phernandez in #1025
- fix(mcp): add directory-compliant tool annotations by @phernandez in #1031
- fix(mcp): gate ChatGPT compatibility tools by clientInfo by @phernandez in #1035
- fix(mcp): set explicit destructive hints by @phernandez in #1036
- fix(mcp): expose edit_note operation enum by @phernandez in #1037
- feat(mcp): expose note external_id in list_directory and recent_activity output by @jope-bm in #1040
- chore: formatting fixes by @phernandez in #1042
- chore: add dist recipe for skills by @phernandez in #1049
- chore(deps): refresh dependencies with LiteLLM compatibility cap by @phernandez in #1051
- feat(skills): add memory-onboarding skill by @cfaust990 in #1050
- chore(deps): unpin and refresh FastMCP by @phernandez in #1052
- refactor(core): add shared runtime orchestration by @phernandez in #1002
- refactor(core): structure campaign — collapse seams, honest types, typed boundaries by @phernandez in #1054
- fix(cli): show configured project in list when uncredentialed (#1003) by @rudi193-cmd in #1010
- feat(plugins): fall back to user-level ~/.claude settings for Claude Code hook config by @samuellawerentz in #924
- fix(plugins): make Claude hook tests portable on Windows by @phernandez in #1055
- fix(integrations): stop leaking bm mcp children from the Hermes provider by @phernandez in #1059
- fix(cli): never print a blank doctor failure message by @phernandez in #1058
- fix(core): chunk select_by_ids to stay under SQLite bound-parameter limit by @phernandez in #1057
- test(api): cover single-entity delete for non-markdown file entities by @phernandez in #1056
- feat(cli): add bm cloud share command group (create/list/update/revoke) by @groksrc in #965
- fix(mcp): validate all schema-covered types when schema_validate gets no arguments by @phernandez in #1060
- feat(mcp): add basic_memory_diagnostics tool for version and system info by @groksrc in #963
- fix(core): support CJK terms in relaxed FTS fallback by @liusiyuxyfx in #1022
- feat(cli): add Rich human-readable output to bm tool commands by @groksrc in #967
- fix(core): make replace_section level-aware with replace_subsections opt-out by @phernandez in #1063
- fix(mcp): surface cloud project delete errors and support delete_notes by @phernandez in #1062
- feat(core): add LiteLLM API base and API key config by @lastguru-net in #1043
- fix(cli): remove newly-ignored files from cloud on one-way sync and add bm cloud prune by @phernandez in #1061
- feat(core): add semantic embedding text prefixes by @lastguru-net in #1044
- ci(skills): publish onboarding archive on main pushes by @phernandez in #1067
- fix(mcp): expose unknown search totals by @phernandez in #1069
- fix(core): search complete SQLite note content by @phernandez in #1071
- fix(mcp): prevent phantom memory URL edits by @phernandez in #1073
- fix(mcp): surface cloud project deletion job by @phernandez in #1074
- fix(core): expose previous accepted move path by @phernandez in #1075
- fix(core): persist observations and relations on DB-first accepted writes by @phernandez in #1079
- fix(core): avoid phantom project directory on config load by @phernandez in #1080
- fix(core): reject equivalent note filenames by @phernandez in #1081
- fix(mcp): paginate directory listings by @phernandez in #1082
- fix(cli): replace retired Basic Memory links by @phernandez in #1083
- fix(ci): keep issue triage focused on triage by @phernandez in #1086
- fix(mcp): index recreated projects by @phernandez in #1085
- fix(ci): grant Claude Code workflow write access to open PRs by @phernandez in #1087
- fix(mcp): preserve scoped memory URL paths by @phernandez in #1092
- fix(ci): drop broken pull_request_target trigger + provision toolchain for Claude workflow by @phernandez in #1091
- feat(skills): add Pythonic code guidance by @phernandez in #1095
- test(skills): add issue-derived Pythonic code evals by @phernandez in #1099
- feat(api): add owning-entity external_id to search results by @jope-bm in #1101
- feat(core): honor note timestamps from frontmatter by @phernandez in #1100
- refactor(core): unify accepted note runtime boundaries by @phernandez in #1102
- feat(skills): use Pythonic guidance in GitHub agents by @phernandez in #1104
- feat(mcp): emit external_id in search_notes markdown output by @jope-bm in #1103
- feat(skills): add pull request workflow skills by @phernandez in #1105
- refactor(mcp): remove canvas tool and resource write endpoints by @phernandez in #1111
- refactor(core): delete dead post-seam compatibility shims by @phernandez in #1112
- refactor(api): collapse dead v1/_v2 DI provider tiers by @phernandez in #1113
- refactor(api): inject config from composition roots into the DI graph by @phernandez in #1114
- docs(core): refresh ARCHITECTURE.md after the arch-review cleanup by @phernandez in #1115
- feat(core): add bm hook producer front door for harness capture by @phernandez in #1070
- feat(plugins): surface hook capture setup and health by @phernandez in #1119
- chore(plugins): rename Codex marketplace to basic-memory by @phernandez in #1120
- refactor(core): rename picoschema package and drop legacy routes by @phernandez in #1121
- refactor(core): split search query and row hydration by @phernandez in #1122
- fix(plugins): make Codex hooks and memory notes reliable by @phernandez in #1123
- feat(plugins): add bm-writing skill and coding setup to Claude Code plugin by @phernandez in #1124
- feat(plugins): add queryable coding session profiles by @phernandez in htt...
Latest Basic Memory skills
Rolling skill archives built from 2643912.
v0.22.1
What's Changed
- chore(ci): route release recipes through PRs and refresh release runbook by @groksrc in #961
- fix(cli): preload deferred rich/typer modules before in-place upgrade by @groksrc in #966
- fix(core): require line-anchored frontmatter fences in file_utils by @groksrc in #973
- fix(api): allow setting default project when none is currently set by @groksrc in #976
- feat(mcp): comma-split note_types/entity_types/categories in search_notes by @groksrc in #962
- feat(mcp): add title and tags annotations to all MCP tool decorators (phase 1, #826) by @groksrc in #968
- fix(mcp): resolve workspace display names and tenant ids in qualified project routes by @groksrc in #979
- feat(plugins): manual-pages flow — manpage seed schema, flow docs, verification fixes by @phernandez in #971
- fix(mcp): close out the #952 manual verification findings by @phernandez in #981
- fix(sync): prevent concurrent-session rollbacks from destroying writes on in-memory SQLite by @phernandez in #989
- fix(core): use (type, id) keys in vector search hydration to prevent id collisions by @phernandez in #986
- fix(cli): defer FastAPI and app imports out of CLI startup by @phernandez in #988
- fix: promote first project when config default missing from DB (#974) by @rudi193-cmd in #985
- fix(core): preserve an existing database default when repairing a missing config default by @phernandez in #987
- fix(api): point fresh installs at project setup when resolve finds an empty projects table by @phernandez in #990
- feat(mcp): add workspace parameter to write_note for parity with edit_note by @groksrc in #964
- fix(sync): skip projects without an absolute local path (#949) by @groksrc in #992
- docs(core): add v0.22.1 changelog entry by @groksrc in #995
- chore(core): release v0.22.1 by @groksrc in #996
Full Changelog: v0.22.0...v0.22.1
v0.22.0
What's Changed
- fix(skills): reject invalid frontmatter YAML by @phernandez in #896
- fix(plugins): include codex in shared version bump by @phernandez in #897
- feat(core): add LiteLLM embedding provider by @RheagalFire in #809
- fix(core): L2-normalize FastEmbed vectors to satisfy unit-vector contract by @tk-pkm111 in #843
- fix(mcp): resolve write_note overwrite conflicts by file_path strictly by @DoubleDeeRuffy in #860
- feat(cli): add delete-note tool command by @AKarode in #887
- fix(sync): use strict link resolution for deferred forward references by @DoubleDeeRuffy in #861
- fix: cross-project context traversal by @sourrris in #874
- test(ci): normalize setup overwrite assertion by @phernandez in #898
- fix(mcp): stop move_note reporting false success across boundaries by @phernandez in #904
- fix(core): prevent asyncpg engine-dispose crash on Postgres backend by @phernandez in #902
- fix(core): load sqlite-vec for embedding-status query by @phernandez in #901
- fix(core): self-heal corrupt FastEmbed model cache by @phernandez in #900
- feat(cli): improve workspace and cloud bisync command discoverability by @phernandez in #905
- fix(core): reuse a single embedding provider per process by @phernandez in #903
- feat(core): add observation category filter to search by @phernandez in #908
- feat(cli): add --wait and --timeout to bm status by @phernandez in #906
- feat(cli): add --type to the write-note tool command by @phernandez in #907
- docs(core): mark LiteLLM provider experimental by @phernandez in #899
- fix(core): split comma-separated tags in parse_tags by @phernandez in #911
- fix(core): make note_types search filter case-insensitive by @phernandez in #912
- fix(mcp): resolve memory:// in move_note and stop false cross-project rejections by @phernandez in #914
- fix(cli): align bm tool commands with MCP (error exits, overwrite, category, default) by @phernandez in #913
- fix(mcp): validate navigation pagination and fix recent_activity project display by @phernandez in #915
- fix(mcp): point move mismatch guidance at landing path by @phernandez in #916
- feat(cli): add Team-safe cloud push/pull and gate sync to Personal workspaces by @phernandez in #917
- docs(core): add Basic Machines agent style guidance by @phernandez in #921
- feat(cli): per-workspace rclone remotes for Team push/pull by @phernandez in #920
- feat(ci): add BM Bossbot PR gate by @phernandez in #925
- ci(ci): use pytestmon and Depot runners by @phernandez in #928
- fix(ci): make BM Bossbot asset cleanup idempotent by @phernandez in #935
- fix(core): disambiguate truncated observation permalinks to prevent index collisions by @phernandez in #931
- ci(ci): gate bossbot on passing tests by @phernandez in #937
- perf(ci): disable semantic search in default test fixtures by @phernandez in #938
- fix(mcp): split comma-separated tags in search_notes tags param by @phernandez in #932
- fix(mcp): accept page/page_size in read_note for parity with sibling tools by @phernandez in #933
- fix(cli): don't let bm cloud setup overwrite an existing rclone remote by @phernandez in #923
- docs(skills): fix npx skill install docs and ignore docs assets by @phernandez in #927
- test(mcp): assert tags param and tag: shorthand comma equivalence by @phernandez in #943
- fix(mcp): tighten search_notes tags input and normalize for direct callers by @phernandez in #941
- fix(mcp): recover edit_note when file exists on disk but is not indexed by @phernandez in #934
- fix(core): use Observation.permalink in build_context to match the search index by @groksrc in #946
- test(mcp): integration coverage for colliding observation permalinks (index + delete) by @groksrc in #926
- perf(ci): select impacted tests via testmon on PR builds by @phernandez in #945
- docs(cli): document personal-vs-team cloud sync semantics by @phernandez in #947
- Add glama.json to claim the Glama MCP directory listing by @groksrc in #953
- chore(core): release v0.22.0 by @groksrc in #960
New Contributors
- @RheagalFire made their first contribution in #809
- @tk-pkm111 made their first contribution in #843
- @DoubleDeeRuffy made their first contribution in #860
- @AKarode made their first contribution in #887
- @sourrris made their first contribution in #874
Full Changelog: v0.21.6...v0.22.0
v0.21.6
What's Changed
- fix(cli): block team workspace rclone sync by @groksrc in #855
- feat(cli): expose project sync support metadata by @groksrc in #856
- fix(cli): handle non-subscription errors in cloud login by @phernandez in #870
- chore: add cross-vendor adversarial-review skill by @phernandez in #868
- chore(installer): consolidate agent packages by @phernandez in #859
- fix(skills): correct invalid picoschema enum YAML in memory skills by @phernandez in #867
- feat(plugins): Claude Code plugin v0.4 — the memory bridge by @phernandez in #865
- feat(plugins): improve /basic-memory:setup — load-bearing focus, cloud-safe schema seeding, smoke test by @phernandez in #876
- feat(api): expose owning project on entity resolve by @phernandez in #885
- refactor(plugins): prefix Claude Code plugin skills with bm- by @phernandez in #878
- docs(ci): document auto bm dogfood install by @phernandez in #890
- fix(ci): require all codex synthesis schema fields by @phernandez in #891
- fix(ci): allow ci PR title scope by @phernandez in #892
- fix(ci): improve auto bm note narrative by @phernandez in #893
- feat(plugins): add codex plugin package by @phernandez in #894
Full Changelog: v0.21.5...v0.21.6
v0.21.5
What's Changed
- fix(mcp): preinitialize local ASGI database by @phernandez in #838
- fix(core): load sqlite-vec before vector table cleanup by @groksrc in #852
- fix(mcp): return workspace-qualified write permalinks by @groksrc in #853
- fix(mcp): attach local state to one workspace project row by @groksrc in #854
Full Changelog: v0.21.4...v0.21.5
v0.21.4
What's Changed
- docs(core): move release process from CONTRIBUTING.md to AGENTS.md by @groksrc in #846
- fix(mcp): restore write_note overwrite schema for external clients (#818) by @rudi193-cmd in #841
- fix(cli): ignore CancelledError in background task done callback (#839) by @rudi193-cmd in #842
Full Changelog: v0.21.3...v0.21.4
v0.21.3
What's Changed
Full Changelog: v0.21.2...v0.21.3
