- Add guard checks in AppViewModel to prevent sync when hasFinishedSetup is false
- Share Extension now shows friendly UI when app not configured or session expired
- Check token existence via KeychainHelper instead of attempting API calls
- Improve 401 error messages: "Session expired. Please log in via the Readeck app."
- Replace #if DEBUG with BuildEnvironment.isDebugBuild for runtime checks
- Enable Debug Menu in both DEBUG and TestFlight builds
- Replace print() statements with Logger.sync/Logger.viewModel
Fix custom fonts not displaying in WKWebView by replacing CSS `src: local()`
with `src: url()` using bundle file paths. WKWebView cannot resolve fonts via
local() even when registered in Info.plist UIAppFonts.
Changes:
- Add fontFileNames and cssFontFamily properties to FontFamily enum
- Implement generateFontFaceCSS() helper in WebView.swift and NativeWebView.swift
- Generate @font-face CSS with file:// URLs for all 12 font files
- Fonts are now dynamically loaded from FontFamily enum (single source of truth)
Affected fonts:
- Literata (Regular, Bold)
- Merriweather (Regular, Bold)
- Source Serif 4 (Regular, Bold)
- Lato (Regular, Bold)
- Montserrat (Regular, Bold)
- Source Sans 3 (Regular, Bold)