Skip to content

feat(app): refine mobile shell home and settings - #46388

Merged
Brendonovich merged 3 commits into
v2from
mobile-shell-polish
Aug 31, 2026
Merged

Brendonovich merged 3 commits into
v2from
mobile-shell-polish

Conversation

@Brendonovich

@Brendonovich Brendonovich commented Aug 31, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Replace mobile tab strips with a bottom drawer retaining session title/project identity, tab closing/reordering, Home, and horizontal Settings/Help actions.
  • Keep Projects and search above Home sessions in both navigation layouts, with a project dropdown, multi-server sublabel, compact spacing, and stacked project/session labels.
  • Replace the mobile settings sidebar with the existing compact section menu; improve safe-area scrolling, header seams, shadow clearance, and inline model checkboxes.
  • Avoid double-counting safe-area padding around titlebars and content panels, preserve session panel shadows, and fade touch tab titles behind close controls.
  • Hide release-channel indicators on mobile while retaining desktop behavior.

Stack

  1. feat(app): refine mobile shell home and settings #46388: mobile shell, Home, and settings (base v2).
  2. feat(app): add mobile session panels and detail drawers #46389: mobile session views, Files, Status, and details (base feat(app): refine mobile shell home and settings #46388).
  3. feat(app): refine mobile diff review and wrapping preferences #46390: mobile Changes summaries, Open file, and wrapping preferences (base feat(app): add mobile session panels and detail drawers #46389).

Merge in that order; each PR's diff and before/after evidence compare against its immediate base. Independent #46391 (touch controls/PWA) can land separately.

Sessions

  • ses_fa9929a54ffeG0AAK1g2BwuFHj: safe areas, panel shadows, touch tab fade, persistent Home utility footer.
  • ses_fa96329bbffdPCp54xCdIn18M0: mobile settings menu, safe-area scrolling, channel indicator visibility.
  • ses_fa94e625fffdatsz7sy2hC4tMI: mobile tabs drawer and Home/Settings/Help placement.
  • ses_fa93a9c41ffdv86XF9fhdYPok9: horizontal Home utility alignment.
  • ses_fa9375bf2ffd1qwP3qNWRyj1dW: Projects dropdown, spacing, drawer typography/actions, settings layout refinements.
  • ses_fa92bcf95ffefmn2bqtEY6z23J: stacked mobile session/project labels. The later-reverted bottom-mounted Home search is intentionally excluded.

Before / After

PR #46388 mobile-shell-polish: original V2 e56ceed versus fixed committed head 4e0db6a

Surface Before After
home projects closed: Mobile Home: closed project dropdown, Studio server sublabel and two-line sessions Before: home projects closed: Mobile Home: closed project dropdown, Studio server sublabel and two-line sessions After: home projects closed: Mobile Home: closed project dropdown, Studio server sublabel and two-line sessions
home projects open: Mobile Home: project dropdown open with two servers Before: home projects open: Mobile Home: project dropdown open with two servers After: home projects open: Mobile Home: project dropdown open with two servers
settings general: Mobile General: closed section menu and compact panel Before: settings general: Mobile General: closed section menu and compact panel After: settings general: Mobile General: closed section menu and compact panel
settings sections open: Mobile settings: section menu open Before: settings sections open: Mobile settings: section menu open After: settings sections open: Mobile settings: section menu open
settings models: Mobile Models: inline visibility controls, search and provider header Before: settings models: Mobile Models: inline visibility controls, search and provider header After: settings models: Mobile Models: inline visibility controls, search and provider header
settings models scrolled: Mobile Models: scrollTop 340, sticky header and list borders Before: settings models scrolled: Mobile Models: scrollTop 340, sticky header and list borders After: settings models scrolled: Mobile Models: scrollTop 340, sticky header and list borders
titlebar top safe area: Mobile top titlebar: CDP safe-area simulation (top 44px, bottom 34px) Before: titlebar top safe area: Mobile top titlebar: CDP safe-area simulation (top 44px, bottom 34px) After: titlebar top safe area: Mobile top titlebar: CDP safe-area simulation (top 44px, bottom 34px)
tabs top open safe area: Mobile top: open drawer with title/project emphasis and Settings beside Help, simulated safe area Before: tabs top open safe area: Mobile top: open drawer with title/project emphasis and Settings beside Help, simulated safe area After: tabs top open safe area: Mobile top: open drawer with title/project emphasis and Settings beside Help, simulated safe area
titlebar bottom safe area: Mobile bottom titlebar: CDP safe-area simulation (top 44px, bottom 34px) Before: titlebar bottom safe area: Mobile bottom titlebar: CDP safe-area simulation (top 44px, bottom 34px) After: titlebar bottom safe area: Mobile bottom titlebar: CDP safe-area simulation (top 44px, bottom 34px)
tabs bottom open safe area: Mobile bottom: open drawer with title/project emphasis and Settings beside Help, simulated safe area Before: tabs bottom open safe area: Mobile bottom: open drawer with title/project emphasis and Settings beside Help, simulated safe area After: tabs bottom open safe area: Mobile bottom: open drawer with title/project emphasis and Settings beside Help, simulated safe area
desktop home: desktop: unchanged wide Home layout and horizontal tabs Before: desktop home: desktop: unchanged wide Home layout and horizontal tabs After: desktop home: desktop: unchanged wide Home layout and horizontal tabs
desktop settings: desktop: General settings wide sidebar sample Before: desktop settings: desktop: General settings wide sidebar sample After: desktop settings: desktop: General settings wide sidebar sample
tablet touch home: tablet-touch: unchanged wide Home layout and horizontal tabs Before: tablet touch home: tablet-touch: unchanged wide Home layout and horizontal tabs After: tablet touch home: tablet-touch: unchanged wide Home layout and horizontal tabs
tablet touch tab fade: 820px touch tablet: active horizontal tab, close-button title fade Before: tablet touch tab fade: 820px touch tablet: active horizontal tab, close-button title fade After: tablet touch tab fade: 820px touch tablet: active horizontal tab, close-button title fade
tablet touch settings: tablet-touch: General settings wide sidebar sample Before: tablet touch settings: tablet-touch: General settings wide sidebar sample After: tablet touch settings: tablet-touch: General settings wide sidebar sample
  • 15 raw screenshot pairs; all before PNGs retained unchanged
  • Dark theme and identical deterministic synthetic fixture data on every pair
  • Mobile 390x844, touch tablet 820x1000, desktop 1440x1000; device scale 1
  • Base interfaces are genuine: no fabricated project dropdown, tab drawer or Settings section menu
  • Safe-area pairs are CDP simulations using Emulation.setSafeAreaInsetsOverride: 44px top and 34px bottom, not physical iOS validation
  • General and Models full-width geometry and inline model control alignment asserted before capture
  • Initial Settings CSS load-order regression fixed in committed source; these after images contain the fix
  • DEV badge hidden for capture only; no product DOM/CSS modifications
  • Routes, dimensions and commit inventory are recorded separately in manifest.json

Recording

Mobile tab drawer navigation and reopening, Settings section selection, and inline Models controls on the corrected full-width settings layout. Chromium, dark theme, 390x844, 3.16 seconds; synthetic fixture data.

[email protected]

Validation

  • Follow-up screenshot verification found and fixed a production settings CSS-cascade issue; all 16 focused stack regressions now pass, including full-width settings geometry and updated drawer/sidebar expectations.
  • All four PR groups merge cleanly in an isolated integration worktree; the combined production build passes all eight mobile browser regressions and app typechecking.
  • App package typecheck and 48 focused Home/settings/titlebar tests pass.
  • Production build and home-to-session navigation benchmark pass on clean v2 and this head: stable content observation 134.8ms and 156.1ms. Single machine-local samples, not statistical performance conclusions.
  • Preserved upstream Windows 1px outline clearance, internal tab-strip overflow handling, and existing tab rename/context-menu behavior.
  • Declare @corvu/drawer as an app dependency, using the existing catalog version.
  • Original user worktree/staging and existing app/server processes remain untouched. Already-merged CORS/favicon/PWA icons and generated declaration artifacts are excluded.

OpenCode-Session: ses_fa9929a54ffeG0AAK1g2BwuFHj
OpenCode-Session: ses_fa96329bbffdPCp54xCdIn18M0
OpenCode-Session: ses_fa94e625fffdatsz7sy2hC4tMI
OpenCode-Session: ses_fa93a9c41ffdv86XF9fhdYPok9
OpenCode-Session: ses_fa9375bf2ffd1qwP3qNWRyj1dW
OpenCode-Session: ses_fa92bcf95ffefmn2bqtEY6z23J
Add isolated fixture coverage for project selection, drawer navigation, and settings menu dismissal. The full-width settings assertion currently reproduces the committed mobile CSS load-order regression and requires the production selector fix before merge.
Fix the production CSS cascade discovered during screenshot verification and update legacy tab/sidebar regressions for the mobile drawer.

OpenCode-Session: ses_fa91badecffeXpbAgW57aYbHif
@Brendonovich
Brendonovich merged commit 5a4914c into v2 Aug 31, 2026
18 checks passed
@Brendonovich
Brendonovich deleted the mobile-shell-polish branch August 31, 2026 13:20
jinhuang712 pushed a commit to jinhuang712/opencode that referenced this pull request Sep 26, 2026
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.

1 participant