Skip to content

fix(mobile): remount the Android chat title when its theme or name changes - #2416

Merged
DoodleBears merged 3 commits into
mainfrom
claude/project-thread-rfizz4
Oct 20, 2026
Merged

DoodleBears merged 3 commits into
mainfrom
claude/project-thread-rfizz4

Conversation

@DoodleBears

Copy link
Copy Markdown
Contributor

Requested by Vain · project thread

Why the change

Native QA of #2394 (Xiaomi, Android 16 / HyperOS 3) found a problem: after switching between light and dark while a chat is open, the floating header's title chip shrinks the Bot's name to "M…", even though there's plenty of room / #2394 真机 QA 发现:聊天页内切换浅色/深色后,顶部名称 chip 被截成 “M…”。

Refs #2394.

Special things to note

  • Merge risk: Android-only and one line in effect. The native header's title is keyed on scheme, font scale and name, so the native toolbar measures it again instead of keeping its first width. The wrapper also gets the same maxWidth cap as the iOS title item.
  • The other feat(mobile): float the Android chat header and mask both chat edges like iOS #2394 QA finding (text showing under the composer when scrolled) has the same root cause fix(mobile): draw the chat's bottom mask on iOS instead of UIKit's edge effect #2398 already fixed on main: the edge fade's SVG was sized with height="100%" and kept its first, shorter height. Nothing more is changed for it here. A re-shot on current main is requested to confirm.
  • Verification: pnpm typecheck ✅ and the conversation screen tests ✅. Device verification pending, and this fix is a likely fix that hasn't been confirmed on a device yet.
  • CI test plan: affected (mobile).

Change outline

headerTitle: () => title → headerTitle: () => <View key={scheme:fontScale:name} style={{ maxWidth }}>{title}</View> on Android.

#2394 phone QA shots (before this fix): .github/pr-screenshots/2394-android-chat-chrome/phone/ on branch claude/project-thread-m7tsnr-approvals.


Generated by Claude Code

…anges

The floating header's title chip kept the width it was first measured at,
so after switching between light and dark in the chat it clipped the Bot's
name to its first letter. Keying the title on the scheme, font scale and
name makes the native header measure it again.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QxWnExdvT58a8MeXHJ7aRn
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QxWnExdvT58a8MeXHJ7aRn
@coderabbitai

coderabbitai Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 48 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 2 included reviews currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 60192b36-bad1-475d-a1a5-3be5235804f0
📥 Commits

Reviewing files that changed from the base of the PR and between a5a27f1 and daa30b7.

⛔ Files ignored due to path filters: 13
  • .github/pr-screenshots/2394-android-chat-chrome/phone/dm-colored-latest-dark.png is excluded by !**/*.png
  • .github/pr-screenshots/2394-android-chat-chrome/phone/dm-colored-latest-light.png is excluded by !**/*.png
  • .github/pr-screenshots/2394-android-chat-chrome/phone/dm-colored-scrolled-dark.png is excluded by !**/*.png
  • .github/pr-screenshots/2394-android-chat-chrome/phone/dm-colored-scrolled-light.png is excluded by !**/*.png
  • .github/pr-screenshots/2394-android-chat-chrome/phone/dm-latest-dark.png is excluded by !**/*.png
  • .github/pr-screenshots/2394-android-chat-chrome/phone/dm-latest-light.png is excluded by !**/*.png
  • .github/pr-screenshots/2394-android-chat-chrome/phone/dm-scrolled-dark.png is excluded by !**/*.png
  • .github/pr-screenshots/2394-android-chat-chrome/phone/dm-scrolled-light.png is excluded by !**/*.png
  • .github/pr-screenshots/2394-android-chat-chrome/phone/finding-name-capsule-clipped-after-theme-switch-light.png is excluded by !**/*.png
  • .github/pr-screenshots/2394-android-chat-chrome/phone/group-back-gesture-dark.png is excluded by !**/*.png
  • .github/pr-screenshots/2394-android-chat-chrome/phone/group-back-gesture-light.png is excluded by !**/*.png
  • .github/pr-screenshots/2394-android-chat-chrome/phone/group-header-dark.png is excluded by !**/*.png
  • .github/pr-screenshots/2394-android-chat-chrome/phone/group-header-light.png is excluded by !**/*.png
📒 Files selected for processing: 2
  • apps/mobile/src/ui/chat/conversation-screen.tsx
  • changes/2416-android-chat-title.md
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@DoodleBears DoodleBears self-assigned this Oct 20, 2026
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QxWnExdvT58a8MeXHJ7aRn

Copy link
Copy Markdown
Contributor Author

CI note: on daa30b7, lint, format, typecheck, build was cancelled by the job timeout before any check failed. actions/checkout took 13.5 minutes (15:00:10 → 15:13:50). After that, lint, format:check, typecheck and expo-doctor all passed within the remaining minute. This is runner and network slowness, not this PR's change. Every other job is green. I re-ran the failed jobs once.


Generated by Claude Code

@DoodleBears
DoodleBears merged commit 442aaa4 into main Oct 20, 2026
18 of 20 checks passed
DoodleBears added a commit that referenced this pull request Oct 20, 2026
…nd screenshots

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

Copy link
Copy Markdown
Contributor Author

Android phone result: name chip PASS; bottom fade still leaks on a coloured background (Xiaomi, Android 16 / HyperOS 3, release build of main 056d129)

Screenshots: 2416-android-chat-chrome/phone (commit 2ef0671)

Scene Files
Light ↔ dark switched 4 times inside a Bot DM; the chip always reads "Mira" in full 1-dm-light.png … 4-switched-dark-again.png
Dark, coloured (lavender) background, scrolling up 5-dark-colored-scrolling.png, 6-dark-colored-scrolled.png, 7-dark-colored-scrolling-down.png
Finding, zoomed 8-finding-text-under-composer-zoom.png
Dark, default background: no leak 9-dark-default-scrolling.png

Finding: on a coloured chat background in dark, message text still shows through in the gesture-bar strip below the composer and between the + button and the input. The default dark background is clean. Follow-up #2425 softens the fades and needs its own phone check.


Generated by Claude Code

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.

2 participants