Repository navigation
Make Dark the default and sync icon choices with Finder - #170
Conversation
|
Review summary Checked the diff against the PR body's stated goal/evidence and against AGENTS.md, docs/ARCHITECTURE.md, SECURITY.md, and CONTEXT.md.
No confirmed code fault found — the change matches its stated goal and the repository's architecture, security, and test rules. The PR body's own disclosed gaps (live Finder cache refresh, Dock picker interaction, update installation, no signed release) are manual checks explicitly called out as not run, not code faults. |
Review summaryChecked this against Architecture/security: No violations found. Entry paths and reverse transitions traced: fresh install (no Finder touch), launch with a saved non-default choice (Finder reapplied), explicit picker selection with Dock icon hidden (Finder still updated), and selecting Dark to clear an override (restores primary icon) — all behave as the PR body describes, and are backed by either the unit tests or the opt-in native integration test. Confirmed issue (1 inline comment): Not flagged (no code fault, for visibility only): the pre-existing |
Review summaryChecked the diff against the stated goal (Dark default, Finder-syncing picker, fresh-install preservation, failure reporting, no elevation/re-signing) and against the architecture, security, and test rules in AGENTS.md/SECURITY.md. The One confirmed issue, left as an inline comment: the new No other confirmed faults found. I didn't attempt to verify the PR's claims about Sparkle 2.9.5's delta-hash/signature-verifier source behavior (external dependency source, not in this diff). |
Review summaryNo confirmed code faults. The diff matches the stated goal and the repository rules I checked it against. Goal vs. diff
Repository rules
Not treated as a confirmed fault (noted for visibility, not flagged inline)
|
Summary
Use the existing Dark artwork as BetterTile's default icon and let the App icon picker update Finder as well as the Dock.
Preserve saved Classic, Ice Blue, and Dark choices. Use public
NSWorkspace.setIconfor Finder. Selecting Dark removes the Finder override and restores the system-rendered primary icon. An explicit selection updates Finder even when the Dock icon is hidden; a saved choice is reapplied on launch. A fresh install leaves external custom icons alone. Settings reports failed Finder writes, including unwritable app locations. No privilege elevation or re-signing is used.Evidence
After: the opt-in native integration test changes a disposable signed app's effective Finder icon through the production
updateFinderIconmethod. Its signedContentsfiles remain identical; ordinary signature verification passes. While the override is active, strict verification must fail with the Finder-metadata diagnostic. Selecting Dark removes the override and restores strict verification.swift test: 1,357 passed; 12 optional native/preview/benchmark tests skipped.BETTERTILE_TEST_FINDER_ICON=1 swift test --filter finderIconChangesPreserveSignedContentsAndRestoreThePrimaryIcon: passed separately on macOS 27.0.1.apply()method with injected preferences, Finder writes, and Dock updates. They cover fresh-install preservation, saved and unknown choices, explicit selections, Finder-before-Dock order, and failed Finder writes. Bypassing fresh-install protection made its regression test fail; restoring the protection passed. Existing tests cover default restoration, both alternate images, missing resources, failed writes, and invalid targets without modifying live apps.CODE_SIGNING_ALLOWED=NO: passed. Their compiled Info.plists identifyAppIconDarkDebugandAppIconDarkas primary icons.--strictfrom that check makes both its status and diagnostic assertions fail. Full suite and app builds above were run before this test/documentation-only follow-up; this follow-up reran the native test and mutation check.git diff --check: passed.Merge Danger
Door: two-way
Selecting Dark clears the runtime override. The default change can be reverted without migrating preferences or artwork.
Blast Radius: appearance
The new local metadata write is disclosed in SECURITY.md and the icon guide. Custom Finder icons add
Icon\rresource data and Finder metadata at the app bundle root. Ordinary validation still passes with signed resources and identity unchanged. Strict verification rejects that metadata while a custom icon is active; clearing the icon restores strict verification. This is an explicit runtime limitation, not a relaxation of release checks.No executable, Info.plist, compiled icon resource, signing identity, release validation, or updater policy is changed. Sparkle 2.9.5's verifier uses ordinary all-architecture signature validation, and its delta hash excludes custom-icon resource data. These source checks do not establish full update compatibility; a signed update remains a manual check. Finder overrides are static images rather than live Icon Composer layers. No dependency, network request, permission, or private API is added.