fix(ios): centralize app accent colors#94627
Conversation
|
Codex review: needs maintainer review before merge. Reviewed June 21, 2026, 11:26 PM ET / 03:26 UTC. Summary PR surface: Other +40. Total +40 across 19 files. Reproducibility: not applicable. this is a cleanup PR rather than a reported runtime bug. Current main still has the raw color sites, and the contributor supplied after-fix simulator screenshots plus lint/build commands. Review metrics: 1 noteworthy metric.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land the design-token cleanup once maintainers accept the new iOS SwiftLint color policy and required checks are green or explicitly handled. Do we have a high-confidence way to reproduce the issue? Not applicable: this is a cleanup PR rather than a reported runtime bug. Current main still has the raw color sites, and the contributor supplied after-fix simulator screenshots plus lint/build commands. Is this the best way to solve the issue? Yes for the implementation shape: central app/shared chat tokens plus root SwiftUI/UIKit tinting are the narrow maintainable fix, and the ActivityWidget-local helper respects the current target boundary. The remaining choice is whether maintainers want this SwiftLint color policy enforced now. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against a1828110704f. Label changesLabel justifications:
Evidence reviewedPR surface: Other +40. Total +40 across 19 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
a0e437c to
b10da9a
Compare
Move iOS accent and status colors through design tokens so raw SwiftUI color literals are blocked outside token definitions. Set the app-wide tint in SwiftUI and UIKit from code, without relying on Assets.xcassets AccentColor.
b10da9a to
2e7e470
Compare
Move iOS accent and status colors through design tokens so raw SwiftUI color literals are blocked outside token definitions. Set the app-wide tint in SwiftUI and UIKit from code, without relying on Assets.xcassets AccentColor.
Summary
Verification
swiftlint lint --config .swiftlint.yml --only-rule openclaw_design_colors --quiet --no-cacheswiftlint lint --config .swiftlint.yml --quiet --no-cachegit diff --checkxcodebuild -project apps/ios/OpenClaw.xcodeproj -scheme OpenClaw -destination 'platform=iOS Simulator,name=iPhone 17' -configuration Debug CODE_SIGNING_ALLOWED=NO buildReal behavior proof
Behavior addressed: iOS app accent/status colors now come from shared design tokens, with app-wide accent applied from code instead of
Assets.xcassets/AccentColor.Real environment tested: local macOS iOS simulator Debug build for the OpenClaw iOS app.
Exact steps or command run after this patch: ran focused SwiftLint, full SwiftLint,
git diff --check, and an iOS simulator Debugxcodebuildfor theOpenClawscheme.Evidence after fix:
Observed result after fix: app screens render with the centralized red accent/status palette and the build accepts the code-level tint path without an asset-catalog accent color.
Example of violation in Xcode flagged by the build system:

What was not tested: physical device rendering and App Store/archive signing.