Skip to content

Improve macOS DMG drag installation - #23

Merged
shaohaozhi286 merged 1 commit into
masterfrom
codex/macos-dmg-drag-layout
Aug 7, 2026
Merged

Improve macOS DMG drag installation#23
shaohaozhi286 merged 1 commit into
masterfrom
codex/macos-dmg-drag-layout

Conversation

@shaohaozhi286

Copy link
Copy Markdown
Collaborator

What changed

  • style the macOS DMG as a branded left-to-right drag window
  • keep the right-hand target as a signed current-user installer that writes only to ~/Applications/ACECode.app
  • accept Finder drops only for the sibling ACECode.app, while preserving double-click installation
  • generate a distinct installer ICNS from an editable SVG and add a custom mounted-volume icon
  • build a writable intermediate image, persist Finder layout metadata, then convert and verify read-only UDZO output
  • add portable contract coverage for layout assets, drag metadata, and no-admin constraints

Why

A conventional /Applications alias can require administrator access and violates ACECode's user-scoped installation contract. This keeps the familiar drag gesture while routing it through the existing safe installer.

Verification

  • cmake --build build/macos-x64-desktop-release --target acecode-user-installer acecode-desktop --parallel 4
  • bash tests/scripts/macos_dmg_layout_test.sh
  • bash tests/scripts/macos_release_scripts_test.sh
  • acecode_unit_tests --gtest_filter='UserInstallPolicy.*' (6 passed)
  • npx --no-install openspec validate improve-macos-dmg-drag-install --strict
  • locally created, verified, mounted, and visually inspected the DMG
  • confirmed .DS_Store, branded background, installer icon, and volume icon are present
  • confirmed the image contains no /Applications link

@shaohaozhi286
shaohaozhi286 merged commit 9218667 into master Aug 7, 2026
8 of 29 checks passed
@shaohaozhi286
shaohaozhi286 deleted the codex/macos-dmg-drag-layout branch August 8, 2026 10:44
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