fix(macos): prevent corrupted small app icons - #570
Open
LJAYi wants to merge 1 commit into
Open
Conversation
Greptile SummaryThe PR replaces Rust-based ICNS encoding with Apple’s native macOS icon tools to avoid corrupted small icons.
Confidence Score: 5/5The PR appears safe to merge, with no concrete changed-code failures identified. The generated iconset follows Apple’s expected naming and size layout, native-tool failures propagate to callers, and the dependency removals match the deleted Rust encoder implementation.
|
| Filename | Overview |
|---|---|
| xtask/src/commands/macos/bundle.rs | Replaces in-process image resizing and ICNS serialization with temporary iconset generation through native macOS tools; no actionable defect identified. |
| xtask/Cargo.toml | Removes the obsolete direct icns and image dependencies consistently with the implementation change. |
| Cargo.lock | Removes the corresponding dependency entries without introducing or upgrading unrelated packages. |
| crates/openlogi-gui/icon/AppIcon.icns | Regenerates the binary application icon using the new native-tool workflow. |
Reviews (1): Last reviewed commit: "fix(macos): prevent corrupted small app ..." | Re-trigger Greptile
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.
Summary
Fix corrupted OpenLogi artwork in macOS small-icon surfaces such as Login Items.
The Rust
icnsencoder writes the 16×16 and 32×32 images asicp4/icp5PNG chunks. Although the embedded PNG data is valid, macOS decodes those slots as corrupted pixels. Generating the family with Apple’s native tools produces a compatible chunk layout and restores the expected icon.Changes
sipsand encode it withiconutilicnsandimagedependencies fromxtaskAppIcon.icnswithout the problematicicp4/icp5chunksTesting
cargo fmt --all -- --checkcargo xtask macos icnscargo clippy -p xtask --all-targets -- -D warningscargo test -p xtaskcargo clippy --workspace --exclude openlogi-gui --all-targets -- -D warningscargo test --workspace --exclude openlogi-guicargo clippy --workspace --all-targets --features gpui_platform/runtime_shaders -- -D warningscargo test --workspace --features gpui_platform/runtime_shadersiconutiland verified the 16×16 and 32×32 PNGsHardware verification: not performed. This machine has Apple Command Line Tools but cannot run GPUI’s default offline Metal compilation without accepting/configuring the full Xcode toolchain; the supported
runtime_shaderspath passed the full workspace Clippy and test suites.Reproduction