fix(dashboard): Clean up mobile conversation chrome - #1598
Merged
Conversation
Ignore visualViewport offset while the keyboard is closed so short transcripts cannot drag the fixed conversation shell. Lock document overscroll on mobile workspace and keep footer safe-area padding from stacking with the base gap. Co-Authored-By: David Cramer <david@sentry.io>
Drop the transcript touch-pan tweak and document that focus-time Safari pan freezes stay in the lag PR so this branch only owns rubber-band shell geometry and composer safe-area gap. Co-Authored-By: David Cramer <david@sentry.io>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Dashboard visual evidenceMode: path-selected Triggered by:
Conversations · desktopConversations · mobileConversation detail · desktopConversation detail · mobileSystem · desktopComponent gallery · desktopFull-page screenshots from the mock dashboard. Not a pixel-diff gate. |
Show one mobile row with navigation, conversation context, and close. Move the signed-in profile control into the mobile navigation sheet. Co-Authored-By: David Cramer <david@sentry.io>
Move the mobile workspace browser scenario out of conversations.spec.ts so the suite stays under the 1000-line limit.
…menu Use the selected conversation title in the mobile shell header and expand the account section in the navigation sheet with identity and profile links. Co-Authored-By: David Cramer <david@sentry.io>
Replace the dual mobile headers with back + title + overflow. Move tools into a ⋯ menu and keep app nav reachable from there. Co-Authored-By: David Cramer <david@sentry.io>
Stop rendering the desktop popover card inside the nav sheet. Use one continuous identity row plus sheet-matched account links. Co-Authored-By: David Cramer <david@sentry.io>
Match Gmail/Linear mobile drawers: plain account rows like primary nav, quiet monogram identity pinned with the version footer, no spend card. Co-Authored-By: David Cramer <david@sentry.io>
Co-Authored-By: David Cramer <david@sentry.io>
Use the same muted sheet link styling as primary nav destinations. Move personal spend into a small callout above the account links. Co-Authored-By: David Cramer <david@sentry.io>
Move personal spend to the top of the mobile navigation sheet as a vertical callout so it sits above every destination row. Co-Authored-By: David Cramer <david@sentry.io>
Keep rubber-band shell pinning and composer safe-area gap. Adopt focus-time offset freeze and keyboard-height mailbox max from main. Co-Authored-By: David Cramer <david@sentry.io>
dcramer
marked this pull request as ready for review
August 16, 2026 05:02
dcramer
approved these changes
Aug 16, 2026
This comment has been minimized.
This comment has been minimized.
After merging main, keyboard offset stays frozen while the composer is focused. Assert that freeze, then accept the settled offset on blur. Co-Authored-By: David Cramer <david@sentry.io>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 8069892. Configure here.
Replace text-[11px] with text-xs so dashboard-style:check passes.
Portal the conversation-detail live flag into the shell title row so mobile chrome stays in sync with the 2s status poll. Co-Authored-By: David Cramer <david@sentry.io>
Prefer detail-query titles for the shell header so off-feed conversations keep their real name. Mark mobile overflow search as pressed when open.
Independent overflow save/restore in the workspace shell, mobile nav, and drawers could leave body.overflow stuck on hidden after navigation. Use one refcounted lock so nested holders restore the original styles only once.
The mobile nav logout e2e only asserted sheet dismissal. Wait for the sign-out POST too so a missing onSignOut handler cannot pass.
Drop the test-only body scroll lock reset in favor of a factory, ban classic 100vh and additive safe-area padding in dashboard-style checks, and switch LoadingView to dvh. Co-Authored-By: David Cramer <david@sentry.io>
Gate mobile conversation mode on the back target, not a non-empty title, and ignore block-comment lines in the classic 100vh style check.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.







Mobile conversation view had three problems: short transcripts rubber-banded the whole PWA shell, the composer sat above the home indicator, and the header stacked competing chrome rows.
What changed
innerHeight/offsetTop: 0when the keyboard is closed. FollowvisualViewportonly while the keyboard is open.max(0.375rem, safe-area).[←] truncated title [⋯].100vhand additivesafe-areapadding.Scope
Checks
pnpm dashboard-style:checkpnpm --filter @sentry/junior-dashboard lintpnpm --filter @sentry/junior-dashboard typecheckpnpm --filter @sentry/junior-dashboard testplaywright test …/conversations-mobile.spec.tsPlease verify on an installed iOS PWA: no whole-page roll on short transcripts, composer near the bottom, one title row with back + overflow, and the vertical spend callout at the top of the app menu.
Requested by David Cramer.
--
View Junior Session [Sentry]