Use appearance-specific onboarding screenshots
Merged
AZ
3mo ago+56+56+01234567890123456789-14-14-01234567890123456789
Summary
- Add dark-mode onboarding screenshots for workspaces and notifications in English and Japanese.
- Switch onboarding screenshot resource lookup from SwiftUI
colorScheme, keeping existing light asset names and using-darkassets in dark mode. - Expand onboarding screenshot tests across content, language, and appearance.
- Fix one stale disabled workspace-selection test reference that blocked compiling the targeted onboarding test target.
Verification
git diff --check origin/main...HEADjq empty Packages/iOS/CmuxMobileShellUI/Sources/CmuxMobileShellUI/Resources/Localizable.xcstringssips -g pixelWidth -g pixelHeight Packages/iOS/CmuxMobileShellUI/Sources/CmuxMobileShellUI/Resources/OnboardingScreenshots/Onboarding-*-dark.pngfile Packages/iOS/CmuxMobileShellUI/Sources/CmuxMobileShellUI/Resources/OnboardingScreenshots/Onboarding-*.pngxcodebuild test -workspace ios/cmux.xcworkspace -scheme cmux-ios -destination 'platform=iOS Simulator,name=cmux-ondark-root-0724' -derivedDataPath /Users/abdulazizalbahar/Library/Developer/Xcode/DerivedData/cmux-ios-ondark PRODUCT_BUNDLE_IDENTIFIER=dev.cmux.ios.ondark 'PRODUCT_DISPLAY_NAME=cmux DEV ondark' CMUX_GIT_SHA=11ec9fab9b CMUX_DEV_TAG=ondark CMUX_PRESENCE_BASE_URL= CMUX_IOS_AUTH_ENV= 'CMUX_API_BASE_URL=http://localhost:9170' 'CMUX_IROH_BROKER_BASE_URL=https://cmux-staging.vercel.app' EXCLUDED_SOURCE_FILE_NAMES=Info.plist CODE_SIGNING_ALLOWED=NO SWIFT_OPTIMIZATION_LEVEL=-O SWIFT_COMPILATION_MODE=wholemodule GCC_OPTIMIZATION_LEVEL=s -only-testing:CmuxMobileShellUITests/OnboardingSceneChromeTestsxcodebuild test -workspace ios/cmux.xcworkspace -scheme cmux-ios -destination 'platform=iOS Simulator,name=cmux-ondark-root-0724' -derivedDataPath /Users/abdulazizalbahar/Library/Developer/Xcode/DerivedData/cmux-ios-ondark PRODUCT_BUNDLE_IDENTIFIER=dev.cmux.ios.ondark 'PRODUCT_DISPLAY_NAME=cmux DEV ondark' CMUX_GIT_SHA=11ec9fab9b CMUX_DEV_TAG=ondark CMUX_PRESENCE_BASE_URL= CMUX_IOS_AUTH_ENV= 'CMUX_API_BASE_URL=http://localhost:9170' 'CMUX_IROH_BROKER_BASE_URL=https://cmux-staging.vercel.app' EXCLUDED_SOURCE_FILE_NAMES=Info.plist CODE_SIGNING_ALLOWED=NO SWIFT_OPTIMIZATION_LEVEL=-O SWIFT_COMPILATION_MODE=wholemodule GCC_OPTIMIZATION_LEVEL=s -only-testing:cmuxUITests/cmuxUITests/testOnboardingScenesNotificationFeedResumeAndScannerFallback./scripts/reload-cloud.sh --tag ondark, GitHub Actions run https://github.com/manaflow-ai/cmux/actions/runs/30063089274./ios/scripts/reload.sh --tag ondark --simulator cmux-ondark-root-0724 --no-setup --no-launch- Web dev server on port 9170 warmed
/,/handler/sign-in, and/handler/after-sign-inwith redirect following. - Manual simulator screenshot verified first-run dark onboarding, and live simulator appearance switch verified the light screenshot variant.
Dogfood
Tag: http://127.0.0.1:17320/ondark
Simulator: cmux-ondark-root-0724, bundle dev.cmux.ios.ondark, launched at first-run onboarding in dark mode.
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.
Summary by cubic
Show onboarding screenshots that match the system light/dark appearance. Adds dark-mode assets, regenerates light images, and requires an explicit appearance when loading to ensure the right image and cache entry.
-
New Features
- Added
Onboarding-*-dark.pngassets (EN/JA) and regenerated light variants. - Loader now requires
appearance(auto-resolved from SwiftUIcolorScheme) and caches by content/language/appearance.
- Added
-
Bug Fixes
- Updated workspace selection test to the current API, unblocking the onboarding test target.
Summary by CodeRabbit
-
New Features
- Enhanced onboarding screenshots to automatically select the correct variant for both UI language (English/Japanese) and the active system theme (light/dark).
- Updated screenshot caching and loading so each language/appearance combination uses the correct cached image.
-
Tests
- Extended onboarding screenshot tests to cover all theme appearances and validate loaded image dimensions.
- Added a test to ensure appearance mapping matches the system color scheme.
- Adjusted workspace mac selection test to use the view’s selection handling flow for “select all.”