Release 1.2.0
FilmCan 1.2.0 (build 22) — a major reliability, speed, and verification overhaul built on the new fan-out copy engine.
New copy engine (FilmCan Engine)
- Single-pass fan-out: read each source once, broadcast to N destinations in parallel (one bounded channel per dest)
- Multi-source and directory sources via race-safe enumeration
- rsync retired from the UI — the FilmCan Engine now handles every backup (no Homebrew dependency)
- Per-destination MHL hash lists (atomic write, XML-escaped, partial/seal markers)
Reliability
- Stop actually stops — cooperative cancellation; no half-written final files left behind
- Disk-space pre-flight per destination before touching any file
- 1s settle delay before paranoid verify on F_FULLFSYNC drives (exFAT/SD) to prevent false hash mismatches
- exFAT / F_FULLFSYNC warning banner
- Sibling repair: retry a failed destination from a healthy sibling, one click
- Correct per-destination history (✓/✗ exploded per dest), fixed verify-path mismatches and MHL aggregation races
Speed & memory
- Bounded memory: F_NOCACHE on read/write + autorelease draining in verify (paranoid runs went from >15–30 GB down to a small bounded footprint)
- Throttled progress emits (was flooding the main thread)
- Verify pipelined behind copy — verification of one file overlaps the next file's copy
- Smart parallel/sequential copy mode (Automatic / Parallel / Sequential)
Verification
- Off / Fast / Paranoid picker — Fast is the new default for new projects
- Fast = checks the hash computed during copy; Paranoid = re-reads both source and dest from disk
Progress & ETA
- Finder-grade windowed combined-throughput ETA — stable, honest speed/time remaining
- Two-color copy/verify progress bar inside each destination card, with speed, ETA, current file and per-dest status
Resume
- Resume skip — re-running skips files already backed up to every destination and still present on disk; only the rest copies ("N files already backed up")
- Presence check (a file deleted from a destination is re-copied) and a Force re-copy override
- Re-running a fully-present backup shows an Already backed up popup instead of a new history card
UI & polish
- Settings card restyled with a darker, distinct grey
- Full-frame app icon (edge-to-edge)
- Destination capacity bar: free space light, occupied dark (was inverted), order occupied · backup · free
- Destinations options tab no longer lags on open/close
Build
- Universal (arm64 + x86_64), signed
- Hardened DMG packaging (reliable background art)
macOS 13+.