Repository navigation
Regenerate app icons from Icon Composer - #1005
Conversation
Store the .icon project file in design/cmux.icon so the icon can be edited in Icon Composer and regenerated from source.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Rate limit exceeded
⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughAdds two new icon asset JSON files (cmux and AppIcon) defining a chevron layer, shadow/translucency, positioning, and platform support; and updates the Xcode project file to reference the new AppIcon asset in resources and project groups. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Greptile SummaryThis PR adds the Apple Icon Composer source project ( Key changes:
Note: Confidence Score: 4/5
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A["design/cmux-icon-chevron.png\n(original source asset)"] -->|"copied into bundle"| B["design/cmux.icon/Assets/\ncmux-icon-chevron 2.png"]
B --> C["design/cmux.icon/icon.json\n(Icon Composer project config)"]
C -->|"open in Icon Composer"| D["Edit & Regenerate Icons"]
D --> E["Exported app icon PNGs\n(no runtime change in this PR)"]
Last reviewed commit: ea55b5c |
| ], | ||
| "squares" : "shared" | ||
| } | ||
| } No newline at end of file |
There was a problem hiding this comment.
The file is missing a trailing newline. Most editors and linters expect files to end with a newline character, and it can create noisy diffs in the future.
| } | |
| } |
Use ictool to render light/dark icon PNGs from the .icon source file with proper macOS padding. Updates AppIcon, AppIcon-Debug (with DEV banner), AppIconLight, and AppIconDark imagesets. Adds AppIcon.icon to the Xcode project as a resource.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ae4983220f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| buildActionMask = 2147483647; | ||
| files = ( | ||
| A5001100 /* Assets.xcassets in Resources */, | ||
| IC000001 /* AppIcon.icon in Resources */, |
There was a problem hiding this comment.
Remove AppIcon.icon from Copy Bundle Resources
Adding AppIcon.icon to the target’s PBXResourcesBuildPhase causes Xcode to copy the raw Icon Composer source folder into every app bundle because this reference is treated as a plain folder resource. This source asset is design-time only, so bundling it provides no runtime value while increasing shipped artifact size (including the large chevron PNG); keep it in the repository if needed, but do not include it in Copy Bundle Resources.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
🧹 Nitpick comments (1)
GhosttyTabs.xcodeproj/project.pbxproj (1)
67-67: Consider not shippingAppIcon.iconin app resources.Line 282 adds the Icon Composer source package to runtime resources. If this is design-time-only source, it unnecessarily increases the app bundle payload. Keeping it in the project tree is enough for editing.
♻️ Suggested pbxproj adjustment
- IC000001 /* AppIcon.icon in Resources */ = {isa = PBXBuildFile; fileRef = IC000002 /* AppIcon.icon */; }; ... - IC000001 /* AppIcon.icon in Resources */,Also applies to: 282-282
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@GhosttyTabs.xcodeproj/project.pbxproj` at line 67, The AppIcon.icon file is being included in the app runtime resources (PBXBuildFile entry IC000001 referencing fileRef IC000002), so remove that PBXBuildFile entry from the Resources build phase (or remove the fileRef from the PBXResourcesBuildPhase) in project.pbxproj so the Icon Composer source is kept in the project but not copied into the app bundle at runtime; locate the PBXBuildFile with reference IC000001 (and the PBXFileReference IC000002) and delete the build file entry or remove its UUID from the Resources build phase list.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@GhosttyTabs.xcodeproj/project.pbxproj`:
- Line 67: The AppIcon.icon file is being included in the app runtime resources
(PBXBuildFile entry IC000001 referencing fileRef IC000002), so remove that
PBXBuildFile entry from the Resources build phase (or remove the fileRef from
the PBXResourcesBuildPhase) in project.pbxproj so the Icon Composer source is
kept in the project but not copied into the app bundle at runtime; locate the
PBXBuildFile with reference IC000001 (and the PBXFileReference IC000002) and
delete the build file entry or remove its UUID from the Resources build phase
list.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 3fbf6206-2053-44b6-8789-3c517707fcdb
⛔ Files ignored due to path filters (33)
AppIcon.icon/Assets/cmux-icon-chevron 2.pngis excluded by!**/*.pngAssets.xcassets/AppIcon-Debug.appiconset/128.pngis excluded by!**/*.pngAssets.xcassets/AppIcon-Debug.appiconset/128@2x.pngis excluded by!**/*.pngAssets.xcassets/AppIcon-Debug.appiconset/16.pngis excluded by!**/*.pngAssets.xcassets/AppIcon-Debug.appiconset/16@2x.pngis excluded by!**/*.pngAssets.xcassets/AppIcon-Debug.appiconset/256.pngis excluded by!**/*.pngAssets.xcassets/AppIcon-Debug.appiconset/256@2x.pngis excluded by!**/*.pngAssets.xcassets/AppIcon-Debug.appiconset/32.pngis excluded by!**/*.pngAssets.xcassets/AppIcon-Debug.appiconset/32@2x.pngis excluded by!**/*.pngAssets.xcassets/AppIcon-Debug.appiconset/512.pngis excluded by!**/*.pngAssets.xcassets/AppIcon-Debug.appiconset/512@2x.pngis excluded by!**/*.pngAssets.xcassets/AppIcon.appiconset/128.pngis excluded by!**/*.pngAssets.xcassets/AppIcon.appiconset/128@2x.pngis excluded by!**/*.pngAssets.xcassets/AppIcon.appiconset/128@2x_dark.pngis excluded by!**/*.pngAssets.xcassets/AppIcon.appiconset/128_dark.pngis excluded by!**/*.pngAssets.xcassets/AppIcon.appiconset/16.pngis excluded by!**/*.pngAssets.xcassets/AppIcon.appiconset/16@2x.pngis excluded by!**/*.pngAssets.xcassets/AppIcon.appiconset/16@2x_dark.pngis excluded by!**/*.pngAssets.xcassets/AppIcon.appiconset/16_dark.pngis excluded by!**/*.pngAssets.xcassets/AppIcon.appiconset/256.pngis excluded by!**/*.pngAssets.xcassets/AppIcon.appiconset/256@2x.pngis excluded by!**/*.pngAssets.xcassets/AppIcon.appiconset/256@2x_dark.pngis excluded by!**/*.pngAssets.xcassets/AppIcon.appiconset/256_dark.pngis excluded by!**/*.pngAssets.xcassets/AppIcon.appiconset/32.pngis excluded by!**/*.pngAssets.xcassets/AppIcon.appiconset/32@2x.pngis excluded by!**/*.pngAssets.xcassets/AppIcon.appiconset/32@2x_dark.pngis excluded by!**/*.pngAssets.xcassets/AppIcon.appiconset/32_dark.pngis excluded by!**/*.pngAssets.xcassets/AppIcon.appiconset/512.pngis excluded by!**/*.pngAssets.xcassets/AppIcon.appiconset/512@2x.pngis excluded by!**/*.pngAssets.xcassets/AppIcon.appiconset/512@2x_dark.pngis excluded by!**/*.pngAssets.xcassets/AppIcon.appiconset/512_dark.pngis excluded by!**/*.pngAssets.xcassets/AppIconDark.imageset/AppIconDark.pngis excluded by!**/*.pngAssets.xcassets/AppIconLight.imageset/AppIconLight.pngis excluded by!**/*.png
📒 Files selected for processing (2)
AppIcon.icon/icon.jsonGhosttyTabs.xcodeproj/project.pbxproj
- Add trailing newline to icon.json files - Remove AppIcon.icon from Copy Bundle Resources (design-time only)
* Add Apple Icon Composer source file Store the .icon project file in design/cmux.icon so the icon can be edited in Icon Composer and regenerated from source. * Regenerate all app icons from Icon Composer Use ictool to render light/dark icon PNGs from the .icon source file with proper macOS padding. Updates AppIcon, AppIcon-Debug (with DEV banner), AppIconLight, and AppIconDark imagesets. Adds AppIcon.icon to the Xcode project as a resource. * Address review: fix trailing newline, remove .icon from bundle - Add trailing newline to icon.json files - Remove AppIcon.icon from Copy Bundle Resources (design-time only)
Summary
design/cmux.iconandAppIcon.icon(Apple Icon Composer project) as the icon source of truthictool(Icon Composer CLI) with proper macOS paddingAppIcon.iconto the Xcode project as a resource for future native.iconsupportTesting
Summary by CodeRabbit