Skip to content

ios: add minimal launch screen - #10621

Merged
azooz2003-bit merged 3 commits into
mainfrom
feat-ios-launch-screen
Aug 24, 2026
Merged

azooz2003-bit merged 3 commits into
mainfrom
feat-ios-launch-screen

Conversation

@azooz2003-bit

@azooz2003-bit azooz2003-bit commented Aug 24, 2026 •

Copy link
Copy Markdown
Collaborator

Cold launch previously showed a bare blank system-background screen (empty UILaunchScreen dict). This declares a minimal static launch screen: the cmux chevron mark (34x48pt) centered on a LaunchBackground color that matches the first screen's plain systemBackground (white in light, black in dark).

The mark is rendered from the canonical brand chevron in web/public/cmux-icon.svg (gradient #12c7f5 -> #2d8cff -> #6c5cff). The first cut used the app-bundled CmuxLogo raster, whose gradient is noticeably more purple than the brand mark on cmux.com; that asset (still used by the sign-in header) remains off-brand and is a candidate for a separate alignment PR.

HIG check: followed the Launching page (https://developer.apple.com/design/human-interface-guidelines/launching). The launch screen is static with no text, matches the device appearance mode, and matches the first screen's solid background. The HIG discourages standalone branding; the mark is small, and the sign-in first screen already shows the same chevron in its brand header.

Localization audit: no user-facing strings added (launch screens cannot carry localized text, which is why there is no text).

No pbxproj changes; the new colorset and imageset live inside the already-referenced ios/cmux/Assets.xcassets.

🤖 Generated with Claude Code

Declare UIColorName + UIImageName in the UILaunchScreen dict so cold
launch shows the cmux mark centered on a systemBackground-matching
adaptive color instead of a bare blank screen. Assets: LaunchBackground
colorset (white/black) and LaunchLogo imageset (36x48pt mark at
1x/2x/3x, cut from the existing CmuxLogo art). Static, no text, per the
HIG Launching guidance.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 24, 2026 •

Copy link
Copy Markdown

Review Change Stack

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (3)
  • ios/cmux/Assets.xcassets/LaunchLogo.imageset/LaunchLogo.png is excluded by !**/*.png
  • ios/cmux/Assets.xcassets/LaunchLogo.imageset/LaunchLogo@2x.png is excluded by !**/*.png
  • ios/cmux/Assets.xcassets/LaunchLogo.imageset/LaunchLogo@3x.png is excluded by !**/*.png

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 6d6b3fc4-240d-4e8c-8764-0867a9b61a4b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 923fea3d-1077-4653-8816-d1796f67ce77

📥 Commits

Reviewing files that changed from the base of the PR and between 24659c4 and 775cd1a.

⛔ Files ignored due to path filters (3)
  • ios/cmux/Assets.xcassets/LaunchLogo.imageset/LaunchLogo.png is excluded by !**/*.png
  • ios/cmux/Assets.xcassets/LaunchLogo.imageset/LaunchLogo@2x.png is excluded by !**/*.png
  • ios/cmux/Assets.xcassets/LaunchLogo.imageset/LaunchLogo@3x.png is excluded by !**/*.png
📒 Files selected for processing (3)
  • ios/Config/Info.plist
  • ios/cmux/Assets.xcassets/LaunchBackground.colorset/Contents.json
  • ios/cmux/Assets.xcassets/LaunchLogo.imageset/Contents.json

Included review availability: Your plan provides up to 10 included reviews per hour; 6 remain after this review.


📝 Walkthrough

Walkthrough

The iOS launch screen now references an adaptive light/dark background color and a logo image set. The asset catalog includes metadata for the background and universal 1x, 2x, and 3x logo assets.

Changes

iOS launch screen

Layer / File(s) Summary
Launch screen assets and wiring
ios/Config/Info.plist, ios/cmux/Assets.xcassets/LaunchBackground.colorset/Contents.json, ios/cmux/Assets.xcassets/LaunchLogo.imageset/Contents.json
UILaunchScreen references LaunchBackground and LaunchLogo. The color asset defines white for light mode and black for dark mode. The image set defines universal 1x, 2x, and 3x logo assets.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Merge Risk: ⚪ Minimal · up to 775cd

The PR adds a static branded launch screen with adaptive background colors and introduces no user-facing text or localization changes; no actionable merge-blocking risk remains.

Suggested reviewers: lawrencecchen

🚥 Pre-merge checks | ✅ 24 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description explains what changed and why, but omits the required Testing, Demo Video, Review Trigger, and Checklist sections. Add the missing template sections, document test results and manual verification, include a demo video or attachment, and complete the checklist.
✅ Passed checks (24 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (3 skipped: 3 unsupported.)
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Cmux Swift Actor Isolation ✅ Passed The PR changes only Info.plist and asset-catalog files; the verified commit diff contains no .swift paths, so it introduces no Swift actor-isolation issue.
Cmux Swift Blocking Runtime ✅ Passed The PR diff changes only Info.plist and asset-catalog files; it introduces no Swift files or blocking/timing synchronization APIs.
Cmux Browser Automation Off-Main ✅ Passed The PR diff contains only iOS launch-screen plist and asset files; it changes no browser automation, worker router, policy, or policy-test paths.
Cmux Expensive Synchronous Load ✅ Passed The PR changes only Info.plist and launch-screen asset files; the parent diff contains no Swift changes or expensive synchronous agent-history loads.
Cmux Cache Substitution Correctness ✅ Passed The pull-request diff changes only Info.plist, asset-catalog JSON, and PNG files; it introduces no production Swift, TypeScript, or JavaScript cache substitution.
Cmux No Hacky Sleeps ✅ Passed The PR diff contains only Info.plist and Xcode asset catalog JSON/PNG files; it introduces no TypeScript, JavaScript, shell, build/runtime script, or timing delay.
Cmux Algorithmic Complexity ✅ Passed The diff adds only Info.plist metadata, asset JSON, and PNG files; it changes no production Swift, TypeScript, JavaScript, or shell code covered by the complexity rule.
Cmux Swift Concurrency ✅ Passed The parent-to-HEAD diff changes only Info.plist and asset files. It contains no Swift paths or new concurrency constructs, so this check is inapplicable.
Cmux Swift @Concurrent ✅ Passed The diff contains only Info.plist, asset JSON, and PNG files; it contains no Swift paths or async/concurrency changes, so this check is inapplicable.
Cmux Swift Package Boundaries ✅ Passed The PR diff contains only Info.plist, asset JSON, and PNG files; it introduces no production Swift or SwiftPM target changes covered by this check.
Cmux Swiftpm Lockfiles ✅ Passed The PR diff only changes ios/Config/Info.plist and adds launch assets; it changes no Package.swift, Package.resolved, .gitignore, workflow, or Xcode project package references.
Cmux Swift Logging ✅ Passed The PR diff changes only Info.plist and asset files. It adds no Swift/runtime files or logging statements.
Cmux User-Facing Error Privacy ✅ Passed The diff only adds static launch-screen configuration and image/color assets; it adds no user-facing errors, alerts, output, recovery copy, or sensitive diagnostics.
Cmux Full Internationalization ✅ Passed The diff adds only launch-screen asset/config identifiers and a developer comment; it adds no user-facing text or localization keys, and no catalogs or locale entries require updates.
Cmux Swiftui State Layout ✅ Passed The PR diff contains only Info.plist, asset JSON, and PNG files. It adds no SwiftUI source or state/layout constructs, so this check is inapplicable.
Cmux Architecture Rethink ✅ Passed The diff contains only Info.plist and asset-catalog changes; it introduces no Swift code, lifecycle owner, timing repair, observer, side channel, or duplicate entrypoint wiring.
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed The PR diff changes only ios/Config/Info.plist and asset-catalog files; it adds no Swift window code or close-shortcut behavior covered by the rule.
Cmux Source Artifacts ✅ Passed The diff adds only Info.plist launch-screen configuration and small LaunchBackground/LaunchLogo asset-catalog files, including 36x48, 72x96, and 108x144 PNGs; no scratch or generated artifact paths...
Cmux No Test Or Debug Seam In Production Source ✅ Passed The PR diff contains only Info.plist, JSON asset metadata, and PNG files; it adds or changes no Swift file under a production Sources path.
Cmux No Ambient Global State ✅ Passed The pull-request diff changes only Info.plist, asset JSON files, and PNGs; it contains no .swift paths or production Swift declarations.
Title check ✅ Passed The title clearly and concisely describes the main change: adding a minimal iOS launch screen.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat-ios-launch-screen

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@greptile-apps

greptile-apps Bot commented Aug 24, 2026 •

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR replaces the empty iOS launch-screen declaration with a centered cmux mark on an appearance-aware background.

  • Adds named light and dark launch-background colors.
  • Adds correctly scaled 1x, 2x, and 3x launch-logo assets.
  • Connects both assets through the existing UILaunchScreen configuration.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

Filename Overview
ios/Config/Info.plist Configures the static launch screen to use the new named background color and logo assets.
ios/cmux/Assets.xcassets/LaunchBackground.colorset/Contents.json Defines universal white and dark-appearance black launch backgrounds.
ios/cmux/Assets.xcassets/LaunchLogo.imageset/Contents.json Declares complete universal 1x, 2x, and 3x launch-logo resources.
ios/cmux/Assets.xcassets/LaunchLogo.imageset/LaunchLogo.png Adds the deliberate 34×48-point-scale launch mark.
ios/cmux/Assets.xcassets/LaunchLogo.imageset/LaunchLogo@2x.png Adds the correctly scaled 68×96-pixel launch mark.
ios/cmux/Assets.xcassets/LaunchLogo.imageset/LaunchLogo@3x.png Adds the correctly scaled 102×144-pixel launch mark.

Reviews (3): Last reviewed commit: "ios: match launch logo gradient to the s..." | Re-trigger Greptile

azooz2003-bit and others added 2 commits August 23, 2026 21:31
The first LaunchLogo render was cropped from the app-bundled
CmuxLogo raster, whose gradient runs far more purple than the brand
mark on cmux.com. Re-render the launch PNGs from the chevron path and
gradient stops in web/public/cmux-icon.svg (#12c7f5 -> #2d8cff ->
#6c5cff), transparent background, same 34x48pt footprint.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Aziz flagged the mark still wasn't the one on cmux.com. Pixel-sampling
shows THREE gradient variants in the wild: the site header logo.png and
brand/app-icon-*.png agree (#5dcbfa -> #4f98f2 -> #586deb), while
cmux-icon.svg runs more violet (#12c7f5 -> #2d8cff -> #6c5cff) and the
iOS AppIcon raster is more purple still. The site is the reference, so
the launch mark now uses the gradient fitted from the 1024px brand
icon (3-stop horizontal fit, max sample error ~2/255 per channel).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@azooz2003-bit
azooz2003-bit merged commit 289b641 into main Aug 24, 2026
8 checks passed
@azooz2003-bit
azooz2003-bit deleted the feat-ios-launch-screen branch August 24, 2026 17:48
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