Skip to content

fix(ios): zip interoperability for server-side unzippers (#367) - #371

Draft
plrthink wants to merge 10 commits into
masterfrom
cursor/ios-zip-compatibility-b7ed
Draft

fix(ios): zip interoperability for server-side unzippers (#367)#371
plrthink wants to merge 10 commits into
masterfrom
cursor/ios-zip-compatibility-b7ed

Conversation

@plrthink

@plrthink plrthink commented Jul 25, 2026

Copy link
Copy Markdown
Collaborator

Summary

Implements #367 (P1): iOS zip interoperability for server-side unzippers.

Includes #369#370 (listContents / selective unzip entries + Maestro E2E, cancel + error codes).

Changes

  • iOS honors STANDARD vs AES for file-array password zips
  • fsync / compression improvements for file arrays
  • scripts/validate-zip-header.js

Stack

Merge order: #369#370this PR#372

Open in Web Open in Cursor 

cursoragent and others added 3 commits July 25, 2026 01:37
Expose listContents, unzipFiles, and unzipFilesWithPassword on iOS and
Android so apps can inspect archives and extract only selected entries
without switching to another library.

Co-authored-by: Perry <plrthink@gmail.com>
Allow aborting in-flight zip/unzip work and reject with consistent
ERR_* codes on iOS and Android, including ERR_CANCELLED.

Co-authored-by: Perry <plrthink@gmail.com>
Honor STANDARD vs AES for file-array password zips, apply compression
levels to file arrays, and fsync output so immediate uploads see full
archives. Add a zip header validation script and README guidance.

Co-authored-by: Perry <plrthink@gmail.com>
cursoragent and others added 4 commits July 25, 2026 01:59
Remove unzipFiles/unzipFilesWithPassword and add an optional entries
argument to unzip and unzipWithPassword instead, matching the existing
zip overload style.

Co-authored-by: Perry <plrthink@gmail.com>
cursoragent and others added 3 commits July 27, 2026 01:33
Add Maestro coverage for listing archive entries, selective unzip via
entries, and password selective unzip. Playground demos now surface
assertable Listed Entries / Selective Extract / Password Selective
Extract results including files that were intentionally skipped.

Co-authored-by: Perry <plrthink@gmail.com>
Remove an extra closing brace left from the selective-extract cherry-pick
that broke Android compilation on stacked PRs. Make the list/selective
Maestro flow assert stable accessibility labels and summary markers.

Co-authored-by: Perry <plrthink@gmail.com>
ZIP_STANDARD_VARIANT_STRONG is write-only in zip4j and fails password
zip create with "encryption method is not supported", breaking Android
E2E password selective extract which uses STANDARD encryption.

Co-authored-by: Perry <plrthink@gmail.com>
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.

2 participants