Use appearance-specific onboarding screenshots

Merged
AZ
3mo ago
+56-14

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 -dark assets 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...HEAD
  • jq empty Packages/iOS/CmuxMobileShellUI/Sources/CmuxMobileShellUI/Resources/Localizable.xcstrings
  • sips -g pixelWidth -g pixelHeight Packages/iOS/CmuxMobileShellUI/Sources/CmuxMobileShellUI/Resources/OnboardingScreenshots/Onboarding-*-dark.png
  • file Packages/iOS/CmuxMobileShellUI/Sources/CmuxMobileShellUI/Resources/OnboardingScreenshots/Onboarding-*.png
  • xcodebuild 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/OnboardingSceneChromeTests
  • xcodebuild 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-in with 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.


View with [code]smith Autofix with [code]smith
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.png assets (EN/JA) and regenerated light variants.
    • Loader now requires appearance (auto-resolved from SwiftUI colorScheme) and caches by content/language/appearance.
  • 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.”