fix: normalize underscores in memory:// URLs for build_context#329
fix: normalize underscores in memory:// URLs for build_context#329phernandez merged 3 commits intomainfrom
Conversation
|
Claude finished @phernandez's task —— View job PR Review: Underscore Normalization in memory:// URLsReview SummaryThis PR successfully fixes issue #304 by normalizing underscores to hyphens in memory:// URLs. The implementation is clean, well-tested, and follows Basic Memory conventions. I recommend approval with one minor suggestion below. Code Quality & Standards ✅
File:
Testing & Documentation ✅
Test Quality Highlights:
Basic Memory Architecture ✅
Architecture Notes:
Security & Performance ✅
Detailed Code Review
|
…#328) Signed-off-by: phernandez <paul@basicmachines.co> Co-authored-by: Claude <noreply@anthropic.com> Signed-off-by: phernandez <paul@basicmachines.co>
- Convert underscores to hyphens when parsing memory:// URLs to match stored permalinks - Ensures both underscore and hyphenated formats work consistently - Added comprehensive integration tests for underscore normalization Fixes #304 Co-authored-by: Paul Hernandez <phernandez@users.noreply.github.com> Signed-off-by: phernandez <paul@basicmachines.co>
d7b8f37 to
a2e0223
Compare
|
Claude finished @phernandez's task —— View job PR Review Complete ✅I've completed a comprehensive review of this PR against the Basic Memory team checklist. Here's my assessment: ✅ Code Quality & StandardsExcellent adherence to Basic Memory conventions:
Code quality notes:
✅ Testing & DocumentationStrong test coverage:
Test quality highlights:
Documentation:
✅ Basic Memory ArchitectureExcellent architectural alignment:
Architecture notes:
✅ Security & PerformanceNo security concerns:
Performance considerations:
📊 SummaryOverall Assessment: APPROVED ✅ This is a well-crafted fix that addresses issue #304 cleanly and comprehensively. The PR demonstrates:
What I particularly like:
Minor suggestions (non-blocking):
Commit quality:
🔍 Detailed Code ReferencesKey changes:
Tests are currently running - waiting for CI results, but code review is complete. |
- Check for wildcards before normalization to preserve * in patterns - Split on * and normalize each segment separately - Fixed integration tests to use correct relation permalink format (source/relation/target) - Tests now properly validate underscore-to-hyphen normalization in relation searches Signed-off-by: phernandez <paul@basicmachines.co>
|
Claude finished @phernandez's task —— View job PR Review Against Team ChecklistI've completed a thorough review of PR #329 against the Basic Memory team standards. Here are my findings: Tasks
✅ Code Quality & StandardsExcellent adherence to Basic Memory conventions:
Key implementation highlights:
✅ Testing & DocumentationComprehensive test coverage:
Documentation:
Suggestion: Consider adding an inline comment at # Normalize path to match stored permalinks (underscores → hyphens)
# This allows users to query with either part_of or part-of format✅ Basic Memory ArchitectureExcellent architectural alignment:
Architecture highlights:
Bonus improvement: The entity_repository.py simplification (commit 937909f) enhances maintainability:
✅ Security & PerformanceNo security concerns identified:
Performance:
Security note: Normalization before database query is good practice - prevents ambiguity in permalink matching. 📊 Final SummaryOverall Assessment: APPROVED ✅This PR successfully fixes issue #304 with a clean, well-tested implementation. The changes demonstrate:
What I particularly like:
Commit Quality:
CI Status:Tests are currently running. Code review is complete and ready for merge once CI passes. 🔍 Detailed Code ReferencesKey changes:
Test coverage:
|
Comprehensive changelog for v0.15.0 release covering: - Critical permalink collision data loss fix - 10+ bug fixes including #330, #329, #328, #312 - 9 new features including cloud sync and subscription validation - Platform improvements (Python 3.13, Windows, Docker) - Enhanced testing and documentation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: phernandez <paul@basicmachines.co>
Summary
Fixes #304 by normalizing underscores to hyphens in memory:// URLs before searching. This allows users to use either
part_oforpart-offormat in their memory:// URLs and get consistent results.Changes
context_service.pyto normalize paths usinggenerate_permalink()before searchingImplementation
The fix applies the "be generous with what you accept" principle:
part_of [[Target]]in markdownpart-of(normalized)memory://source/part_of/*ormemory://source/part-of/*Testing
New integration tests verify:
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com