phernandez
a6d8d4c0f6
Add ensure_frontmatter_on_sync with precedence warning
...
Add a new config option to enforce frontmatter on markdown sync when missing, writing derived title/type/permalink and updating in-memory metadata before upsert. Add startup warning when this option is combined with disable_permalinks to make precedence explicit. Add config/sync/initialization tests for the new behavior, and stabilize project list CLI integration assertions by forcing a wide terminal in tests to avoid Rich truncation.
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-16 22:08:09 -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
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
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
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
1652f862dd
fix: handle FileNotFoundError gracefully during sync
...
When a file exists in the database but is missing from the filesystem,
the sync worker now treats this as a deletion instead of crashing.
The sync_file() method catches FileNotFoundError specifically and calls
handle_delete() to clean up the orphaned database record. This prevents
the sync from failing on database/filesystem inconsistencies that can
occur due to race conditions, manual file deletions, or cloud storage
caching issues.
Includes a test to verify the graceful handling behavior.
Fixes #386
🤖 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:34:59 -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
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
Paul Hernandez
4a43d7df4a
remove logfire instrumentation
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-12-13 15:22:14 -06:00
phernandez
203d684c24
fix integrity error handling when setting forward relation refs
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-11-29 19:03:12 -06:00
Paul Hernandez
fb5e9e1d77
feat: Add PostgreSQL database backend support ( #439 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-11-20 11:20:29 -06: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
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
4fd6d0c648
fix: Optimize sync memory usage to prevent OOM on large projects ( #380 )
...
Signed-off-by: Claude <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2025-10-16 20:17:34 -05:00
Paul Hernandez
b7497d7484
fix: Use filesystem timestamps for entity sync instead of database operation time ( #138 ) ( #369 )
...
Signed-off-by: Claude <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2025-10-16 14:21:27 -05:00
Paul Hernandez
729a5a3b8d
fix: Terminate sync immediately when project is deleted ( #366 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-10-16 11:07:12 -05:00
Paul Hernandez
434cdf24dd
feat: Add circuit breaker for file sync failures ( #364 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-10-16 09:47:48 -05:00
Paul Hernandez
c0538ad2dd
perf: Optimize sync/indexing for 43% faster performance ( #352 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-10-12 14:41:44 -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
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
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
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
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
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
91bfe2dc92
add sync status tool
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-04 22:24:10 -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
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
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]
7930ddb291
fix: [BUG] Some notes never exit "modified" status ( #77 )
2025-04-05 22:03:38 -05:00
Paul Hernandez
6a4bd54646
chore: Pre beta prep ( #20 )
...
fix: drop search_index table on db reindex
fix: ai_resource_guide.md path
chore: remove logfire
Signed-off-by: phernandez <paul@basicmachines.co >
2025-03-07 14:31:35 -06:00
Paul Hernandez
e6496df595
feat: Beta work ( #17 )
...
feat: Add multiple projects support
feat: enhanced read_note for when initial result is not found
fix: merge frontmatter when updating note
fix: handle directory removed on sync watch
2025-03-05 18:46:04 -06:00
Paul Hernandez
f8078cdd46
Fix: Beta testing fixes ( #16 )
...
Co-authored-by: phernandez <phernandez@basicmachines.co >
2025-02-28 20:23:53 -06:00
Paul Hernandez
37a01b806d
feat: Incremental sync on watch ( #13 )
...
- incremental sync on watch
- sync non-markdown files in knowledge base
- experimental `read_resource` tool for reading non-markdown files in raw form (pdf, image)
2025-02-24 22:13:15 -06:00
phernandez
812136c8c2
fix: add logfire spans to cli
2025-02-18 19:08:46 -06:00
phernandez
86380a92b2
log sync conflict at debug instead of info
2025-02-13 14:21:06 -06:00
phernandez
28513c8b8d
lint code
2025-02-12 22:39:22 -06:00
Paul Hernandez
5b4f0eafcc
Pre release fixups ( #5 )
...
* configure logging
* set mcp output logging also
* fix type check errors
* fix type check
* rename Permalink schema type
* fix type errors
* add typechecks to ci workflow
* pytest coverage setup
* add tests for status cli
* sync tests coverage
* watch_service test coverage
* tests for tool_utils.py
* clean up imports
* file_utils coverage
* markdown plugins coverage
* 99% test coverage
* more test coverage, remove ObservationCategory
* more tool coverage
* fix type-check
* format, upgrade deps
---------
Co-authored-by: phernandez <phernandez@basicmachines.co >
2025-02-12 08:23:10 -06:00
phernandez
1fee436bf9
fix: recreate search index on db reset
2025-02-07 17:22:34 -06:00
phernandez
5e501b5440
fix sync
2025-02-05 23:05:15 -06:00
phernandez
135bec181d
fix: fix permalink uniqueness violations on create/update/sync
2025-02-04 16:43:18 -06:00
phernandez
b7b69ecd84
revert changes
2025-02-02 19:22:33 -06:00
phernandez
4afa368a6b
finish watch_service.py
2025-02-02 19:08:31 -06:00