Skip to content

feat(mobile): compact workspace drawer with contextual actions and local names - #2175

Merged
DoodleBears merged 10 commits into
codex/2171-drawer-headersfrom
codex/2174-drawer-tabs
Oct 18, 2026
Merged

DoodleBears merged 10 commits into
codex/2171-drawer-headersfrom
codex/2174-drawer-tabs

Conversation

@DoodleBears

@DoodleBears DoodleBears commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor

Issue #2174 | Agent claim

Why the change

Make the mobile drawer easier to scan with separate Computer/Cloud actions, compact named connections and Notifications fixed at the bottom.

Special things to note

  • Merge risk: two-way door, reversible UI and local display-name changes; medium blast radius, shared mobile navigation and saved connection presentation. Review contextual actions, keyboard/large-text reachability and name-only updates. No API, authorization, native dependency or config changes.
  • Stacked on Unify mobile drawer headers with iOS glass titles #2172; Draft, UAT only, no merge. Names are local to this phone: computer aliases reuse the existing appearance store, cloud aliases reuse config.name; Host identity, organization names, credentials and trusted discovery remain unchanged. Organization creation stays in cloud service management.
  • Source CI 39116818266 passed at dc15ffd3a; final native layout uses integrated 1376b50b1. Naming save/restart/restore was verified at f2d0f4af3 with identical naming code. Android, physical phone, VoiceOver, signed-in org/guest rows and real named-computer pairing remain unverified. The previously observed Pair-modal → cloud-services drawer-overlay issue remains open; no full navigation acceptance is claimed. Task: codex/local/01a148ae-ec7f-74b2-8157-961411ce54c9.

Change outline

Drawer
├─ Fixed top: Computers / Cloud rounded tabs (no title/X row)
│  ├─ Android opaque chips; iOS glass/accessibility fallback
│  └─ One plus action immediately below tabs
│     ├─ Computers → Pair a new computer
│     └─ Cloud → Join by link or QR (organization or one-channel invitation)
├─ Scrollable middle list
│  ├─ First line: connection/workspace name
│  └─ Second line: small address; guest scope retained
└─ Fixed footer
   ├─ Manage cloud services [Cloud only]
   └─ Notifications [both tabs]

Local names
├─ Computer pairing → optional name → existing local appearance store
└─ Cloud configuration review / Rename connection → existing config.name
   └─ save → cold restart → same name; no network request for renaming

Default text uses at most two lines per connection; accessibility text can wrap. Tabs do not change a Host or membership. Swipe/backdrop/Android Back/accessibility escape replace the redundant X; iOS tabs use selected-button semantics to avoid a verified native accessibility target-grouping failure. A duplicate footer in the backdrop was caught during native review and removed before final capture.

Native drawer comparisons — 402 × 874, English

Before is the preceding title/X + mixed Add iteration (59fc97fd7), not the PR base. Both captures use the same empty Computer directory and signed-out UAT cloud configuration. Theme/viewport/locale match; the small exposed underlying route differs, so compare the drawer itself. Original PR-base evidence is retained in the older evidence directory.

Computers — light, before / after

Before computers, light

After computers, light: fixed footer and contextual Add

Cloud — light, before / after

Before cloud, light

After cloud, light: fixed footer and contextual Add

Computers — dark, before / after

Before computers, dark

After computers, dark: fixed footer and contextual Add

Cloud — dark, before / after

Before cloud, dark

After cloud, dark: fixed footer and contextual Add

Connect with a local name

Computer pairing adds an optional name before scanning/pasting. The old pairing entry is the before state; native input was exercised without redeeming a pairing. Cloud renaming was saved, survived a cold restart, then the exact original name was restored and read back. These naming screenshots use f2d0f4af3; the final correction only removed the duplicated backdrop footer.

Before: computer pairing without name

After: optional local computer name

Cloud local name retained after cold restart

Maximum text — independent list scroll

The middle list exposes the address after a swipe while Notifications remains at the same position. This checks reachability, not a full VoiceOver or accessibility acceptance.

Maximum text before scrolling

Maximum text after scrolling: footer stays fixed

Full source-bound screenshots, checks and limits. Shared Simulator/Metro released, original cloud name and display settings restored. No login, invitation acceptance, Host write, Prod change or merge.

Issue: #2174

Agent-Task: codex/local/01a148ae-ec7f-74b2-8157-961411ce54c9
@coderabbitai

coderabbitai Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 3db2f132-e74c-42a4-aac0-7fa0ced8e47d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • 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 changed the title feat(mobile): simplify workspace drawer with tabs and one Add entry feat(mobile): compact workspace drawer with contextual actions and local names Oct 18, 2026
@DoodleBears
DoodleBears marked this pull request as ready for review October 18, 2026 10:05
@DoodleBears
DoodleBears merged commit 4c6acb7 into codex/2171-drawer-headers Oct 18, 2026
10 checks passed
@DoodleBears
DoodleBears deleted the codex/2174-drawer-tabs branch October 28, 2026 04:25
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