phernandez
cd8e372f0a
fix: add test coverage for optional permalink in EntityResponse schema
...
- Add comprehensive test for None permalink validation in EntityResponse
- Ensures schema properly handles markdown files without explicit permalinks
- Addresses GitHub issue #170 validation errors during edit operations
- Test validates that permalink=None doesn't cause ValidationError
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-26 15:58:49 -05:00
Paul Hernandez
a589f8b894
feat: enhance search_notes tool documentation with comprehensive syntax examples ( #186 )
...
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 >
Co-authored-by: Claude <noreply@anthropic.com >
2025-06-26 15:51:58 -05:00
Paul Hernandez
c2f4b632cf
fix: preserve permalink when editing notes without frontmatter permalink ( #184 )
...
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Paul Hernandez <phernandez@users.noreply.github.com >
2025-06-26 15:35:31 -05:00
phernandez
46d102cef1
update tests for search_repository
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-26 14:30:10 -05:00
phernandez
7af8e198c2
style: fix linting errors in test assertions
...
Replace equality comparisons to False with 'not' for better style.
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-26 14:06:51 -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
Paul Hernandez
ac9e148bcc
test: add more tests for search_repository ( #181 )
...
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-26 13:45:07 -05:00
Paul Hernandez
546e3cd8db
fix: handle Boolean search syntax with hyphenated terms ( #180 )
...
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-26 12:41:32 -05:00
phernandez
1bf348259b
fix formatting on files
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-25 22:32:05 -05:00
Drew Cain
9f1db23c78
fix: respect BASIC_MEMORY_HOME environment variable in Docker containers ( #174 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
2025-06-25 21:40:30 -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
Drew Cain
2a3adc109a
fix: scope entity queries by project_id in upsert_entity method ( #168 )
...
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
2025-06-24 00:02:18 -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
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
9a0e0bd82d
add view_note tool
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-05 16:30:09 -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
69d7610d47
test coverage 100%
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-05 13:07:20 -05:00
phernandez
2162ad57fe
all tests passing
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-05 11:13:40 -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
c5c70cb0f4
improve validation for memory:// urls, add examples to build_context
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-04 00:16:33 -05:00
phernandez
80ec860a1c
remove coverage files
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-03 23:14:07 -05:00
phernandez
f64d5b2152
improve error messages for tools
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-03 23:12:59 -05:00
phernandez
69a625acd1
fix search escape issues, and empty forward reference resolving for entities
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-03 18:09:41 -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
phernandez
3c1cc346df
fix: modify recent_activity args to be strings instead of enums
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-04-17 10:56:46 -05:00
phernandez
73ea91fe0d
fix: add extra logic for permalink generation with mixed Latin unicode and Chinese characters
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-04-17 10:00:40 -05:00
Amadeusz Wieczorek
54dfa08aba
Update name of function search_notes in error output ( #92 )
...
Signed-off-by: Amadeusz Wieczorek <git@amadeusw.com >
2025-04-14 11:06:15 -05:00
Paul Hernandez
2934176331
fix: utf8 for all file reads/write/open instead of default platform encoding ( #91 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-04-08 10:55:01 -05:00
Paul Hernandez
78a3412bcf
fix: run migrations and sync when starting mcp ( #88 )
2025-04-07 17:45:26 -05:00
Paul Hernandez
3f4d9e4d87
fix: write_note preserves frontmatter fields in content ( #84 )
2025-04-06 18:39:51 -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]
9bff1f732e
fix: [BUG] write_note Tool Fails to Update Existing Files in Some Situations. ( #80 )
2025-04-05 22:31:40 -05:00
github-actions[bot]
7930ddb291
fix: [BUG] Some notes never exit "modified" status ( #77 )
2025-04-05 22:03:38 -05:00
github-actions[bot]
9d581cee13
fix: [BUG] Cursor has errors calling search tool ( #78 )
2025-04-05 19:12:23 -05:00
Paul Hernandez
b27827671d
feat: rename search tool to search_notes ( #66 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-03-28 19:11:35 -05:00
phernandez
2a881b1425
refactor: move project stats into projct subcommand
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-03-25 12:50:11 -05:00
phernandez
b667bca5a2
fix test coverage and type checks
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-03-24 22:46:47 -05:00