Skip to content

Releases: mikecerisano/Bitmatch

BitMatch v0.1.3 Beta

Choose a tag to compare

@mikecerisano mikecerisano released this 13 Jul 23:32

BitMatch v0.1.3 Beta

This beta hardens the entire transfer path. Source discovery now fails closed, verification rejects files that change while being read, cancellation owns the exact running operation, and every completion screen and report uses the full authoritative result set.

Download

  • BitMatch-0.1.3.dmg — Developer ID signed, Apple-notarized, and stapled. Requires macOS 15.5 or newer. Supports Apple Silicon (arm64) and Intel (x86_64).
  • iPad build — build from source with Xcode 16 or newer.

What changed

  • Rejects files that grow, shrink, or change identity during checksum and byte verification.
  • Uses one fail-closed source manifest for preflight, copying, verification, and final results.
  • Keeps result delivery ordered and scopes cancellation to the exact active transfer.
  • Reports every issue, including failed sidecars, and calculates metrics from every result.
  • Simplifies transfer setup on Mac and iPad with explicit preflight choices and blockers.
  • Adds deterministic fault injection, seeded soak tests, strict-concurrency builds, and GitHub CI.
  • Removes orphaned operation layers and refreshes the application icon.

Verification

SHA-256: a7f845b016b34d389f084ef2c7fe45681799e84cec13ec2632f25813d6a322e3

The attached BitMatch-0.1.3.dmg.sha256 file contains the same digest. Verify the download:

shasum -a 256 BitMatch-0.1.3.dmg

Validation

  • 215 macOS tests passed; one opt-in soak test skipped
  • Two iPad simulator tests passed
  • macOS and iPad Release builds passed
  • Developer ID signature verified
  • Apple notarization accepted and stapled for the app and DMG
  • Gatekeeper accepted the app and DMG
  • Three seeded multi-destination soak iterations completed with 18 verified outputs each

Beta guidance

Quick mode copies without checksum verification and cannot prove byte-for-byte equality. Test BitMatch with disposable files first. Keep the source card until every destination completes cleanly and you have reviewed the report. Inspect failed files before clearing media, and maintain another independent copy of irreplaceable footage.

BitMatch v0.1.2 Beta

Choose a tag to compare

@mikecerisano mikecerisano released this 02 Jul 01:24

BitMatch v0.1.2 Beta

Safety-focused beta update for verification integrity, recovery, iOS file access, and MHL output.

Download

  • BitMatch-0.1.2.dmg — macOS app, Developer ID signed, Apple-notarized, stapled, universal Apple Silicon + Intel. Requires macOS 15.5+.
  • iPad/iPhone build — build from source for now.

What changed

  • Exported PDF/CSV/JSON reports no longer count checksum or size mismatches as verified matches.
  • Master reports and Compare mode now honor real success/failure outcomes instead of treating failure rows as verified.
  • Copy/verify result rows now upsert atomically, so a late "Copied" row cannot overwrite a checksum mismatch.
  • Checksum reads now surface I/O errors, refuse partial-content checksums if a file shrinks mid-read, and avoid Paranoid byte-compare hangs on truncation.
  • Crash-resume detection now decodes persisted timestamps correctly, tracks total counts, and clears completed operation state.
  • Starting a new transfer clears stale pause state; iOS Compare keeps security-scoped folder access open through verification; the iOS drive picker retains its delegate until selection or cancellation.
  • MHL generation now rejects files outside the destination manifest and writes per-destination MHL files for multi-destination transfers; the unused placeholder-checksum path was removed.
  • Added regression coverage for the report classifier, master-report verified flags, result-row races, truncation handling, crash-resume detection, stale pause flags, iOS Compare scope lifetime, iOS picker delegate retention, and MHL destination integrity.

Verification

SHA-256: 7384e77d0d68ec472915130ccf116270453df0887b465720118c0ded45fcf6da

Verify the download with:

shasum -a 256 BitMatch-0.1.2.dmg

Validation

  • ./test.sh
  • iPad generic Debug build
  • Developer ID archive build
  • App notarization accepted and stapled
  • DMG signed, notarization accepted and stapled
  • Gatekeeper accepted both app and DMG

Still beta: test with throwaway files before trusting irreplaceable footage.

BitMatch v0.1.1 Beta

BitMatch v0.1.1 Beta Pre-release
Pre-release

Choose a tag to compare

@mikecerisano mikecerisano released this 25 May 15:24

BitMatch v0.1.1 Beta

Safety-focused beta update for the first public release.

Download

  • BitMatch-0.1.1.dmg — macOS app, Developer ID signed, Apple-notarized, stapled, universal Apple Silicon + Intel. Requires macOS 15.5+.
  • iPad/iPhone build — build from source for now.

What changed

  • Quick mode no longer reuses existing destination files or pre-counts them as already present. Size and mtime are not proof of equality.
  • Existing destination conflicts remain non-destructive; BitMatch leaves the destination file untouched and reports the conflict.
  • README safety wording now distinguishes checksum-verified reuse from Quick mode.
  • Removed tracked Xcode backup/userdata artifacts and tightened contributor test/release docs.
  • Added regression coverage for same-size/same-mtime destination conflicts.

Verification

SHA-256: 0115757cbb5f16f91d2afa4e577e9d53cd56bb3be83e03e9d130cda386ef9751

Verify the download with:

shasum -a 256 BitMatch-0.1.1.dmg

Validation

  • ./test.sh
  • iPad simulator Debug build
  • Developer ID archive build
  • App notarization accepted and stapled
  • DMG signed, notarization accepted and stapled
  • Gatekeeper accepted both app and DMG

Still beta: test with throwaway files before trusting irreplaceable footage.

v0.1.0 Beta — First public release

Pre-release

Choose a tag to compare

@mikecerisano mikecerisano released this 21 May 20:49

BitMatch v0.1.0 (Beta)

First public release. This is a beta. It works for me, it has tests, but I have not seen every camera, every drive, or every edge case yet. Treat your first few transfers as test runs.

Downloads

  • BitMatch-0.1.0-beta.dmg — macOS app, Apple-notarized, universal (Apple Silicon + Intel). Requires macOS 14+.
  • iPad/iPhone build — build from source for now. App Store submission is on the roadmap.

How to install (macOS)

  1. Download the DMG
  2. Double-click it, drag BitMatch.app to Applications
  3. First launch may take a few seconds (macOS verifying the notarization ticket)

The app is signed with my Developer ID and notarized by Apple, so you should not see "unidentified developer" warnings. If you do, right-click → Open.

⚠️ Caution Notes — Please Read Before Real Use

This is the first public beta. Do not use it as your only copy of irreplaceable footage yet.

  • Test on throwaway files first. Copy a junk folder to two destinations, verify the report, then trust it with real footage.
  • Use Standard mode or higher (SHA-256). Quick mode is fast but only checks size and mtime — not real verification.
  • Keep your original card mounted until you have verified all backups. Don't eject and reformat the card based on a single tool's word until you've shot with this app on a few jobs and trust it.
  • Camera-card detection has only been battle-tested with Sony cards. Canon, ARRI, RED, Blackmagic, Panasonic, Fujifilm, GoPro, DJI, and Insta360 detection is implemented but I have not personally validated every brand. If a folder is misnamed on import, that's a detection bug — please file an issue.
  • iPad version is not in this DMG. Build it yourself from source for now.
  • No auto-update mechanism. Watch this repo or its Releases page for new versions.

What's in this release

  • Multi-destination copy with SHA-256 verification (Standard / Thorough / Paranoid modes)
  • Quick mode (size + mtime only; not recommended for irreplaceable footage)
  • Non-destructive transfer model (writes to temp files, verifies, promotes; never overwrites mismatched destinations)
  • Preflights for unsafe source/dest relationships, duplicate destinations, symlinked roots, nested outputs, case-collision paths
  • Camera detection for Sony, Canon, ARRI, RED, Blackmagic, Panasonic, Fujifilm, GoPro, DJI, Insta360, generic DCIM
  • A/B/C camera autosorting
  • MHL (Media Hash List) generation in Paranoid mode
  • Folder-comparison tool for already-copied footage
  • PDF report generation
  • Hidden files and empty folders are included by default (camera cards often have important sidecar data)

Reporting bugs

Open an issue: https://github.com/mikecerisano/Bitmatch/issues

If a transfer fails verification, please include:

  • Camera/card brand
  • Destination drive type (SSD, HDD, SD card, network)
  • macOS version
  • The generated PDF report (drop the file in the issue)

Verification

SHA-256: ac7cdb18d46c115f1b525b2f1ce63f540dcbfe3fb191e91a98a69a473ee23432

To verify the download you got matches this release:

shasum -a 256 BitMatch-0.1.0-beta.dmg

License

MIT. Use it, fork it, improve it. Don't just rebrand it on the App Store unchanged.