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