jope-bm
da4d369c32
feat: add created_by and last_updated_by user tracking to Entity ( #602 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-23 11:20:59 -07:00
Paul Hernandez
0f3889fdd0
fix: Return matched chunk text in search results ( #601 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-22 21:01:20 -06:00
Paul Hernandez
c44291830c
chore: rename entity_type to note_type ( #600 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-22 20:28:57 -06:00
phernandez
6ff39076a0
fix: double-default display in project list + stale test updates
...
Use config.default_project as single source of truth for the Default
column in `bm project list`, removing checks against local DB and cloud
API is_default fields that could independently mark multiple projects.
Also updates tests that were out of date after get_project_mode changed
to default unknown projects to CLOUD:
- test_get_client_local_project_uses_asgi_transport: register "main" as LOCAL
- test_run_filters_cloud_projects_each_cycle: register local project in config
- test_new_project_addition_scenario: register projects as LOCAL in config
- test_get_project_mode_defaults_to_cloud: assert new CLOUD default
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-22 00:33:25 -06:00
phernandez
e248763a73
fix: update tool contract test for list_memory_projects workspace param
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-21 20:12:47 -06:00
phernandez
2e5813d31e
feat: CLI refactoring + workspace-aware cloud project listing
...
Refactor CLI commands to use typed ProjectClient instead of raw HTTP calls,
and add workspace metadata to cloud project listings so users can distinguish
personal vs organization projects.
Key changes:
- 🔧 CLI commands now use ProjectClient typed API clients instead of
call_get/call_post with manual URL construction
- 🏢 Cloud project listings include workspace_name, workspace_type, and
workspace_tenant_id for each cloud-sourced project
- Pass config.default_workspace when fetching cloud projects via
_fetch_cloud_projects() and CLI list_projects
- Add --workspace flag to `bm project list` for explicit workspace override
- Add "Workspace" column to CLI project list table
- Add `bm tool list-projects` and `bm tool list-workspaces` JSON commands
- Comprehensive tests for workspace passthrough, merge behavior, and CLI routing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-21 20:04:03 -06:00
phernandez
2cde8d2659
clean up cli commands
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-21 16:06:43 -06:00
Paul Hernandez
9515130b2a
feat: upgrade fastmcp 2.12.3 to 3.0.1 with tool annotations ( #598 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-21 12:28:30 -06:00
Paul Hernandez
b86dd6fb53
feat: Fix bm CLI runtime defects and audit regressions ( #596 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-20 22:59:29 -06:00
Paul Hernandez
8451f2b1d7
feat: add frontmatter validation to schema system ( #597 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-20 22:57:19 -06:00
Paul Hernandez
ee0397513d
fix: recent_activity dedup + pagination across MCP tools ( #595 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-20 21:48:58 -06:00
Drew Cain
9c9ff2931d
fix: backend-specific distance-to-similarity conversion ( #593 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: Paul Hernandez <60959+phernandez@users.noreply.github.com >
Co-authored-by: phernandez <paul@basicmachines.co >
2026-02-20 20:15:46 -06:00
Paul Hernandez
edb7991ccf
fix: strip NUL bytes from content before PostgreSQL search indexing ( #592 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-20 18:11:04 -06:00
phernandez
d7faeb754e
feat: Add destination_folder parameter to move_note tool
...
Allows callers to move a note into a folder while preserving its original
filename — no need for a separate read_note round-trip to extract the basename.
- destination_folder is mutually exclusive with destination_path
- Rejected for directory moves (is_directory=True)
- Uses Path().name and PureWindowsPath().as_posix() for cross-platform compat
- Validates resolved path against path traversal attacks
- Includes formatting fixes in promo.py and test_analytics.py
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-20 02:06:04 -06:00
jope-bm
deef89a724
feat: Add display_name and is_private to ProjectItem ( #574 )
...
Signed-off-by: Joe P <joe@basicmemory.com >
Signed-off-by: phernandez <paul@basicmachines.co >
Signed-off-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: Paul Hernandez <60959+phernandez@users.noreply.github.com >
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Paul Hernandez <phernandez@users.noreply.github.com >
Co-authored-by: phernandez <paul@basicmachines.co >
Co-authored-by: jope-bm <jope-bm@users.noreply.github.com >
2026-02-20 01:44:07 -06:00
Paul Hernandez
30499a9f61
feat: Let stdio MCP honor per-project cloud routing ( #590 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-20 01:43:45 -06:00
bm-clawd
1ac65b944c
feat: CLI analytics via Umami event collector ( #572 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-20 00:09:42 -06:00
Paul Hernandez
306e562281
chore: Make semantic deps default, auto-backfill embeddings, and default search to semantic ( #586 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-19 18:31:15 -06:00
Paul Hernandez
0cb3f95d67
feat: Add JSON output mode for BM MCP tools (default text) ( #585 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Signed-off-by: Paul Hernandez <60959+phernandez@users.noreply.github.com >
2026-02-18 22:18:29 -06:00
Paul Hernandez
f2683291e4
feat: add workspace selection flow for MCP and CLI ( #576 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-17 22:48:06 -06:00
phernandez
8c05a9ec80
fix: stabilize semantic search defaults, FTS fallback, and postgres project sync
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-17 15:36:46 -06:00
phernandez
a6d8d4c0f6
Add ensure_frontmatter_on_sync with precedence warning
...
Add a new config option to enforce frontmatter on markdown sync when missing, writing derived title/type/permalink and updating in-memory metadata before upsert. Add startup warning when this option is combined with disable_permalinks to make precedence explicit. Add config/sync/initialization tests for the new behavior, and stabilize project list CLI integration assertions by forcing a wide terminal in tests to avoid Rich truncation.
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-16 22:08:09 -06:00
phernandez
0239f4abb4
Simplify local/cloud routing and clarify project targeting
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-16 21:42:25 -06:00
Paul Hernandez
9259a7eb59
feat: min-similarity override, edit-note CLI, and strip-frontmatter ( #571 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-16 17:56:00 -06:00
Paul Hernandez
55d675e278
feat: min_similarity override, cloud promo improvements ( #570 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-16 16:44:02 -06:00
Drew Cain
6afe4fd0cc
feat: expose external_id in EntityResponse and link resolver ( #569 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 20:33:37 -06:00
Paul Hernandez
545804f194
feat: Add project-prefixed permalinks and memory URL routing ( #544 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-13 17:45:50 -06:00
Paul Hernandez
8bc03d1357
feat(mcp): add MCP UI variants and TUI output ( #545 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-13 15:21:48 -06:00
Paul Hernandez
7624a20d8d
feat: isolate default sqlite db by config dir ( #567 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-13 11:11:13 -06:00
Paul Hernandez
d84708ca7f
feat: add per-project local/cloud routing with API key auth ( #555 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-13 09:52:50 -06:00
Paul Hernandez
1428d18de1
fix: make semantic search dependencies optional extras ( #566 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-12 21:46:26 -06:00
Paul Hernandez
312662f382
feat: Add cloud discovery touchpoints to CLI and MCP ( #546 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-12 21:01:45 -06:00
Paul Hernandez
ed9487708e
feat: enable default_project_mode by default ( #560 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-12 20:34:46 -06:00
Paul Hernandez
8df88e4d02
feat: add basic-memory watch CLI command ( #559 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-12 20:10:09 -06:00
Paul Hernandez
07778790d3
feat: add semantic vector search for SQLite and Postgres ( #550 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Signed-off-by: bm-clawd <clawd@basicmemory.com >
Co-authored-by: bm-clawd <clawd@basicmemory.com >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-12 15:44:47 -06:00
Paul Hernandez
b609c4e531
fix: use global --header for Tigris consistency on all rclone transactions ( #564 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-12 15:43:05 -06:00
phernandez
2b94d9a278
fix formatting for tigris headers
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-12 13:22:31 -06:00
Paul Hernandez
c97733d785
feat: Schema system for Basic Memory ( #549 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-11 15:04:42 -06:00
Paul Hernandez
8489a3d37e
fix: add X-Tigris-Consistent headers to all rclone commands ( #558 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-11 14:22:49 -06:00
Paul Hernandez
a47c9c021f
feat: add --format json to CLI tool commands ( #552 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Signed-off-by: bm-clawd <clawd@basicmemory.com >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: bm-clawd <clawd@basicmemory.com >
2026-02-08 14:56:29 -06:00
Paul Hernandez
343a6e118b
fix: Handle EntityCreationError as conflict ( #541 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-03 22:28:58 -06:00
phernandez
a0e754b7ae
fix: restore legacy /projects/projects endpoint for older CLI versions
...
Older versions of basic-memory CLI (v0.17.4 and earlier) call
GET /projects/projects to list projects. This endpoint was removed
when we migrated to v2 routers.
Add explicit route at /projects/projects (without trailing slash) to
avoid 307 redirects that the cloud proxy doesn't follow.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-02 22:26:48 -06:00
Paul Hernandez
24ca5f6804
fix: recent_activity prompt defaults ( #533 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-02 19:22:33 -06:00
Paul Hernandez
f1d50c2ba7
feat: Support tag: query shorthand in search ( #535 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-02 19:22:16 -06:00
Paul Hernandez
8072449a78
chore: Add fast feedback loop tooling ( #538 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-01 23:04:59 -06:00
Paul Hernandez
009e84926d
fix: stabilize metadata filters on postgres ( #536 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-01-31 22:31:00 -06:00
phernandez
8838571509
Add metadata filter tests and fix fast write external_id
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-01-31 15:27:05 -06:00
Paul Hernandez
530cbac73f
feat: fast edit entities, refactors for webui, enhance search ( #532 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-01-31 15:16:52 -06:00
Paul Hernandez
e3ced49d9d
fix: prevent spurious 'metadata: {}' in frontmatter output ( #530 )
...
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-31 12:17:10 -06:00
Drew Cain
0023e736ab
feat: add context-aware wiki link resolution with source_path support ( #527 )
...
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-28 19:11:41 -06:00