phernandez
b367ccbdb8
fix: update tests and fix bugs for project-prefixed permalinks
...
- Fix update_entity overwriting project-prefixed permalink with
non-prefixed one during metadata merge
- Fix memory:// URL path traversal validation bypass in read_note
and read_content tools
- Fix pyright type error in claude_projects_importer
- Update test assertions across 12 test files to use project-prefixed
permalinks (test-project/path instead of path)
- Fix monkeypatch in search test to use resolve_project_and_path
instead of removed get_active_project
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-13 15:39:11 -06:00
phernandez
c6511aa745
feat: enable project-prefixed permalinks
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-13 15:39:10 -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
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
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
24ca5f6804
fix: recent_activity prompt defaults ( #533 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-02 19:22:33 -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
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
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
8730067f3a
feat: Feature/517 local mcp cloud mode ( #522 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-26 19:51:49 -06:00
Drew Cain
e14ba92631
fix: resolve MCP prompt rendering errors ( #524 )
...
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-25 19:14:41 -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
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