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
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
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
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
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
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
1667cdc000
test(ci): normalize setup overwrite assertion ( #898 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-06-06 23:20:06 -05:00
Adit Karode
476239d878
feat(cli): add delete-note tool command
2026-06-06 21:41:46 -05:00
Paul Hernandez
8887267256
fix(ci): improve auto bm note narrative ( #893 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-06-04 22:34:57 -05:00
phernandez
b386502020
fix(cli): show copyable workspace identifiers
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-06-04 20:20:56 -05:00
phernandez
16ba55d7b4
feat(cli): add auto bm github ci
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-06-04 20:14:59 -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
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
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
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
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
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
Paul Hernandez
f3e46d7984
feat(mcp): discover projects across workspaces ( #757 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-04-18 14:04:57 -05:00
Paul Hernandez
1b39062ecd
refactor(core): rip telemetry wrappers, use logfire directly ( #754 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 13:58:19 -05:00
Drew Cain
e2e65575d6
fix(core): honor BASIC_MEMORY_CONFIG_DIR across remaining call sites ( #744 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-15 22:55:25 -05:00
phernandez
8f2b25f0e0
test(core): stabilize postgres fixtures
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-04-13 14:25:26 -05:00
Paul Hernandez
052545b661
chore(core): make ty the default typechecker ( #736 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-04-13 10:34:01 -05:00
Paul Hernandez
a872947e03
fix(cli): show cloud index freshness in project info ( #734 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-04-10 09:22:35 -05:00
Paul Hernandez
093c94fea5
fix(core): clean up delete vectors and cloud sync ( #733 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-04-09 21:23:45 -05:00
Paul Hernandez
7945c1e2f7
perf(core): speed up vector sync and tune fastembed defaults ( #731 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-04-09 00:20:12 -05:00
Paul Hernandez
8c81d3ce17
perf(core): reduce postgres vector sync work ( #723 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-04-07 19:00:19 -05:00
Drew Cain
b3403e96b3
fix: add workspace routing to cloud upload and API client ( #704 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
Co-authored-by: phernandez <paul@basicmachines.co >
2026-04-06 18:18:40 -05:00
jope-bm
86ad639890
fix(cli): show display_name instead of UUID for private projects in CLI ( #718 )
...
Signed-off-by: Joe P <joe@basicmemory.com >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-06 10:14:46 -06:00
Paul Hernandez
cff31c5797
feat(cli): support cloud project visibility on add ( #715 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-04-03 17:30:09 -05:00
Paul Hernandez
e6b98a15c7
fix(cli): propagate cloud workspace routing and incremental sync ( #712 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-04-03 14:25:02 -05:00
Paul Hernandez
d1320f671e
fix: (cloud) CLI cloud commands now use API key when configured ( #698 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-26 22:56:45 -05:00
Paul Hernandez
4791e19685
feat: add Logfire phased instrumentation ( #692 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 20:39:42 -05:00
Drew Cain
7c96a0777d
fix(cli): handle brew outdated exit code 1 as outdated, not error
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
2026-03-10 23:13:54 -05:00
Drew Cain
db60942267
fix(core): invalidate config cache when file is modified by another process ( #662 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-10 23:05:55 -05:00
Drew Cain
7bfac158df
fix(cli): project list MCP column shows transport type instead of DB presence ( #661 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-10 23:05:48 -05:00
Paul Hernandez
a94a717b1b
feat(cli): add default-on auto-update system and bm update command ( #643 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Signed-off-by: Drew Cain <groksrc@users.noreply.github.com >
Co-authored-by: Drew Cain <groksrc@users.noreply.github.com >
2026-03-10 22:06:33 -05:00
phernandez
9b199c6dcb
fix: add FastEmbed runtime tuning knobs and provider caching
...
Add configurable cache_dir, threads, and parallel settings for FastEmbed
to support cloud deployments where defaults fail. Cache embedding providers
at the process level to avoid re-creating heavy ONNX model instances.
- Add semantic_embedding_cache_dir, semantic_embedding_threads, and
semantic_embedding_parallel config fields
- Thread-safe provider cache with double-checked locking in factory
- Forward runtime knobs through to TextEmbedding and embed() calls
- Fix if/elif chain in factory for correct error handling
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2026-03-03 10:26:47 -06:00
phernandez
fe4a7b1622
fix: update analytics test mocks for non-daemon thread change
...
Thread constructor no longer receives daemon=True, update mock
signatures to match. Also assert on the new "type": "event" field.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2026-03-02 21:26:54 -06:00
phernandez
a368d06fd2
fix: improve cloud CLI status and error messages
...
- Simplify `bm cloud status` output: remove verbose health check details
(status/version/timestamp), show simple "Cloud connected" / "Cloud not
connected" message instead
- Improve `bm reindex --project` error for cloud projects: distinguish
between "project not found" and "project is cloud-only" with a helpful
message explaining reindexing is a local operation
- Improve `bm project list` cloud error message: show the actual error
and soften the credentials suggestion
- Add tests for cloud status command (5 tests)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2026-03-01 20:24:11 -06:00