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
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
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
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
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
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
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
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
343a6e118b
fix: Handle EntityCreationError as conflict ( #541 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-03 22:28:58 -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
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
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
Paul Hernandez
0b2080114b
feat: add directory support to move_note and delete_note tools ( #518 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-26 19:52:10 -06:00
Paul Hernandez
17c0e0a29b
fix: check config default_project only in local mode for remove_project ( #523 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-24 12:53:44 -06:00
Paul Hernandez
863e0a4e24
fix: prevent CLI commands from hanging on exit (Python 3.14) ( #505 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-11 16:47:35 -06:00
Paul Hernandez
b4486d20bd
test: remove stdlib mocks, strengthen integration coverage ( #489 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-02 14:22:01 -06:00
Paul Hernandez
fd732aa6fe
fix: set_default_project skips config file update in cloud mode ( #486 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-30 09:05:48 -06:00
Paul Hernandez
916baf8971
fix: prevent CLI commands from hanging on exit ( #471 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-24 11:27:11 -06:00
Paul Hernandez
78673d8e51
chore: Cloud compatibility fixes and performance improvements ( #454 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-15 20:07:55 -06:00
Paul Hernandez
4a43d7df4a
remove logfire instrumentation
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-12-13 15:22:14 -06:00
Cedric Hurst
70bb10be1d
fix: respect --project flag in background sync ( fixes #434 ) ( #436 )
...
Signed-off-by: Cedric Hurst <cedric@spantree.net >
2025-12-08 12:58:18 -06:00
phernandez
a920a9ff29
feat: Add project_id to Relation and Observation for efficient project-scoped queries
...
Denormalizes project_id onto Relation and Observation tables to enable
efficient project-scoped queries without joins. Migration backfills
from associated entity and adds pg_trgm extension with GIN indexes
for fuzzy link resolution on PostgreSQL.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2025-12-01 21:54:56 -06:00
phernandez
0eaf30bb06
remove conflict constraint name from relation_repository.py
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-11-30 19:31:09 -06:00
phernandez
b5d4fb559c
fix: postgres/neon connection settings and search index dedupe
...
- Reduce db_pool_recycle from 3600s to 180s for Neon scale-to-zero
- Add connect_args for Neon serverless (statement cache, timeouts, app name)
- Dedupe observation permalinks in search indexing to avoid unique constraint violations
- Add tests for duplicate observation permalink handling
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2025-11-29 11:24:08 -06:00
Paul Hernandez
fb5e9e1d77
feat: Add PostgreSQL database backend support ( #439 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-11-20 11:20:29 -06:00
Drew Cain
6517e9845f
fix: Use platform-native path separators in config.json ( #429 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
Co-authored-by: Claude <noreply@anthropic.com >
2025-11-13 09:12:26 -06:00
Paul Hernandez
1646572f69
fix: Rename write_note entity_type to note_type for clarity ( #419 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Signed-off-by: Paul Hernandez <60959+phernandez@users.noreply.github.com >
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: Paul Hernandez <phernandez@users.noreply.github.com >
2025-11-10 19:02:50 -06:00
Paul Hernandez
021af74545
fix: Strip duplicate headers in edit_note replace_section ( #396 )
...
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Drew Cain <groksrc@users.noreply.github.com >
2025-11-02 14:20:11 -06:00
Paul Hernandez
c7e6eab02f
feat: Add delete_notes parameter to remove project endpoint ( #391 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-10-21 14:09:20 -05:00
Paul Hernandez
e78345ff25
feat: Streaming Foundation & Async I/O Consolidation (SPEC-19) ( #384 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-10-21 09:03:59 -05:00
Paul Hernandez
449b62d947
fix: Prevent deleted projects from being recreated by background sync ( #193 ) ( #370 )
...
Signed-off-by: Claude <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2025-10-16 15:16:24 -05:00
Paul Hernandez
00b73b0d08
feat: Optimize directory operations for 10-100x performance improvement ( #350 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-10-11 09:11:46 -05:00
phernandez
032de7e3f2
fix: formatting in test file
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-10-08 09:13:05 -05:00
Paul Hernandez
3e876a7549
fix: correct ProjectItem.home property to return path instead of name ( #341 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
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: Claude <noreply@anthropic.com >
2025-10-08 01:03:12 -05:00
Paul Hernandez
795e339333
fix: prevent nested project paths to avoid data conflicts ( #338 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-10-07 09:44:39 -05:00
Paul Hernandez
07e304ce8e
fix: normalize paths to lowercase in cloud mode to prevent case collisions ( #336 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-10-05 17:56:58 -05:00
Paul Hernandez
ccc4386627
feat: introduce BASIC_MEMORY_PROJECT_ROOT for path constraints ( #334 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-10-05 10:42:06 -05:00
Paul Hernandez
7616b2bb08
fix: cloud mode path validation and sanitization (bmc-issue-103) ( #332 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-10-04 22:10:21 -05:00
phernandez
367dc6962a
style: apply ruff formatting to test files
...
Auto-format test files for permalink collision tests.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2025-10-04 15:00:19 -05:00
phernandez
2a050edee4
fix: prevent permalink collision via strict link resolution
...
Fixes critical data loss bug where creating similar entity names
(e.g., "Node C") would overwrite existing entities (e.g., "Node A.md")
due to fuzzy search incorrectly matching similar file paths.
Changes:
- Add strict=True to resolve_link() calls in entity_service.py
- Disables fuzzy search fallback during entity creation/update
- Prevents false positive matches on similar paths like
"edge-cases/Node A.md" and "edge-cases/Node C.md"
Testing:
- Added comprehensive integration test reproducing the bug scenario
- Added MCP-level permalink collision tests
- All 55 entity service tests pass
- Manual testing confirms fix prevents file overwrite
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2025-10-04 14:45:37 -05:00
Paul Hernandez
903591384d
feat: Add disable_permalinks config flag ( #313 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
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: Claude <noreply@anthropic.com >
2025-10-03 22:11:47 -05:00
Paul Hernandez
99a35a7fb4
feat: Cloud CLI cloud sync via rclone bisync ( #322 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-10-03 10:18:43 -05:00
Paul Hernandez
1091e11322
fix: Make sync operations truly non-blocking with thread pool ( #309 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-09-26 10:10:58 -05:00
jope-bm
ec2fa07350
chore: apply lint and formatting fixes for 0.14.4 release ( #290 )
...
Signed-off-by: Joe P <joe@basicmemory.com >
Co-authored-by: Claude <noreply@anthropic.com >
2025-09-05 10:00:52 -06:00