Skip to content

Add reviewed AppleDouble exclusions to transfers - #17

Merged
mikecerisano merged 1 commit into
mainfrom
fix/issue16-appledouble
Oct 10, 2026
Merged

mikecerisano merged 1 commit into
mainfrom
fix/issue16-appledouble

Conversation

@mikecerisano

Copy link
Copy Markdown
Collaborator

Fresh exFAT copies can acquire a macOS-generated AppleDouble companion whose bytes differ from the source. BitMatch correctly refuses to overwrite it, but that can leave a metadata conflict even when the media matches.

Adds Advanced → Exclude AppleDouble companion files, off by default, on Mac, iPad and iPhone. The preview checks bounded, paired AppleDouble v2 containers and lists exclusions before Start; the engine rechecks that exact list before writing. Ordinary ._ files, truncated fixed-size metadata, data-fork entries and unknown containers remain selected.

The full source inventory stays separate from the selected copy/verification set. Queue settings and history retain the policy and exclusion rows; PDF/CSV/JSON reports describe the omissions. Selected files retain independent readback and truthful progress. ASC MHL inventories cover the selected files and never replace existing histories. A filtered transfer cannot earn a whole-card safe-to-erase verdict. Diagnostics add only a count, without filenames or paths.

Validated locally:

  • 54 real-driver transfers across APFS/HFS+/exFAT, with two destinations, first/repeated copies, genuine metadata conflicts and filtered copies. Selected destination hashes and unchanged source contents/paths/mtime checked.
  • Actual Standard → ASC MHL handoff, including exFAT rereads; repeated histories retained byte for byte.
  • Engine: 121 XCTest cases (15 skipped), plus 132 Swift Testing cases; zero failures.
  • Mac: 1,069 passed, 7 skipped, zero failures, including queued-policy isolation, cancellation and reports.
  • iOS: 49 passed, zero failures on iPad Air 11-inch (M4), iOS 26.5 simulator. Mac/phone/narrow-iPad controls rendered and inspected.
  • Mac/iOS builds and git diff --check pass. All source changes rebuilt by the final app test runs.

See the investigation and validation notes. One earlier disposable-image teardown was busy; it was detached normally and removed, and the complete engine suite then passed independently. This is filesystem-driver and seeded UI coverage, not a physical-device walkthrough or proof of the reporter's exact cause.

Refs #16. Keep the issue open pending diagnostics and a reporter retest. No merge or release is included.

@mikecerisano
mikecerisano marked this pull request as ready for review October 10, 2026 14:54
@mikecerisano
mikecerisano merged commit 9ca70c9 into main Oct 10, 2026
2 of 6 checks passed
@mikecerisano
mikecerisano deleted the fix/issue16-appledouble branch October 10, 2026 14:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant