wfx
fc73e4b76b
Complete Clean Architecture migration
...
Phase 1-7: Full migration from src/app/ to Clean Architecture
BREAKING CHANGES:
- Removed src/app/ (old TEA-style implementation)
- Removed src/constant.rs (constants now local to modules)
- Removed deprecated canvas_to_image_coords functions
NEW STRUCTURE:
- src/ui/ - UI Layer (COSMIC interface)
- src/application/ - Application Layer (DocumentManager, Commands)
- src/domain/ - Domain Layer (Document types, Operations)
- src/infrastructure/ - Infrastructure Layer (Loaders, Cache, System)
FEATURES:
- DocumentManager as Single Source of Truth
- Command Pattern for all operations
- Model caching for render data (performance)
- Sync mechanism between DocumentManager and UI Model
- Wallpaper support (COSMIC, KDE, GNOME, feh)
- Thumbnail cache with disk persistence
IMPROVEMENTS:
- Warnings: 62 → 43 (-31%)
- Deprecated warnings: 2 → 0 (-100%)
- Code removed: src/app/ (~2000 lines), constant.rs, deprecated functions
- Better Locality of Reference (constants local to modules)
- Clean separation of concerns
- No circular dependencies
DOCUMENTATION:
- Updated AGENTS.md (100% migration status)
- Updated README.md (architecture section)
- Updated Workflow.md
- Added Migration-Plan.md with full completion summary
TESTS:
- All 41 tests passing
- Build successful (0 errors, 43 warnings)
- Release build verified
Migration Status: ✅ 100% Complete
2026-02-03 08:43:21 +01:00
wfx
f8087a3c6a
docs: Traits & Enums comparison - Domain is complete
...
- All app/ traits present in domain/
- Domain has additional features (fine rotation, interpolation)
- RotationMode is more flexible than plain Rotation
- Better error handling in MultiPageThumbnails
- No changes needed - domain version is superior
Refs: Migration Step 1.7
2026-02-02 22:00:37 +01:00
wfx
beab03ccf7
docs: Metadata comparison - no changes needed
...
- Verified BasicMeta, ExifMeta, DocumentMeta are identical
- Domain version is better organized (extract_meta in types)
- from_bytes() is public in domain (vs private in app)
- No consolidation needed
Refs: Migration Step 1.6
2026-02-02 21:59:01 +01:00
wfx
c8545627fa
feat(domain): Add extract_meta() and crop() to PortableDocument
...
- extract_meta(): Extract PDF metadata (page count, dimensions)
- crop(): Render-based crop on current page
- Completes PortableDocument feature parity with app/
Refs: Migration Step 1.4
2026-02-02 21:48:54 +01:00
wfx
5c830d5504
feat(domain): Add extract_meta() and crop() to VectorDocument
...
- extract_meta(): Extract basic metadata (SVG format, native dimensions)
- crop(): Render-based crop on rasterized output
- Completes VectorDocument feature parity with app/
Refs: Migration Step 1.3
2026-02-02 21:46:37 +01:00
wfx
8ff43ea5d7
feat(domain): Add crop_to_image() and extract_meta() to RasterDocument
...
- crop_to_image(): Non-destructive crop returning DynamicImage
- extract_meta(): Extract BasicMeta and EXIF metadata
- Completes migration of RasterDocument features from app/ to domain/
Refs: Migration Step 1.2
2026-02-02 21:45:11 +01:00