All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
-
Value Objects:
LogseqDirectoryPath- Validated Logseq directory path withpages/andjournals/subdirectoriesImportProgress- Tracks import operation progress (files processed, total files, percentage)
-
Domain Events:
- Import events:
ImportStarted,FileProcessed,ImportCompleted,ImportFailed - Sync events:
SyncStarted,FileCreatedEvent,FileUpdatedEvent,FileDeletedEvent,SyncCompleted
- Import events:
-
Logseq Markdown Parser (
infrastructure/parsers/logseq_markdown.rs):- Async markdown file parsing with Tokio
- Indentation-based hierarchy parsing (tabs or 2-space indents)
- Automatic URL extraction from content
- Page reference (
[[page]]) and tag (#tag) extraction - Converts markdown files to
PageandBlockdomain objects
-
File System Utilities (
infrastructure/file_system/):discover_markdown_files()- Recursively find all.mdfilesdiscover_logseq_files()- Find markdown files inpages/andjournals/directoriesLogseqFileWatcher- Cross-platform file watching with debouncing- Filter to only
.mdfiles in Logseq directories - Event types: Created, Modified, Deleted
-
ImportService (
application/services/import_service.rs):- Import entire Logseq directories
- Bounded concurrency (4-6 files at once, configurable)
- Progress tracking with real-time callbacks
- Graceful error handling (continues on individual file failures)
- Returns
ImportSummarywith statistics
-
SyncService (
application/services/sync_service.rs):- Incremental file synchronization
- 500ms debouncing window (configurable)
- Auto-sync on file changes (create, update, delete)
- Event callbacks for sync operations
- Runs indefinitely watching for changes
notify(6.1) - Cross-platform file system event monitoringnotify-debouncer-mini(0.4) - Event debouncingtokio(1.41) with features: fs, rt-multi-thread, macros, sync, timeserde(1.0) with derive featureserde_json(1.0)thiserror(2.0) - Ergonomic error handlinganyhow(1.0) - Application-level error handlingtracing(0.1) - Structured loggingtracing-subscriber(0.3) with env-filteruuid(1.11) with v4 and serde featurestempfile(3.14) - Dev dependency for tests
- Comprehensive
IMPLEMENTATION.mdwith:- Architecture overview
- Component documentation
- Usage examples
- Testing strategy
- Design decisions
- Future enhancements
- Updated
backend/src/lib.rsto include infrastructure module - Updated
backend/src/application/mod.rsto include services module and re-export types
- Implementation follows simplified DDD architecture suitable for personal projects
- Async/await throughout with Tokio runtime
- Bounded concurrency using
tokio::sync::Semaphore - File system is always the source of truth (no conflict resolution)
- Comprehensive unit tests for all components
- Integration tests ready for implementation
0.1.0 - Initial Release
- Domain layer with Page and Block entities
- Value objects: PageId, BlockId, Url, PageReference, BlockContent, IndentLevel
- Domain events for page and block operations
- Application layer with repository pattern
- Basic use cases: IndexPage, BatchIndexPages, SearchPagesAndBlocks