phernandez
373893a7ee
fix: restore API backward compatibility for v0.18.x clients ( #638 )
...
v0.18.5 clients (homebrew) fail against v0.19.0 servers because:
- `entity_type` was renamed to `note_type` in EntityResponse
- 13 fields gained `Field(exclude=True)` and vanished from JSON
🔧 EntityResponse: add `entity_type` computed_field mirroring `note_type`
🔧 memory.py: remove `exclude=True` from 13 fields across EntitySummary,
RelationSummary, ObservationSummary, and MemoryMetadata
🔧 Add v0.18 backward-compat contract tests
Closes #638
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2026-03-01 12:08:25 -06:00
Paul Hernandez
e97eafa55a
fix: build_context related_results schema validation failure ( #631 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-27 12:30:44 -06:00
Paul Hernandez
c44291830c
chore: rename entity_type to note_type ( #600 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-22 20:28:57 -06:00
jope-bm
deef89a724
feat: Add display_name and is_private to ProjectItem ( #574 )
...
Signed-off-by: Joe P <joe@basicmemory.com >
Signed-off-by: phernandez <paul@basicmachines.co >
Signed-off-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: Paul Hernandez <60959+phernandez@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 >
Co-authored-by: jope-bm <jope-bm@users.noreply.github.com >
2026-02-20 01:44:07 -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
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
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
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
Paul Hernandez
537e58ad7d
fix: make RelationResponse.from_id optional to handle null permalinks ( #484 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-30 08:12:29 -06:00
phernandez
45d6caf723
fix: remove MaxLen constraint from observation content
...
The API Pydantic schema had a MaxLen(1000) constraint on observation
content while the database uses SQLAlchemy's Text type (unlimited).
This mismatch caused validation errors when observations exceeded
1000 characters (e.g., JSON schemas with 1458+ chars).
Removed the MaxLen constraint to match the DB schema. Retained:
- BeforeValidator(str.strip) for whitespace cleaning
- MinLen(1) to ensure non-empty content
Added comprehensive tests to verify:
- Long content (10K+ chars) is accepted
- Very long content (50K+ chars) is accepted
- Empty/whitespace-only content is still rejected
- Whitespace stripping still works
Fixes #385
🤖 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:41:28 -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
Drew Cain
0ba6f219f1
fix: Windows CLI Unicode encoding errors ( #411 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Signed-off-by: Claude <noreply@anthropic.com >
Signed-off-by: Paul Hernandez <60959+phernandez@users.noreply.github.com >
Co-authored-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: Paul Hernandez <60959+phernandez@users.noreply.github.com >
2025-11-02 10:20:48 -06:00
Paul Hernandez
a7bf42ef49
fix: Add proper datetime JSON schema format annotations for MCP validation ( #312 )
...
Signed-off-by: Claude Code <noreply@anthropic.com >
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 >
2025-10-03 22:47:02 -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
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
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
Brandon Mayes
17b929446a
fix: Sanitize folder names and properly join paths ( #292 )
2025-09-15 23:26:56 -04:00
Paul Hernandez
b00e4ff5a1
fix: replace deprecated json_encoders with Pydantic V2 field serializers ( #295 )
...
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Paul Hernandez <phernandez@users.noreply.github.com >
2025-09-14 22:19:16 -05: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
jope-bm
cd7cee650f
fix: complete project management special character support ( #272 ) ( #279 )
...
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 >
Co-authored-by: Claude <noreply@anthropic.com >
2025-08-29 10:57:13 -06:00
jope-bm
7aff836c57
fix: Add ISO datetime serialization to MCP schema models ( #270 )
...
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 >
Co-authored-by: Claude <noreply@anthropic.com >
2025-08-23 07:23:07 -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
2aca19aa05
chore: apply ruff formatting
2025-07-01 22:05:17 -05:00
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
phernandez
117fa44ecf
fix project info stats tests
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-05 15:51:11 -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
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
github-actions[bot]
9d581cee13
fix: [BUG] Cursor has errors calling search tool ( #78 )
2025-04-05 19:12:23 -05:00
Paul Hernandez
90d5754180
feat: Implement boolean search ( #18 )
2025-03-05 20:57:12 -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
093dab5f03
feat: Add enhanced prompts and resources ( #15 )
...
## Summary
- Add comprehensive documentation to all MCP prompt modules
- Enhance search prompt with detailed contextual output formatting
- Implement consistent logging and docstring patterns across prompt
utilities
- Fix type checking in prompt modules
## Prompts Added/Enhanced
- `search.py`: New formatted output with relevance scores, excerpts, and
next steps
- `recent_activity.py`: Enhanced with better metadata handling and
documentation
- `continue_conversation.py`: Improved context management
## Resources Added/Enhanced
- `ai_assistant_guide`: Resource with description to give to LLM to
understand how to use the tools
## Technical improvements
- Added detailed docstrings to all prompt modules explaining their
purpose and usage
- Enhanced the search prompt with rich contextual output that helps LLMs
understand results
- Created a consistent pattern for formatting output across prompts
- Improved error handling in metadata extraction
- Standardized import organization and naming conventions
- Fixed various type checking issues across the codebase
This PR is part of our ongoing effort to improve the MCP's interaction
quality with LLMs, making the system more helpful and intuitive for AI
assistants to navigate knowledge bases.
🤖 Generated with [Claude Code](https://claude.ai/code )
---------
Co-authored-by: phernandez <phernandez@basicmachines.co >
2025-02-27 20:48:56 -06:00
Paul Hernandez
0d7b0b3d7e
feat: Add new canvas tool to create json canvas files in obsidian. ( #14 )
...
Add new `canvas` tool to create json canvas files in obsidian.
---------
Co-authored-by: phernandez <phernandez@basicmachines.co >
2025-02-25 21:21:05 -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
0123544556
feat: add pagination to build_context and recent_activity
2025-02-18 20:22:35 -06:00
Paul Hernandez
39bd5ca08f
fix: Re do enhanced read note format ( #10 )
...
Co-authored-by: phernandez <phernandez@basicmachines.co >
2025-02-17 18:47:59 -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
3199ab0217
simplify MemoryUrl to be validated string
2025-02-01 13:42:48 -06:00
phernandez
eafe563cfa
add title/folder to EntitySchema
2025-01-31 19:29:16 -06:00
phernandez
835061a938
refactor entity_service to use file/markdown
2025-01-30 16:11:30 -05:00
phernandez
c2aa947be9
remove observation, relation services
2025-01-27 17:01:34 -06:00
phernandez
deb52a71d9
remove observations from entity create
2025-01-26 22:30:09 -06:00
phernandez
18bd850019
fix updates and save content. remove entity.summary
2025-01-26 00:00:37 -06:00
phernandez
ac8db0e7c5
remove project logic from MemoryUrl
2025-01-21 16:24:15 -06:00
phernandez
14f520c272
remove activity router, replace with memory/recent
2025-01-20 15:35:08 -06:00
phernandez
32606d771d
fix tests for context and permalinks
2025-01-18 23:54:28 -06:00
phernandez
7322bb5350
refactor tools, remove BasicMemoryServer, update mcp sdk
2025-01-18 18:48:22 -06:00