- Guard against multiple concurrent completion timers in sync state handling
- Only trigger completion timer when transitioning from actual syncing state
- Remove debug logging that impacted performance during scroll operations
This resolves scroll performance issues introduced by excessive timer creation
in the offline bookmark synchronization workflow.
- Replace multiple boolean properties with single OfflineBookmarkSyncState enum
- Add Use Case pattern for OfflineSyncManager with dependency injection
- Simplify LocalBookmarksSyncView using state-driven UI with external bindings
- Convert OfflineBookmarksViewModel to use @Observable instead of ObservableObject
- Move credentials from Core Data to Keychain for better persistence
- Implement comprehensive database migration for App Group containers
- Add structured logging throughout sync operations and API calls
Architecture improvements follow MVVM principles with clean separation of concerns.