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
38616c345d
fix: read default project from database in cloud mode ( #520 )
...
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-24 10:44:04 -06:00
Paul Hernandez
c7835a9d5c
fix: ensure external_id is set on entity creation ( #512 ) ( #513 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-19 11:14:48 -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
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
phernandez
9206e7960a
return external_id with directory response
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-01-02 23:43:14 -06:00
Paul Hernandez
53c4c20d22
fix: route ordering for cloud ( #499 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-01-02 21:52:02 -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
jope-bm
a4000f64ce
feat: add stable external_id (UUID) to Project and Entity models ( #485 )
...
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 Opus 4.5 <noreply@anthropic.com >
Co-authored-by: Paul Hernandez <60959+phernandez@users.noreply.github.com >
Co-authored-by: phernandez <paul@basicmachines.co >
2026-01-02 13:00:35 -06:00
phernandez
eb7fbaf0bf
fix set_default_project in cloud mode
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-12-30 20:57:45 -06:00
phernandez
3cd9178415
refactor: centralize test environment detection in config.is_test_env
...
Add is_test_env property to BasicMemoryConfig that checks:
- config.env == "test"
- BASIC_MEMORY_ENV env var is "test"
- PYTEST_CURRENT_TEST is set
Replace duplicated test detection logic in:
- api/app.py
- mcp/server.py
- services/initialization.py
- telemetry.py (disables telemetry during tests)
🤖 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-27 12:44:42 -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
phernandez
c23927d124
fix: use canonical project names in API response messages
...
Use database-retrieved project names (new_project.name, old_project.name)
instead of input parameters (project_data.name, name) in v1 API response
messages to ensure consistent project name casing.
The v2 API already did this correctly. This fixes issue #450 where project
names would display with different casing between add and remove operations.
Fixes #450
🤖 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-24 13:28:06 -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
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
efbc758325
fix: await background sync task cancellation in lifespan shutdown ( #456 )
...
Signed-off-by: claude[bot] <41898282+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 >
2025-12-17 09:53:34 -06:00
Paul Hernandez
a0f20eb102
chore: more Tenantless fixes ( #457 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-16 18:34:05 -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
phernandez
7d763a66ff
use entity.mtime for updated at in api
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-11-29 13:21:58 -06:00
phernandez
830775276d
remove record_return=True from logfire spans
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-11-28 18:36:09 -06:00
phernandez
704338edcf
remove logfire.instrument_fastapi(app) from app.py
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-11-28 13:52:18 -06:00
phernandez
0ca02a7ebe
add logfire instrumentation to services and repository code
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-11-28 12:47:29 -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
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
4614fd09d5
fix: Handle dict objects in write_resource endpoint ( #415 )
...
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Paul Hernandez <phernandez@users.noreply.github.com >
2025-11-10 16:30:27 -06:00
jope-bm
7ccec7eba2
feat: Add run_in_background parameter to sync endpoint with tests ( #417 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-11-07 09:04:43 -07:00
Paul Hernandez
0b3272ae6e
feat: SPEC-20 Simplified Project-Scoped Rclone Sync ( #405 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Signed-off-by: Claude <noreply@anthropic.com >
Co-authored-by: Claude <noreply@anthropic.com >
2025-11-02 09:35:26 -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
53fb13b054
fix: Make project creation endpoint idempotent ( #357 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-10-15 19:27:41 -05:00
phernandez
cd5efd4a44
perf: exclude null fields from directory endpoint responses
...
Reduces JSON payload size by 50-70% for directory-heavy responses by omitting
null fields from serialization.
Changes:
- Added response_model_exclude_none=True to all directory endpoints:
- GET /directory/tree
- GET /directory/structure
- GET /directory/list
Impact:
- Directory nodes no longer serialize 7 null fields (title, permalink,
entity_id, entity_type, content_type, updated_at, file_path)
- For 50+ directories: eliminates 350+ null fields from response
- Payload reduction: ~2.3kb → ~1kb for typical directory trees
- File nodes still include all metadata when present
Example directory node output:
{
"name": "Tools",
"directory_path": "/Tools",
"type": "directory",
"children": []
}
Testing:
- All 29 directory tests passing
- Type checking passing (0 errors)
- Backward compatible (clients just see missing keys vs null)
🤖 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-11 09:56:26 -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
fd2b188645
Revert "feat: add optional logfire instrumentation for cloud mode distributed tracing"
...
This reverts commit 1fa93ecbd2 .
2025-10-08 09:08:15 -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
phernandez
1fa93ecbd2
feat: add optional logfire instrumentation for cloud mode distributed tracing
2025-10-08 00:23:00 -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
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
ea2e93d926
fix: rework lifecycle management to optimize cloud deployment ( #320 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-09-28 15:11:38 -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
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
Paul Hernandez
e0d8aeb149
feat: Basic memory cloud upload ( #296 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Signed-off-by: Drew Cain <groksrc@gmail.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: Claude <noreply@anthropic.com >
Co-authored-by: Drew Cain <groksrc@gmail.com >
2025-09-16 15:07:14 -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
2cd2a62f30
fix: Ensure all datetime operations return timezone-aware objects ( #268 )
...
Signed-off-by: Joe P <joe@basicmemory.com >
Co-authored-by: Claude <noreply@anthropic.com >
2025-08-22 13:43:55 -06:00
Drew Cain
43fa5762a8
ruff checks
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
2025-08-01 21:50:18 -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
Drew Cain
8a065c32f4
fix: handle None from_entity in Context API RelationSummary ( #166 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
2025-06-25 12:57:31 -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
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