Releases: qtld88/FilmCan
Releases · qtld88/FilmCan
FilmCan 1.3.1
Security & integrity remediation + dead-code sweep. No new features. Universal (Apple Silicon + Intel), ad-hoc signed.
Security
- Webhook/ntfy: refuse cross-host / https→http redirects so the bearer token & auth headers can't be exfiltrated by an attacker-controlled 30x; ephemeral session, no cookies.
- Keychain: report set failures, set accessibility.
Integrity
- ASC MHL seal failure now surfaced to the operator (non-fatal warning, footage stays verified) instead of being silently swallowed; warnings/errors now log in release builds.
- Encode-all-before-write to avoid truncated config saves; entitlements DOCTYPE repair.
- Orphan-cleaner TOCTOU fix (register temp name before the file exists).
- Failed-dest repair seals a fresh ASC MHL generation (chain of custody) and honors F_FULLFSYNC on exFAT/USB.
- Removed O(N²) per-file manifest flush (checkpoint + seal only).
- Verify: skip dest re-read for skip-policy files (regression fix).
Cleanup
- Removed CustomCopierSupport; slimmed CustomCopierService and CancellationState (dropped dead cancel/pause surface).
- Memory-safe sibling repair (per-chunk autorelease drain).
⚠️ Ad-hoc signed (not notarized): on first launch, right-click the app → Open to bypass Gatekeeper.
Release 1.3.0
FilmCan 1.3.0
Netflix Camera/Sound routing
- Per-source Camera/Sound toggle — click the icon at the top-right of each source card to switch (🎥 →
Camera_Media/, 🔊 →Sound_Media/). Camera and sound back up in one pass; each sound roll gets its ownascmhl/, verify and resume. - Sound auto-detect drive/folder patterns (Options › Sources) — adds and tags matching drives live, mirroring camera detection.
- Editable Camera & Sound folder templates (Options › Destinations › Folder templates).
- Destination Save To path preview reflects the camera/sound tag + shoot metadata.
Hash-list style
- Choose ASC MHL (Netflix-ready, generation chain) vs a simple hidden hash list per backup.
Engine integrity & progress (per-destination resume)
- Per-destination resume: a file is copied only where missing; up-to-date destinations skip it.
- Progress bar spans the whole job (e.g. 30/500 GB on resume, not 0/470).
- Copy bar = bytes actually finalized + current file; on stop it snaps back to what's fully on disk.
- Manifest reflects only what was truly backed up — no phantom entries, no empty
ascmhl/. - Live per-destination failure surfacing (write/verify/corruption flips the card red while others continue).
- Empty shoot-metadata tokens no longer leave stray underscores in folder names.
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+.
Release 1.1.0
- Add webhook notifications (JSON + custom headers)
- Improve notifications + dock badge handling
- Add optional hash verification for FilmCan Engine and better hash list error handling
- Improve progress/preview calculations and surface verification differences
- Harden DMG packaging flow and refresh docs (privacy, AI usage, architecture, QA)
FilmCan v1.0.0 – First Stable Release
FilmCan v1.0.0
First stable release of FilmCan with the custom copy engine and rsync integration.
✨ Highlights
- High-performance copy engine
- Rsync integration for reliable and resumable transfers
- Hash list generation and verification
- Streaming hashing (XXHash) for faster integrity checks
- Multi-destination and multi-origin support
- Transfer history and monitoring
- Improved UI and workflow
📦 Download
Download the .dmg file below and drag FilmCan into your Applications folder.
⚠️ Notes
- macOS only (Apple Silicon + Intel supported)
- First launch may require right-click → Open (Gatekeeper) or System Settings → Privacy & Security → Open Anyway
🧪 Known limitations
- Some advanced rsync options are still experimental
- Edge cases on very large file trees are being refined
🔜 Next
- Performance optimizations
- Improved error handling
- Extended verification options
Feedback and contributions welcome:
https://github.com/qtld88/FilmCan