Skip to content

feat: add one-click extraction with safe output collision handling - #2

Merged
n4dh1x merged 11 commits into
mainfrom
feat/one-click-extraction
Oct 21, 2026
Merged

n4dh1x merged 11 commits into
mainfrom
feat/one-click-extraction

Conversation

@n4dh1x

@n4dh1x n4dh1x commented Oct 21, 2026 •

Copy link
Copy Markdown
Owner

What & why

Adds opt-in one-click extraction in Settings → General with three destinations: beside the archive, a fresh folder named after the archive, or a native folder chooser. Recognized files opened from Finder extract without an archive browser; cancellation leaves the archive alone, and split volumes are processed once.

Existing output is preserved. Extraction stages on the destination volume, then moves whole top-level items using numbered names for conflicts (including file/directory conflicts and dangling symlinks). Ordinary browser extraction retains its existing behavior.

Includes the fork's GitHub build/prerelease workflow and generated localization catalog. The feature addresses sarensw#280.

How it was verified

  • Reproduced the collision with both engines before the fix: failing regression run. 7-Zip reported Extraction failed: Failed to create output file; XAD reported Could not create directory (error 16).
  • Normal PR CI passed: 657 tests in 144 suites; direct and App Store schemes compiled and passed architecture checks.
  • The regression passes for both 7-Zip and XAD, preserving existing output and dangling symlinks while byte-comparing new output to the fixture.
  • Ad-hoc universal release build passed all tests, architecture and signature checks; fixed prerelease published. The downloaded ZIP's checksum, integrity, architectures, feature/fix, and fork settings were independently checked.
  • UI evidence attempt: the unchanged upstream baseline timed out querying its accessibility hierarchy. Manual UI verification and before/after screenshots remain incomplete; the upstream PR #359 is a draft with this gap disclosed.

AI disclosure: Codex was the primary author of the implementation, tests, and release setup.

Checklist

@n4dh1x
n4dh1x merged commit d66bfe6 into main Oct 21, 2026
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