Version 0.4.3
Mobile Study Mode now renders rich text • Faster, safer card moves with NSFileCoordinator • Smoother Card Controls with no modal flicker
0.4.3 · macOS, iOS
New Features
Rich Text in Mobile Study Mode (macOS & iOS)
Formatted text created in the desktop Card Editor now renders faithfully on iPhone:
- ProseMirror Parsing on iOS: Study Mode parses the same ProseMirror JSON written by the desktop Card Editor, preserving bold, italic, lists, alignment, colors, and fonts
- New
richContentField: Card text elements now carry a structuredrichContentpayload alongside plain text, so both apps render from a single source of truth
Improvements
Card Controls Stability (macOS)
Moving, duplicating, and deleting cards in Card Controls is noticeably smoother:
- Coordinated File Moves: Card moves between decks now go through macOS
NSFileCoordinator, so iCloud sees a proper atomic move instead of a copy-then-delete race — faster on large decks and safer when iCloud Drive is mid-sync - Post-Move Verification: After a move completes, the backend verifies the card actually landed in the destination before updating the UI, catching edge cases where iCloud would otherwise report success prematurely
- Silent Refresh (No Modal Flicker): Card Controls refreshes its state after card operations without re-mounting the modal, eliminating the brief flash that sometimes occurred after move or delete operations
- Pending Operation Tracking: The Card Controls store now tracks in-flight operations and debounces refreshes, preventing duplicate updates when multiple cards are moved in quick succession
iCloud Sync Robustness (macOS)
The iCloud migration and sync pipeline handles edge cases more gracefully:
- Pre-Migration Conflict Consolidation: Before migrating a local library into iCloud, existing conflict artifacts are consolidated so they don’t multiply during the move
- Startup Artifact Sweep: On launch, the app sweeps for leftover iCloud conflict artifacts from prior sessions and cleans them up before the library loads
- Sharper Conflict Detection: The backend’s conflict-detection pass is more precise about what counts as a real conflict versus a transient sync state, reducing false positives
- File Manager Refactor: Internal file-management and conflict-handling code reorganized for clearer ownership and easier future changes
Mobile App Polish (iOS)
- Dynamic Sync Status: Profile now shows live iCloud sync state, including an explicit “iCloud unavailable” indicator when the container can’t be reached
- Dynamic Version Display: Profile reads app version and build from the bundle instead of a hardcoded string, so it stays correct across releases
- Working External Links: Fixed missing URLs on external links in Profile and Settings
Technical Updates
- Replaced
bump-version.cjswithbump-and-commit.cjs, which atomically updates version files, syncsCargo.lock, commits, and tags — preventing the tag-before-commit bug that previously pointed release tags at pre-bump commits - Added
docs/data/to.gitignorefor per-session data model update notes
Feedback
Found a bug or have a feature request? We’d love to hear from you:
- Report issues on our Contribute page
- Email us at support@supercards.io
Thank you for using SuperCards!