Paul Hernandez
f5a11f3911
fix: normalize underscores in memory:// URLs for build_context ( #329 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Paul Hernandez <phernandez@users.noreply.github.com >
2025-10-04 00:16:06 -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
324844a670
fix: resolve entity relations in background to prevent cold start blocking ( #319 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-09-28 09:24:29 -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
3a6baf80fc
feat: Merge Cloud auth ( #291 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Signed-off-by: Joe P <joe@basicmemory.com >
Co-authored-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-09-09 14:48:17 -06: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
Drew Cain
22f7bfa398
fix: Update YAML frontmatter tag formatting for Obsidian compatibility ( #280 )
...
Signed-off-by: Drew Cain <groksrc@users.noreply.github.com >
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Paul Hernandez <phernandez@users.noreply.github.com >
Co-authored-by: Paul Hernandez <60959+phernandez@users.noreply.github.com >
2025-09-04 09:57:45 -05:00
jope-bm
cd7cee650f
fix: complete project management special character support ( #272 ) ( #279 )
...
Signed-off-by: Joe P <joe@basicmemory.com >
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: jope-bm <jope-bm@users.noreply.github.com >
Co-authored-by: Claude <noreply@anthropic.com >
2025-08-29 10:57:13 -06:00
Drew Cain
7a8b08d11e
fix: Windows test failures and add Windows CI support ( #273 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
Co-authored-by: Claude <noreply@anthropic.com >
2025-08-25 08:58:24 -05:00
manuelbliemel
9aa40246a8
Addressed issues when running basic-memory on the Windows platform ( #252 )
...
Signed-off-by: Manuel Bliemel <manuel.bliemel@gmail.com >
2025-08-24 19:12:40 -07:00
jope-bm
b814d40ab1
fix: Add project isolation to ContextService.find_related() method ( #261 ) ( #262 )
...
Signed-off-by: Joe P <joe@basicmemory.com >
Co-authored-by: Claude <noreply@anthropic.com >
2025-08-20 20:07:04 -06:00
Drew Cain
43fa5762a8
ruff checks
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
2025-08-01 21:50:18 -05:00
Paul Hernandez
fb1350b294
fix: enhance character conflict detection and error handling for sync operations ( #201 )
...
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Paul Hernandez <phernandez@users.noreply.github.com >
2025-08-01 21:35:56 -05:00
jope-bm
6361574a20
fix: basic memory home env var not respected when project path is changed. ( #239 )
...
Signed-off-by: Joe P <joe@basicmemory.com >
2025-07-28 14:50:47 -06:00
Paul Hernandez
473f70c949
chore: Cloud auth ( #213 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-07-07 21:08:25 -05:00
Paul Hernandez
12b51522bc
fix: implement project-specific sync status checks for MCP tools ( #183 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-06-26 13:54:26 -05:00
phernandez
1bf348259b
fix formatting on files
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-25 22:32:05 -05:00
Paul Hernandez
f50650763d
fix: ensure permalinks are generated for entities with null permalinks during move operations ( #162 )
...
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Paul Hernandez <phernandez@users.noreply.github.com >
2025-06-25 12:57:44 -05:00
phernandez
d3b6c85184
docs: add v0.13.8 changelog entry
...
Documents recent fixes and features including:
- Docker container support with volume mounting
- #151 : Reset command project configuration fix
- #148 : MCP/CLI project state consistency fix
- FastMCP compatibility improvements
- Comprehensive integration testing
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-06-19 22:13:32 -05:00
Paul Hernandez
35e4f73ae8
fix: resolve project state inconsistency between MCP and CLI ( #149 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Paul Hernandez <phernandez@users.noreply.github.com >
2025-06-19 21:24:51 -05:00
Drew Cain
7be001ca68
fix: fastmcp deprecation warning ( #150 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
Signed-off-by: Paul Hernandez <60959+phernandez@users.noreply.github.com >
Co-authored-by: Paul Hernandez <60959+phernandez@users.noreply.github.com >
2025-06-19 19:59:17 -05:00
Paul Hernandez
84d2aaf641
fix: eliminate redundant database migration initialization ( #146 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-06-18 17:32:20 -05:00
Paul Hernandez
7789864493
fix: add entity_type parameter to write_note MCP tool ( #145 )
...
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Paul Hernandez <phernandez@users.noreply.github.com >
Co-authored-by: Claude <noreply@anthropic.com >
2025-06-18 17:10:15 -05:00
Drew Cain
c6215fd819
fix: UNIQUE constraint failed: entity.permalink issue #139 ( #140 )
...
Signed-off-by: Drew Cain <groksrc@users.noreply.github.com >
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-06-18 15:03:11 -05:00
phernandez
70a6ce3411
fix: resolve case-insensitive project switching issues
...
This commit fixes the persistent case-insensitive project switching bug
where switching to projects with different case variations would succeed
but subsequent operations would fail.
Key changes:
- Enhanced config manager with case-insensitive project lookup using permalinks
- Updated project management tools to handle both name and permalink matching
- Fixed API URL construction to use permalinks consistently
- Added comprehensive test coverage for case-insensitive operations
- Updated project service to support permalink-based lookups
The fix ensures that users can switch to projects using any case variation
(e.g., "personal", "Personal", "PERSONAL") and all subsequent operations
work correctly with the canonical project name.
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-06-11 19:26:27 -05:00
phernandez
5b69fd65cd
fix: resolve case-insensitive project switching database lookup issue
...
Fix project switching bug where case-insensitive matching worked but
caused database lookup failures for subsequent operations.
**Problem:**
- switch_project('personal') succeeded (case-insensitive matching)
- get_current_project() failed with 'Project personal not found'
- Session stored user input case instead of canonical database name
**Solution:**
- Find project by permalink (case-insensitive) in switch_project
- Store canonical project name from database in session
- Use canonical name for all API calls and responses
**Test Coverage:**
- Added comprehensive case-insensitive project switching tests
- Added tests for case preservation in project listings
- Added tests for session state consistency after case switching
- Added error handling tests for non-existent projects
**Files Changed:**
- src/basic_memory/mcp/tools/project_management.py: Fixed switch_project logic
- test-int/mcp/test_project_management_integration.py: Added test coverage
**Test Cases Now Passing:**
- ✅ switch_project('personal') → finds 'Personal' project
- ✅ get_current_project() → works with canonical name
- ✅ Project summary shows stats correctly
- ✅ Case-insensitive matching for all case variations
- ✅ Error handling for non-existent projects
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-06-11 18:19:17 -05:00
Paul Hernandez
3ee30e1f36
fix: project cli commands and case sensitivity when switching projects ( #130 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-11 16:09:53 -05:00
phernandez
2abf626c46
fix: resolve unused variable lint warnings in tests
...
- Remove unused variables in test mock functions
- Clean up test code per ruff linting rules
2025-06-09 15:15:05 -05:00
phernandez
7108a7baf1
fix: resolve sync race conditions and search errors
...
- Add IntegrityError handling in entity_service.create_entity_from_markdown for file_path/permalink constraint violations
- Add IntegrityError handling in sync_service.sync_regular_file for concurrent sync race conditions
- Fix FTS "unknown special query" error when searching for wildcard "*" patterns
- Add comprehensive test coverage for race condition edge cases and error handling
- Gracefully handle concurrent sync processes with fallback to update operations
Fixes sync errors from beta testing including:
- "UNIQUE constraint failed: entity.file_path"
- "UNIQUE constraint failed: entity.permalink"
- "unknown special query" FTS errors
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-06-08 15:20:27 -05:00
phernandez
35884ef3a7
fix: update MCP tool/prompt/resource calls to use .fn attribute
...
FastMCP library changes now require calling decorated functions via the .fn attribute:
- Tools: @mcp.tool() functions return FunctionTool, call with tool.fn()
- Prompts: @mcp.prompt() functions return FunctionPrompt, call with prompt.fn()
- Resources: @mcp.resource() functions return FunctionResource, call with resource.fn()
Updated core files:
- view_note.py: read_note() → read_note.fn()
- read_note.py: search_notes() → search_notes.fn() (2 locations)
- tool.py: 6 MCP tool calls updated to use .fn
- recent_activity.py: recent_activity() → recent_activity.fn()
- project.py: project_info() → project_info.fn() with type ignore
Updated 100+ test files systematically to use .fn attribute and fixed mock targets.
All 869 tests now pass. Fixes view_note tool error in Claude Desktop.
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-06-08 11:52:23 -05:00
phernandez
040be05a81
fix: normalize project names in config during startup
...
- Fix case sensitivity bug where config had "Personal" but database expected "personal"
- Add project name normalization in synchronize_projects() to use generate_permalink()
- Update config file with normalized names and log changes for user visibility
- Use proper permalink generation instead of hardcoded name.lower().replace()
- Add comprehensive tests for project name normalization scenarios
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-06-08 09:28:57 -05:00
phernandez
117fa44ecf
fix project info stats tests
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-05 15:51:11 -05:00
phernandez
f608cd13f1
add justfile instead of Makefile, add ignores to test coverage
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-05 12:26:31 -05:00
phernandez
dd6ca80716
fix link_resolver tests
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-04 23:57:01 -05:00
phernandez
ae3eeb0cc1
add tool prompting and doc updates for strict mode in edit/move, and sync_status tool
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-04 23:46:48 -05:00
phernandez
602c55fe90
only allow edit_note, move_note using strict identifier match
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-04 23:37:29 -05:00
phernandez
91bfe2dc92
add sync status tool
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-04 22:24:10 -05:00
phernandez
a3cae1064d
add background migration task and status tool/prompt
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-04 16:52:12 -05:00
phernandez
53c29a37ca
fix: resolve FTS5 search syntax errors with special characters
...
Enhances search term preparation to handle special characters gracefully while preserving functionality:
- Improves FTS5 query preparation with targeted special character handling
- Preserves boolean operators (AND, OR, NOT) without modification
- Quotes problematic characters that cause syntax errors
- Maintains wildcard patterns for legitimate use cases
- Adds comprehensive error handling with graceful fallback
Includes extensive test coverage:
- 10 new test cases for various search scenarios
- Programming terms (C++, function(), email@domain.com ) now searchable
- Malformed syntax handled without crashes
- Boolean and wildcard functionality preserved
Fixes search crashes when users enter queries containing special characters.
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-06-03 16:45:13 -05:00
phernandez
d8c13bf1d3
fix project table unique constraint bug
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-03 14:23:15 -05:00
phernandez
ac08a8d024
fix: update FastMCP initialization for API changes
...
- Remove deprecated auth_server_provider parameter
- Use auth parameter correctly with OAuthProvider instead of AuthSettings
- Fixes type error after dependency updates
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-06-03 09:08:17 -05:00
Paul Hernandez
634486107b
feat: v0.13.0 pre ( #122 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-06-03 01:00:40 -05:00
bm-claudeai
020957cd76
feat: Multi-project support, OAuth authentication, and major improvements ( #119 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-05-25 10:07:34 -05:00
Paul Hernandez
78a3412bcf
fix: run migrations and sync when starting mcp ( #88 )
2025-04-07 17:45:26 -05:00
Paul Hernandez
617e60bda4
feat: permalink enhancements ( #82 )
...
- Avoiding "useless permalink values" for files without metadata
- Enable permalinks to be updated on move via config setting
2025-04-06 14:54:59 -05:00
github-actions[bot]
6c19c9edf5
fix: [BUG] # character accumulation in markdown frontmatter tags prop ( #79 )
2025-04-05 23:07:53 -05:00
github-actions[bot]
9d581cee13
fix: [BUG] Cursor has errors calling search tool ( #78 )
2025-04-05 19:12:23 -05:00
phernandez
681af5d450
chore: remove duplicate code in entity_service.py from bad merge
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-03-25 12:27:37 -05:00
phernandez
b35037eb86
fix broken merge
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-03-24 23:18:22 -05:00