Adit Karode
c6c0c011af
fix(cli): fail partial directory deletes
...
Signed-off-by: Adit Karode <adit.karode@gmail.com >
2026-06-03 11:26:33 -04:00
Adit Karode
9fa7cb9155
feat(cli): add delete-note tool command
...
Surfaces the delete-note command on the CLI tool app, delegating to the mcp_delete_note tool. Supports deleting notes and directories via --is-directory.
Signed-off-by: Adit Karode <adit.karode@gmail.com >
2026-06-03 11:15:28 -04:00
Paul Hernandez
fc2ee07076
feat(api): expose owning project on entity resolve
...
Expose project_external_id on v2 entity resolve responses so cloud callers can authorize cross-project targets without a second tenant DB lookup.
2026-06-02 18:01:17 -05:00
phernandez
f485c1ef3f
chore(plugins): add scoped version recipes for plugin/agent artifacts
...
Adds a --scope {all,core,packages} option to scripts/update_versions.py so the
version bump can target just the host-native agent artifacts (Claude Code plugin
+ root/local marketplaces, Hermes, OpenClaw) separately from the Python package
core (__init__.py, server.json). Default scope is "all" — fully backward
compatible.
New justfile recipes:
- set-version <v> [scope] — write version (all|core|packages)
- set-version-dry-run <v> [scope] — preview
- set-packages-version <v> — plugin/agent artifacts only
- set-packages-version-dry-run <v> — preview
The release / beta / release-dry-run recipes now route through set-version
instead of calling the script inline, so version-setting has one source of
truth and is reusable by the /release skill. Updated the /release command doc
to describe the consolidated version update and the new recipes.
Tests cover the new scope filtering (packages leaves core untouched and vice
versa; invalid scope errors). Existing lockstep behavior unchanged.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-31 12:31:08 -05:00
phernandez
5365f971ef
chore(integrations): consolidate agent packages
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-30 14:16:04 -05:00
phernandez
8d21a38588
fix(cli): handle non-subscription errors in cloud login
...
`bm cloud login` only caught SubscriptionRequiredError after the
post-login `/proxy/health` subscription check. OAuth succeeds and tokens
are saved, but if that check returns anything else — a 5xx while the
tenant instance is still provisioning, a 403/401 whose body doesn't match
the subscription_required shape, or a transport error — make_api_request
raises a generic CloudAPIError that escaped uncaught, dumping a raw
httpx.raise_for_status traceback. Users read this as "login failed" even
though authentication actually worked.
Add a CloudAPIError handler that prints a clean, actionable message and
exits non-zero. make_api_request wraps every httpx error (status and
transport) in CloudAPIError, so the single handler covers them all.
Fixes #863 .
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-30 14:13:32 -05:00
Drew Cain
f07643d3a8
feat(cli): expose project sync support metadata
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
2026-05-28 15:00:05 -05:00
Drew Cain
8bf7bdbc0d
fix(cli): limit team workspace guard to bisync
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
2026-05-28 14:59:48 -05:00
Drew Cain
d0ae373f45
docs(cli): clarify team mirror sync guard
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
2026-05-28 14:59:48 -05:00
Drew Cain
1acec0a69d
test(cli): cover workspace sync guard branches
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
2026-05-28 14:59:48 -05:00
Drew Cain
a2276a8a04
fix(cli): block team workspace rclone sync
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
2026-05-28 14:59:48 -05:00
Drew Cain
b109b7337f
fix(mcp): attach local state to one workspace project row ( #854 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
2026-05-26 10:54:44 -05:00
Drew Cain
9af320187c
fix(core): load sqlite-vec before vector table cleanup ( #852 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
2026-05-26 00:27:47 -05:00
Paul Hernandez
5a34a420c9
fix(mcp): preinitialize local ASGI database ( #838 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-25 15:57:00 -05:00
Sean Campbell
c755127317
fix(cli): ignore CancelledError in background task done callback ( #839 ) ( #842 )
...
Signed-off-by: rudi193-cmd <rudi193@gmail.com >
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-23 14:27:59 -05:00
Drew Cain
c4ef7abff5
test(core): isolate XDG_CONFIG_HOME so host env can't leak into tests ( #845 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-23 13:34:41 -05:00
Drew Cain
5ae8a733ea
fix(mcp): route mixed local/cloud projects correctly ( #837 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
2026-05-23 11:31:13 -05:00
Rafael Madriz
b94ef01f82
feat(core): add XDG_CONFIG_HOME support ( #844 )
...
Signed-off-by: Rafael Madriz <rafa@rafaelmadriz.com >
2026-05-22 15:18:06 -05:00
Sean Campbell
12af7930de
docs(installer): use pgvector image for Postgres compose ( #840 )
...
Signed-off-by: rudi193-cmd <rudi193@gmail.com >
Co-authored-by: Cursor <cursoragent@cursor.com >
Co-authored-by: Drew Cain <groksrc@gmail.com >
2026-05-22 08:54:18 -05:00
Paul Hernandez
9e3fe26a83
fix(core): purge SQLite search_index on project delete ( #832 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-16 16:47:24 -05:00
Paul Hernandez
47ee982041
perf(cli): defer local ASGI app import ( #828 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-15 17:59:58 -05:00
Paul Hernandez
4d22c398c6
fix(sync): preserve bmignore rclone filters ( #827 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-15 17:48:49 -05:00
Paul Hernandez
3bed6d8890
chore(deps): update deps and harden security ( #825 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-15 10:45:14 -05:00
Paul Hernandez
4cba7ba01c
fix(core): parse prose wikilinks as inline links ( #824 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-14 11:43:11 -05:00
Drew Cain
8eeec64e28
fix: basic-memory project list does not list projects from all workspaces ( #822 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
2026-05-14 09:46:02 -05:00
Paul Hernandez
c6fa185bf3
fix(mcp): route edit_note workspace-qualified permalinks ( #813 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-11 12:56:26 -05:00
Paul Hernandez
415c2b3d6e
feat(cli): add orphan entity command ( #816 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-11 12:13:14 -05:00
Paul Hernandez
4aa0cbdd62
fix(sync): ignore hidden paths relative to watched project ( #815 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-11 11:14:03 -05:00
Paul Hernandez
55f314237d
fix(sync): avoid shell for scan subprocesses ( #814 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-11 09:20:11 -05:00
Drew Cain
9862ef5411
fix(core): use updated_at for recent_activity filter and ordering ( #812 )
...
Signed-off-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Signed-off-by: Drew Cain <groksrc@gmail.com >
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
Co-authored-by: phernandez <paul@basicmachines.co >
2026-05-11 09:14:06 -05:00
Paul Hernandez
df5e8d805f
fix(mcp): centralize workspace permalink routing ( #808 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-08 16:44:57 -05:00
Paul Hernandez
831dc1ecdc
fix(mcp): make multi-project search opt-in ( #807 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-08 12:54:20 -05:00
Paul Hernandez
26381aeed1
fix(mcp): use lightweight graph hydration lookup ( #806 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-08 10:07:29 -05:00
Paul Hernandez
7918e5c6bf
fix(mcp): preserve workspace paths in build_context ( #801 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-08 09:53:54 -05:00
Paul Hernandez
f312341020
fix(mcp): add workspace routing to delete_project ( #803 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-08 09:48:51 -05:00
Drew Cain
3415fd1014
fix(core): parse picoschema modifier descriptions ( #796 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: phernandez <paul@basicmachines.co >
2026-05-06 12:21:35 -05:00
Paul Hernandez
b08659e228
fix(api): accept qualified project resolver hints ( #795 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-06 10:33:11 -05:00
Paul Hernandez
09a4b09436
feat(api): include search result totals ( #791 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-04 14:57:04 -05:00
Paul Hernandez
a661e924df
feat(mcp): create projects by workspace slug ( #789 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-03 19:31:55 -05:00
Paul Hernandez
05adda1502
fix(mcp): route workspace-qualified memory urls ( #790 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-03 18:18:10 -05:00
Drew Cain
0a72d81bb3
fix(mcp): cap recent_activity rows with explicit truncation footer ( #785 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-03 17:43:42 -05:00
Paul Hernandez
b4bf14ebf7
fix(mcp): list factory projects across workspaces ( #778 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-02 09:17:25 -05:00
Paul Hernandez
0b335476d6
fix(mcp): resolve projects by external_id, remove workspace from MCP tools ( #777 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-01 05:15:44 -05:00
Paul Hernandez
2fccc74a20
feat(cli): refuse db reset while basic-memory mcp processes run ( #776 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-04-29 15:48:19 -05:00
Paul Hernandez
c4956cac16
fix(cli): cleanup local DB state on set-cloud/set-local ( #775 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-04-29 11:50:14 -05:00
Paul Hernandez
128c2da40c
fix(cli): clear default_workspace on cloud logout ( #773 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-04-29 09:53:09 -05:00
Paul Hernandez
2bfb9c76df
fix(core): degrade gracefully when sqlite-vec cannot load on init ( #774 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-04-29 08:57:31 -05:00
Paul Hernandez
953fe20aef
test(core): regression guard for vector-row cleanup on entity delete ( #764 ) ( #771 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-04-28 23:20:15 -05:00
Paul Hernandez
a4282d9f2f
fix(core): skip Obsidian callouts in observation parser ( #769 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-04-28 23:15:13 -05:00
Paul Hernandez
799dd6c629
fix(mcp): remove no-op pagination params from read_note and view_note ( #768 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-04-28 23:05:14 -05:00