Paul Hernandez
26f7e98932
fix: preserve search index across server restarts ( #503 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2026-01-05 21:31:35 -06:00
Paul Hernandez
5947f04bd3
refactor: composition roots, deps split, and typed API clients ( #490 roadmap) ( #502 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-04 11:05:58 -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
phernandez
0bcda4a14a
fix: allow recent_activity discovery mode in cloud mode
...
Add `allow_discovery` parameter to `resolve_project_parameter()` that
enables tools like `recent_activity` to work across all projects in
cloud mode without requiring a project parameter.
- Add `allow_discovery: bool = False` param to resolve_project_parameter
- In cloud mode with allow_discovery=True, return None instead of error
- Update recent_activity to use allow_discovery=True
- Fix circular import by deferring call_get import inside functions
- Add comprehensive tests for resolve_project_parameter
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2025-12-29 16:22:48 -06:00
Paul Hernandez
1fd680c3f1
feat: add auto-format files on save with built-in Python formatter ( #474 )
...
Signed-off-by: Cedric Hurst <cedric@spantree.net >
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Cedric Hurst <cedric@spantree.net >
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
Co-authored-by: Sebastian B Otaegui <feniix@users.noreply.github.com >
Co-authored-by: Cedric Hurst <cedric@divideby0.io >
2025-12-24 15:39:22 -06:00
jope-bm
1a74d85973
feat: Complete Phase 2 of API v2 migration - Update MCP tools to use v2 endpoints ( #447 )
...
Signed-off-by: Joe P <joe@basicmemory.com >
Signed-off-by: Paul Hernandez <60959+phernandez@users.noreply.github.com >
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: Paul Hernandez <60959+phernandez@users.noreply.github.com >
Co-authored-by: phernandez <paul@basicmachines.co >
2025-12-24 12:59:14 -06:00
Paul Hernandez
4a43d7df4a
remove logfire instrumentation
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-12-13 15:22:14 -06:00
jope-bm
28cc5225a7
feat: Implement API v2 with ID-based endpoints (Phase 1) ( #441 )
...
Signed-off-by: Joe P <joe@basicmemory.com >
Signed-off-by: phernandez <paul@basicmachines.co >
Signed-off-by: Claude <noreply@anthropic.com >
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: Paul Hernandez <60959+phernandez@users.noreply.github.com >
Co-authored-by: phernandez <paul@basicmachines.co >
2025-11-27 10:35:55 -06:00
Cedric Hurst
b004565df9
fix: handle periods in kebab_filenames mode ( #424 )
2025-11-18 06:49:55 -05: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
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
2b7008d997
fix: Update view_note and ChatGPT tools for Claude Desktop compatibility ( #355 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-10-13 10:44:35 -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
f818702ab7
fix: enforce minimum 1-day timeframe for recent_activity to handle timezone issues ( #318 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-09-27 23:37:00 -05:00
Paul Hernandez
5da97e4820
feat: implement SPEC-11 API performance optimizations ( #315 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-09-26 14:34:46 -05:00
Drew Cain
3e168b98f3
fix: move_note without file extension ( #281 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: claude[bot] <209825114+claude[bot]@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 >
2025-09-26 11:41:45 -05:00
Paul Hernandez
f40ab31685
feat: chatgpt tools for search and fetch ( #305 )
...
Signed-off-by: Paul Hernandez <60959+phernandez@users.noreply.github.com >
Signed-off-by: Drew Cain <groksrc@gmail.com >
Co-authored-by: Drew Cain <groksrc@gmail.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: Drew Cain <groksrc@users.noreply.github.com >
2025-09-25 11:55:56 -05:00
Paul Hernandez
a1d7792bdb
feat: Implement SPEC-6 Stateless Architecture for MCP Tools ( #298 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Signed-off-by: Paul Hernandez <60959+phernandez@users.noreply.github.com >
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: Drew Cain <groksrc@users.noreply.github.com >
2025-09-21 20:39:19 -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
Joe P
7e024a8674
fix: resolve linting errors for release preparation
...
- Replace bare except clauses with Exception in legal_file_inventory.py
- Remove unused variables in test files
- Prepare codebase for v0.14.4 release
2025-09-04 14:01:06 -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
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
f3d8d8d617
fix: Use discriminated unions for MCP schema validation in build_context ( #266 )
...
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: jope-bm <jope-bm@users.noreply.github.com >
2025-08-22 09:36:32 -06:00
jope-bm
5d74d7407c
fix: Enable string-to-integer conversion for build_context depth parameter ( #259 )
...
Signed-off-by: Joe P <joe@basicmemory.com >
Co-authored-by: Claude <noreply@anthropic.com >
2025-08-20 11:22:14 -06:00
jope-bm
08ee7e1201
fix: Critical search index bug - prevent note disappearing on edit ( #257 )
...
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 >
2025-08-19 15:41:27 -06:00
phernandez
59eae34dee
fix: Update function name in error messages to use correct search_notes
...
Corrects error message templates to reference the actual search_notes function name for consistency.
2025-08-08 15:25:33 -05:00
phernandez
b1e55e169e
revert: Remove external function name fix for clean IP
...
Original contribution by Amadeusz Wieczorek will be re-implemented by Basic Machines team.
2025-08-08 15:24:58 -05:00
jope-bm
a4a3b1b689
fix: handle missing 'name' key in memory JSON import ( #241 )
...
Signed-off-by: Joe P <joe@basicmemory.com >
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: jope-bm <jope-bm@users.noreply.github.com >
2025-07-28 14:52:15 -06:00
jope-bm
24a1d6195d
fix: path traversal security vulnerability in mcp tools ( #223 )
...
Signed-off-by: Joe P <joe@basicmemory.com >
2025-07-15 09:05:11 -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
Drew Cain
f80ac0ee72
fix: replace deprecated datetime.utcnow() with timezone-aware alternatives and suppress SQLAlchemy warnings ( #211 )
...
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
2025-07-03 16:57:30 -05:00
Drew Cain
2aca19aa05
chore: apply ruff formatting
2025-07-01 22:05:17 -05:00
Drew Cain
bd4f55158b
fix: Problems with MCP #190 ( #202 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
2025-07-01 10:50:44 -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
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
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
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
9a0e0bd82d
add view_note tool
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-05 16:30:09 -05:00
phernandez
69d7610d47
test coverage 100%
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-05 13:07:20 -05:00
phernandez
91bfe2dc92
add sync status tool
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-04 22:24:10 -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
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