refactor: centralize scrim and divider tokens#1439
Conversation
Replace ad-hoc media scrim alphas with semantic theme tokens and route all horizontal separators through AppDivider. Fixes #1384
|
Warning Review limit reached
Next review available in: 34 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (3)
📒 Files selected for processing (24)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
|
Ready to review this PR? Stage has broken it down into 5 individual chapters for you: Chapters generated by Stage for commit 475dfcc on Jul 15, 2026 7:58pm UTC. |
agent-p1p
left a comment
There was a problem hiding this comment.
Pip adversarial review — 161d0684
BLOCKING:
- none
SUGGESTION:
app/src/test/java/dev/ipf/whitenoise/android/ui/theme/VisualTokensTest.kt:40-58—appDividerUsesVisibleAmoledOutlineTokendoes not inspect the renderedAppDivider. It independently callsappDividerColor()and compares that helper withoutlineVariant; the test would still pass ifAppDividerwere later wired toColor.Black. Either assert the actual rendered divider color or simplify/rename this as a theme-token test so it does not imply component-wiring coverage.app/src/main/java/dev/ipf/whitenoise/android/ui/MarkdownRenderer.kt:301,429— these two dividers previously derived fromLocalContentColor.current.copy(alpha = 0.25f), so markdown rules and table separators adapted to colored message bubbles. The canonicaloutlineVariantmigration intentionally changes hue/opacity, but the PR reports no snapshot baseline changes. Add or confirm targeted light/dark/AMOLED screenshot coverage for markdown dividers inside sent/received bubbles; existing Roborazzi verification may simply not exercise these blocks.
NITPICK:
- none
SUMMARY: All 21 black media scrims preserve their original alpha values, all 25 HorizontalDivider call sites now use the shared wrapper, and no raw call sites remain. Color.kt/Theme.kt are untouched. AMOLED resolves outlineVariant to the existing #242424 border token on pure black, and the targeted token tests plus ktlint pass locally. The two findings above are non-blocking coverage gaps; no correctness, security, or sensitive-path issue was found.
VERDICT: APPROVE
SENSITIVE_PATHS: none
Preview APK for PR #1439Home-screen label: 1439 White Noise with the blueprint launcher icon — installs side-by-side with the production and staging apps. Install directly — one tap, no GitHub sign-in (public, content-addressed Every push to this PR rebuilds and updates this comment. |
Render thematic and table dividers in sent and received bubbles across light, dark, and AMOLED screenshot baselines. Remove the self-referential divider color helper so AppDivider wiring is exercised directly by the snapshots.
|
Addressed both review suggestions in 475dfcc:
The new baselines were visually inspected. Both dev flavors pass compile, unit tests, Roborazzi verification, ktlint, and Android lint locally. |
|
Core Android CI is green at 475dfcc. The preview APK workflow built the APK successfully but failed its external Blossom upload twice: the original run hit connection resets/timeouts, and retry cycle 1 timed out on all three upload attempts. This has remained stuck for more than 30 minutes, so the PR stays draft under the no-red-CI policy pending human handling or a later infrastructure retry. |
Summary
Test plan
No screenshot baselines changed; both Roborazzi verification tasks pass. Chat-bubble color derivation consolidation remains out of scope.
Fixes #1384