Release v1.0.4 — Full Disk Access UI fix#25
Merged
Conversation
- pyproject.toml, icloudphotonator/__init__.py, ui/app.py: 1.0.2 → 1.0.3 - CHANGELOG.md: add [1.0.3] — 2026-05-15 entry consolidating Unreleased items (log-tail in FullDiskAccessDialog, RELEASE_ID auto-detect) plus the production-stability fixes (importer success accounting, subprocess killpg, volume watchdog + caffeinate, DMG/ translocation detection, Photos.app warm-up 600s, PyInstaller --run-osxphotos dispatch, osxphotos>=0.75.6 pin). - tests/test_basic.py, tests/test_cli.py: update pinned version strings. - uv.lock: project version synced. Tests: 263 passed.
Step 8 (cleanup) previously deleted the DMG unconditionally, even on --skip-upload runs intended for local testing. Now skips cleanup when SKIP_UPLOAD=1 so the signed DMG remains in dist/ for smoke-testing.
Spec was still on 1.0.2, causing built .app bundle Info.plist to report the wrong CFBundleShortVersionString/CFBundleVersion. Other 1.0.3 bumps (pyproject.toml, __init__.py) landed in bf887ea but the PyInstaller spec was missed.
- Add 6 NS*UsageDescription keys to Info.plist so System Settings → Privacy & Security → Full Disk Access can render an entry for the bundle on macOS Tahoe (matches FDA-visible reference apps). - Add _early_fda_registration_probe() that performs an os.open(2) on TCC-protected paths (~/Library/Safari/Bookmarks.plist + fallbacks) before any subprocess or AppleEvent is launched. This stages the TCC record against com.hanselstner.icloudphotonator instead of any parent terminal during dev launches. - Probe is gated to skip when sys.argv[0] == 'osxphotos' (defensive, since the argv-marker block at the top of __main__.py already calls sys.exit before reaching __main__). - Add 3 mocked unit tests covering: permission-error skip, first-success short-circuit, all-paths-missing clean return. Agent-Id: agent-fb906285-3d20-4d80-95de-941334ca805f
Bumps APP_VERSION (spec), project version (pyproject), and adds a 1.0.4 entry to CHANGELOG.md covering the FDA UI registration fix (NS*UsageDescription keys + early TCC attribution probe). Agent-Id: agent-fb906285-3d20-4d80-95de-941334ca805f
Agent-Id: agent-fb906285-3d20-4d80-95de-941334ca805f Linked-Note-Id: 94cdaa1d-0275-4ba2-943d-d50abd230c0b
Replace hdiutil-only DMG creation with dmgbuild for a proper macOS installer layout: Finder window shows the app icon on the left, an Applications symlink on the right, and dmgbuild's builtin-arrow background between them. Changes: - pyproject.toml + uv.lock: add dmgbuild>=1.6.7 as dev dependency (pulls in ds-store transitively). - scripts/dmg_settings.py: dmgbuild settings file with icon_locations, window_rect, builtin-arrow background, /Applications symlink. Volume name is supplied via CLI arg (not hardcoded). - scripts/build_release.sh Step 5: replace with . Signing/notarize/staple steps unchanged. Verified for v1.0.4: - Notarization Submission ID 7602a587-e99c-4beb-89de-4bc82b49cf37 Accepted - xcrun stapler validate: worked - spctl --assess: accepted (Notarized Developer ID) - Mount shows iCloudPhotonator.app + Applications -> /Applications, .DS_Store (16388 B), .background.tiff (26264 B), .VolumeIcon.icns Agent-Id: agent-779be147-a582-4586-8790-1580551f324f
Required by scripts/dmg_settings.py / scripts/build_release.sh Step 5. uv add --dev dmgbuild → dmgbuild 1.6.7 (+ ds-store 1.3.2 transitively). Agent-Id: agent-779be147-a582-4586-8790-1580551f324f
Agent-Id: agent-779be147-a582-4586-8790-1580551f324f
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release v1.0.4 — Full Disk Access UI fix
Fixes the macOS Tahoe FDA-pane visibility issue where the app was registered in TCC.db but invisible in System Settings → Privacy & Security → Full Disk Access.
Fixed
open(2)against~/Library/Safari/Bookmarks.plist+ fallbacks) that runs in the bundle process before any subprocess. Guarantees the TCC record is staged against the bundle identity, not the parent terminal.Build
dmgbuild(App + /Applications symlink + builtin-arrow background).dmgbuildas dev dependency.Tests
Notarization
7602a587-e99c-4beb-89de-4bc82b49cf37, Accepted), stapled, spctl accepted. Hardened runtime intact.