Skip to content

Fix real-world DMG compatibility and prepare 0.1.7 - #347

Merged
skyswordw merged 1 commit into
mainfrom
codex/dmg-compatibility-corpus
Nov 9, 2026
Merged

skyswordw merged 1 commit into
mainfrom
codex/dmg-compatibility-corpus

Conversation

@skyswordw

@skyswordw skyswordw commented Nov 9, 2026 •

Copy link
Copy Markdown
Member

OpenWhispr and other real DMG installers fell back to ordinary browsing because valid Finder metadata was rejected or unrecognized. Some app bundles also lost safe parent-relative symlinks during extraction, breaking their original signatures. This change restores authored installer layouts and preserves verified contained links, and prepares version 0.1.7.

  • Vendor the pinned MIT DSStore 1.0.0 source with a minimal allocator-size fix: valid 8/16 KiB leaves remain bounded by structural checks and Stow's 4 MiB input limit. Upstream 1.1.0 still contains the incompatible check.
  • Support legacy Finder layout records, root background pictures, cached Applications bookmark files, localized Applications shortcuts, and declared named ICNS companions. Preserve classification across same-byte rebuilds and refresh it on reload; bind checksum results to the originating archive.
  • Restore refused links only after matching unique archive entries and bounded target bytes, including APFS's terminal NUL. Require an unchanged private staging root, safe directory handles, owned empty placeholders, and contained target chains. Reject escapes, cycles, collisions and ambiguous files. Both existing audits remain enabled.
  • Add a self-generated realistic DMG fixture, signed-app XPC installation regression, hostile-link tests, and an opt-in private corpus runner. Third-party installer payloads are not committed.

Validation:

  • Final GitHub CI: 861 tests passed, zero failures/skips; localization and generated-plist checks passed. Universal 2 and release-package dry runs also passed. Local suite: 860 tests before the final literal-path regression; isolated engine suite: 12 functions passed.
  • All 170 upstream DSStore tests passed.
  • All 35 supplied DMGs passed final XPC listing, metadata/layout/icon assertions and complete payload staging: 30 canvases, 28 picture backgrounds, zero removed payload items/links. 33 of 34 app bundles retain valid strict nested signatures; Antigravity Tools has the same independently verified unsealed linker-ad-hoc signature in its source image. The remaining image contains a package, staged without execution.
  • Native AX/screenshot checks: OpenWhispr in Browser and Glance, Steam bookmark destination, ArcZip legacy layout and named icon. No third-party app launched or installed.
  • Simplified Chinese localization, generated plists and diff checks passed.

Codex owns this functional compatibility/security work. Claude Code retains UI visual and motion ownership; no redesign or new visual acceptance is claimed. Full VoiceOver acceptance remains deferred under #93. The corpus has no encrypted DMGs and does not establish universal DMG support. Details: Handoff/dmg-corpus-compatibility-2026-11-08.md.

@skyswordw
skyswordw merged commit e3cd146 into main Nov 9, 2026
4 checks passed
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