Repository navigation
Fade the mobile DM above the composer and move Model and Workspace into the Bot profile - #1875
Conversation
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LzUNRQhy85WgjWULziwrxc
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LzUNRQhy85WgjWULziwrxc
|
Warning Review limit reachedYou'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 8 minutes. View limit details
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 |
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LzUNRQhy85WgjWULziwrxc
… fade Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LzUNRQhy85WgjWULziwrxc
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YXLBzevwCYAWycH1iTuBwK
…ader-3bkg6h # Conflicts: # apps/mobile/app/dm/[slug].tsx
…e to the Bot profile Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LzUNRQhy85WgjWULziwrxc
… edge effects On the inverted list the iOS 26 soft edge effect never reached the top, so messages ran under the status bar at full contrast. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LzUNRQhy85WgjWULziwrxc
With headerTransparent, iOS 26 adds an AdditionalDimmingOverlay inside the inverted message list's UIScrollView, and scrollEdgeEffects 'hidden' on the screen does not reach it. The header now has a base fill (the pre-#1875 configuration the Simulator bisect found clean), the list starts below it, and the top fade sits at the top of the list like the bottom one. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LzUNRQhy85WgjWULziwrxc
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LzUNRQhy85WgjWULziwrxc
… iOS 26 dimming (#1889) * fix(mobile): drop the transparent DM header that dims the list on iOS 26 With headerTransparent, iOS 26 adds an AdditionalDimmingOverlay inside the inverted message list's UIScrollView, and scrollEdgeEffects 'hidden' on the screen does not reach it. The header now has a base fill (the pre-#1875 configuration the Simulator bisect found clean), the list starts below it, and the top fade sits at the top of the list like the bottom one. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LzUNRQhy85WgjWULziwrxc * feat(mobile): float the composer over the chat and fade the screen bottom The message list now runs to the bottom of the screen and the composer floats over it with no bar, like Telegram. A static base gradient covers the composer and edgeFade.bottom above it, and the list keeps that much space below the newest message. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LzUNRQhy85WgjWULziwrxc * docs(changes): describe the floating composer in the #1875 fragment Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LzUNRQhy85WgjWULziwrxc * feat(mobile): float a frosted header and composer over the chat The native stack header is hidden and the chat draws its own floating header, so messages run under the chip without the iOS 26 dimming that a transparent native header causes. The chip, round buttons and composer pill are frosted (raised or surface at glass.tint opacity), and both edge fades are lighter, so messages show faintly through them. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LzUNRQhy85WgjWULziwrxc * fix(mobile): keep the composer pill opaque Messages pass around and under the floating composer, but the pill keeps its opaque surface fill so nothing shows through where the Human types. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LzUNRQhy85WgjWULziwrxc --------- Co-authored-by: Claude <noreply@anthropic.com>
Batch QA — #1875 as merged on mainiOS Simulator "PR1800 glass" (iOS 26.0, iPhone 17 Pro), dev client rebuilt from the batch, QA Host on DeepSeek. Screenshots are redacted (computer name, tailnet host and local paths blacked out). Chinese text renders as □ because the iOS 26.0 Simulator runtime ships without PingFang; that is an environment limit, not the app. Android: untested.
|




Requested by Vain · project thread
Why the change
Before: the transparent DM header, the avatar/name/state chip, the round back and computer buttons and the top fade from this PR's first round already reached
mainthrough #1880. The bottom of the chat still ended in a hard edge above the composer, and a row of Model and Workspace chips sat under the composer.After: messages also fade out softly just above the composer, matching the top. Nothing sits under the composer any more: the Bot's Model and Workspace settings moved into the Bot profile (tap the chip in the header), in a new Bot settings group under the profile actions. Each row opens the same Model and Workspace sheets as before.
Special things to note
mainafter Collapse a decided mobile request card into a Bot bubble #1880 and Open group Channels as a native mobile chat with @mentions, like Bot DMs #1879 (the sharedconversation-screen.tsx), so its diff is only the follow-up below.EdgeFade(wasHeaderEdgeFade) now takes an edge. The bottom one is a static SVG gradient frombaseto transparent,edgeFade.bottom(32) tall, at the bottom of the list above the composer, on every platform, withpointerEvents="none". It never re-renders while scrolling. The composer bar isbasetoo, so the gradient blends into it. The inverted list keeps 32 below the newest message, so at rest nothing sits under the fade.BotSettingsPanelowns the composer context (model and grants), the two rows and the two sheets;BotProfileSheettakes it as an optionalsettingsslot under its actions.composer-footer.tsxis deleted. The Composer still accepts afooterprop.pnpm --filter @botharness/mobile typecheckclean; mobilevitest runpasses (34 files);pnpm lintandoxfmt --checkclean.node scripts/e2e-mobile-follow-latest-web.mjspasses against an isolated Host through the web export, and a local copy of it went on to tap the chip, open the profile and open the Model sheet for the screenshots below.affected.Change outline
src/ui/chat/conversation-screen.tsx: bottomEdgeFade, list bottom inset, footer and settings sheets removed.src/ui/chat/bot-settings-panel.tsx: new; Bot settings group with Model and Workspace rows and their sheets.src/ui/chat/bot-profile.tsx,app/bot/[slug]/index.tsx: render the panel under the profile actions.src/ui/chat/header-chrome.tsx:EdgeFadewithedge.src/ui/design/tokens.ts:edgeFade.bottom.src/ui/chat/composer-footer.tsx: removed.DESIGN.md: composer, fade and profile rules.Human QA
🤖 Generated with Claude Code
https://claude.ai/code/session_01LzUNRQhy85WgjWULziwrxc