Drew Cain
4d0566c983
fix(mcp): drop stale API version from diagnostics, suppress duplicated structured output
...
- Remove orphaned __api_version__ ('v0' since 2025; real API routes are /v2,
and nothing else reads the constant)
- output_schema=None so FastMCP doesn't duplicate the markdown report into
structuredContent (halves the payload)
- Add title/tags annotations so #963 and #968 are merge-order independent
Co-Authored-By: Claude <noreply@anthropic.com >
Signed-off-by: Drew Cain <groksrc@gmail.com >
2026-06-11 14:56:35 -05:00
Drew Cain
8f444f9fe9
test(mcp): use exact-equality assertions for redacted URLs
...
CodeQL flags dotted-host substring checks against URLs
(py/incomplete-url-substring-sanitization); exact matches are also
stronger assertions.
Co-Authored-By: Claude <noreply@anthropic.com >
Signed-off-by: Drew Cain <groksrc@gmail.com >
2026-06-11 09:42:22 -05:00
Drew Cain
cbc2d5feb1
fix(mcp): redact database_url credentials in diagnostics output
...
Extends the existing _SECRET_FIELDS redaction to also strip the
user:password userinfo component from any URL-bearing config fields
(database_url) before surfacing them in diagnostics output. Adds
_redact_url() helper and a _URL_FIELDS set so future credential-bearing
URL fields are easy to add. Postgres passwords no longer leak to MCP
clients or support transcripts; host/port/db-name remain visible.
Fixes the P1 security finding raised in review of PR #963 .
Co-Authored-By: Claude <noreply@anthropic.com >
Signed-off-by: Drew Cain <groksrc@gmail.com >
2026-06-11 09:37:00 -05:00
Drew Cain
29be0299f0
feat(mcp): add basic_memory_diagnostics tool for version and system info
...
Adds a new read-only MCP tool `basic_memory_diagnostics` that surfaces:
- Basic Memory package version and API version (from __init__.py)
- Python version and platform/architecture details
- Config file path and full config.json contents (cloud_api_key redacted)
Resolves #187 .
Co-Authored-By: Claude <noreply@anthropic.com >
Signed-off-by: Drew Cain <groksrc@gmail.com >
2026-06-11 01:10:21 -05:00
Drew Cain
8e7825ba01
chore: update version to 0.22.0 for v0.22.0 release
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
v0.22.0
2026-06-11 00:53:13 -05:00
Drew Cain
dc29ba2a00
docs(core): add v0.22.0 changelog entry
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
2026-06-11 00:53:13 -05:00
Drew Cain
fe9b2e9c95
Add glama.json to claim the Glama MCP directory listing ( #953 )
2026-06-11 00:02:21 -05:00
Paul Hernandez
650f88a2c5
docs(cli): document personal-vs-team cloud sync semantics ( #947 )
...
Folds in the intent of #857 reconciled with the post-#920 push/pull reality. Closes #851 .
Co-authored-by: Drew Cain <groksrc@users.noreply.github.com >
Signed-off-by: phernandez <paul@basicmemory.com >
2026-06-10 14:50:28 -05:00
Paul Hernandez
2f7ef136de
perf(ci): lean CI — testmon-select branches, shard postgres, drop depot, remove bossbot ( #945 )
...
Branch builds testmon-select against cached baselines; 3-shard Postgres on 3.14 only; free runners; 120s hang ceiling; non-code changes skip the matrix; BM Bossbot and infographic machinery removed.
Signed-off-by: phernandez <paul@basicmemory.com >
2026-06-10 14:21:57 -05:00
Drew Cain
0a3a6bbd96
test(mcp): integration coverage for colliding observation permalinks ( #926 )
...
Refs #909 . Integration coverage over the #931 fix.
Signed-off-by: phernandez <paul@basicmemory.com >
2026-06-10 14:05:05 -05:00
Drew Cain
7bb7664fae
fix(core): use Observation.permalink in build_context to match the search index ( #946 )
...
Closes #929
Signed-off-by: phernandez <paul@basicmemory.com >
2026-06-10 14:05:02 -05:00
Paul Hernandez
db578ccfdb
fix(mcp): recover edit_note when file exists on disk but is not indexed ( #934 )
...
Closes #581
Signed-off-by: phernandez <paul@basicmemory.com >
2026-06-10 14:04:59 -05:00
Paul Hernandez
df485aa5a4
fix(mcp): tighten search_notes tags input and normalize for direct callers ( #941 )
...
Refs #910 . Follow-up to #932 .
Signed-off-by: phernandez <paul@basicmemory.com >
2026-06-10 14:04:56 -05:00
K Jagadeeswara Reddy
44ecec2917
test(mcp): assert tags param and tag: shorthand comma equivalence
...
Integration regression test for #910 : the tags= parameter and the
tag:alpha,beta query shorthand must return the same results for the
same comma string.
Cherry-picked from #918 . The validator swap itself (coerce_list ->
parse_tags) landed separately via #932 ; this carries the remaining
test-only piece with original authorship.
Signed-off-by: K Jagadeeswara Reddy <social@jagadeeswar.com >
2026-06-10 12:04:07 -05:00
Paul Hernandez
49041a5168
docs(skills): fix npx skill install docs and ignore docs assets ( #927 )
...
Refs #930 docs cleanup; adds docs/assets to gitignore.
Signed-off-by: phernandez <paul@basicmemory.com >
2026-06-10 01:30:50 -05:00
Paul Hernandez
8cbe1634b6
fix(cli): don't let bm cloud setup overwrite an existing rclone remote ( #923 )
...
Closes #922
Signed-off-by: phernandez <paul@basicmemory.com >
2026-06-10 01:02:43 -05:00
Paul Hernandez
c4b651f5b0
fix(mcp): accept page/page_size in read_note for parity with sibling tools ( #933 )
...
Closes #883
Refs #882
Signed-off-by: phernandez <paul@basicmemory.com >
2026-06-10 00:03:22 -05:00
Paul Hernandez
ca9a4d9c12
fix(mcp): split comma-separated tags in search_notes tags param ( #932 )
...
Closes #910
Signed-off-by: phernandez <paul@basicmemory.com >
2026-06-09 22:23:26 -05:00
Paul Hernandez
aa9594d82a
perf(ci): disable semantic search in default test fixtures ( #938 )
...
Disable the silently-on semantic embedding stack in default test fixtures and deselect on-demand benchmarks from CI int jobs. int SQLite 337s -> 110s, Postgres unit ~25min -> ~13min.
Signed-off-by: phernandez <paul@basicmemory.com >
2026-06-09 21:55:21 -05:00
Paul Hernandez
93494b8c13
ci(ci): gate bossbot on passing tests ( #937 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-06-09 20:47:34 -05:00
Paul Hernandez
93ed34001b
fix(core): disambiguate truncated observation permalinks to prevent index collisions ( #931 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-09 20:20:46 -05:00
Paul Hernandez
ec94feb6a4
Merge branch 'main' into codex/fix-bossbot-assets-publish
2026-06-09 19:23:27 -05:00
Paul Hernandez
831b9141a5
ci(ci): use pytestmon and Depot runners ( #928 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-06-09 19:20:08 -05:00
phernandez
2de19713f6
fix(ci): make BM Bossbot asset cleanup idempotent
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-06-09 19:14:13 -05:00
phernandez
79fcfbce6a
fix(ci): restrict BM Bossbot to trusted PR authors
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-06-09 17:16:49 -05:00
phernandez
3d22ba3004
fix(ci): harden BM Bossbot finalization
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-06-09 16:32:06 -05:00
phernandez
62229d9d0a
fix(ci): address BM Bossbot PR feedback
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-06-09 15:55:36 -05:00
phernandez
03ba268cb1
feat(ci): add BM Bossbot PR gate
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-06-09 15:18:40 -05:00
Paul Hernandez
de53e0ecc5
feat(cli): per-workspace rclone remotes for Team push/pull ( #920 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-06-08 17:39:37 -05:00
Paul Hernandez
4128cac9ab
docs(core): add Basic Machines agent style guidance ( #921 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-06-08 17:09:50 -05:00
Paul Hernandez
9b53d7863f
feat(cli): add Team-safe cloud push/pull and gate sync to Personal workspaces ( #917 )
...
Adds additive, git-style `bm cloud push`/`pull` that are safe on shared Team workspaces (never delete on the destination; conflicts abort by default with `--on-conflict {fail|keep-local|keep-cloud|keep-both}`), and gates the destructive `bm cloud sync`/`bisync` mirrors to Personal workspaces. Closes #858 . Longer-term Team-safe reconciler tracked in #862 ; workspace-scoped mount info (Codex P1) tracked as a follow-up.
2026-06-08 14:08:49 -05:00
Paul Hernandez
a8d034b940
fix(mcp): point move mismatch guidance at landing path ( #916 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-06-08 10:42:38 -05:00
Paul Hernandez
7c0937f658
fix(mcp): validate navigation pagination and fix recent_activity project display ( #915 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 23:03:00 -05:00
Paul Hernandez
8570d96bad
fix(cli): align bm tool commands with MCP (error exits, overwrite, category, default) ( #913 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 22:56:43 -05:00
Paul Hernandez
480a2d9468
fix(mcp): resolve memory:// in move_note and stop false cross-project rejections ( #914 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 22:44:08 -05:00
Paul Hernandez
df7452e3ba
fix(core): make note_types search filter case-insensitive ( #912 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 22:44:04 -05:00
Paul Hernandez
85a8e59d0f
fix(core): split comma-separated tags in parse_tags ( #911 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 22:44:01 -05:00
Paul Hernandez
07cb7a606b
docs(core): mark LiteLLM provider experimental ( #899 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 20:13:54 -05:00
Paul Hernandez
0ef03edde6
feat(cli): add --type to the write-note tool command ( #907 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 20:06:44 -05:00
Paul Hernandez
efe43a10ea
feat(cli): add --wait and --timeout to bm status ( #906 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 19:58:02 -05:00
Paul Hernandez
4fe6fe09c8
feat(core): add observation category filter to search ( #908 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 19:57:19 -05:00
Paul Hernandez
8acdb49a41
fix(core): reuse a single embedding provider per process ( #903 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 19:14:07 -05:00
Paul Hernandez
f7304bf553
feat(cli): improve workspace and cloud bisync command discoverability ( #905 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 18:18:17 -05:00
Paul Hernandez
5b034f081d
fix(core): self-heal corrupt FastEmbed model cache ( #900 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 17:37:30 -05:00
Paul Hernandez
271c883ea8
fix(core): load sqlite-vec for embedding-status query ( #901 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 17:37:27 -05:00
Paul Hernandez
816ee85fb9
fix(core): prevent asyncpg engine-dispose crash on Postgres backend ( #902 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 17:37:23 -05:00
Paul Hernandez
3ba3a9504d
fix(mcp): stop move_note reporting false success across boundaries ( #904 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 17:37:20 -05:00
Paul Hernandez
1667cdc000
test(ci): normalize setup overwrite assertion ( #898 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-06-06 23:20:06 -05:00
Sourish Chakraborty
f916662ff3
fix(core): allow cross-project context traversal
2026-06-06 21:43:21 -05:00
DoubleDeeRuffy
0c9800cd3b
fix(sync): use strict deferred relation resolution
2026-06-06 21:43:09 -05:00