Skip to content

feat(mobile): render Host sections and responsive Pinned chats - #2574

Merged
DoodleBears merged 2 commits into
mainfrom
t3/remote-pinned-grid
Oct 22, 2026
Merged

DoodleBears merged 2 commits into
mainfrom
t3/remote-pinned-grid

Conversation

@DoodleBears

@DoodleBears DoodleBears commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Issue #2571 | Original claim | Integration claim

Why the change

Phone Chats flattens Remote Host organization, so this slice shows canonical sections and a responsive Pinned grid while preserving ordinary row actions and flat search.

Special things to note

  • Integration: parent feat(mobile): swipe Chats rows and create Host sections #2552 is merged (265cb6f5c995). This PR now targets main; a normal merge preserves original head da0a53c937e5 and current main's row menus, swipe, peek, section creation and encrypted route checks. Organize/drag and unpin-plus-assign remain outside this slice.
  • Merge risk: two-way door, medium blast radius. Reverting restores the flat view without migrating Host data. Shared HostClient settings/describe reads affect mobile and Web Remote Host loading; review canonical order, failed-refresh retention and Host/Cloud separation. Settings-only Web changes appear after refresh/reconnect.
  • Explicit merge-before-native authorization: the Human requested this PR be merged after source checks and applicable CI, then tested by the sole shared QA runner. Native/Human acceptance, iOS and Android theme/text-size evidence and release acceptance remain pending. This authorization does not waive required CI or authorize a release. Refs Phone Chats: render Remote Host sections and Pinned list #2571; keep the issue open.

Change outline

Remote Host authority
  rosterGet: pins, sections, membership, topOrder
  settings/describe: botharness-client global/scope sort modes
      ↓ one confirmed HostClient snapshot
  chatList: deduplicate pins + retain membership + canonical ordering
      ↓ measured width and system text scale
  FlatList
    Pinned header → bounded virtualized avatar/name/status/unread bands
    Custom section headers → ordinary conversation rows
    Loose rows in Host topOrder
    Cloud rows in their independent scope

Search → flat full rows, title prefix then pins
Clear search → restore grouped view without arrangement writes
Collapse → device preference keyed by Remote Host

Pinned cards omit preview/time and retain opening, iOS preview, native menu and accessibility actions. Unpin restores original membership; empty Pinned is hidden and empty custom sections remain visible. Failed refresh retains confirmed roster/sorting and exposes retry.

CI repairs: remove newly introduced prohibited comments; distinguish nine group mutations from nine settings/describe refresh reads with explicit assertions. Merge conflicts retain main's two-platform row-menu tests and Connect refusal tests. Android search adds its missing BackHandler fixture; iOS preview assertions follow the actual sibling tree. No test skipped or gate weakened.

Validation at 05ba0bd873c21dddec4bdefd49e8587e04fe7b55: 206 focused tests across 12 files passed; root and mobile typechecks, source policy, ledger, feature-map and CLI-parity checks passed. CI 39858838507 passed all applicable jobs and the aggregate: static/type/build, three full test shards, mobile verification, Android native module tests, docs and isolated Host smoke. Shared Web regressions passed locally. No local full-suite or native build was run; actual device qualification remains with the allocated QA lane.

Visual evidence pending: the shared Simulator/native build is reserved for the earlier frozen account/Send cut. No competing device session was started. Next-batch review follows phone-pinned-grid: no/custom sections, pin/unpin return, sort/collapse/search, Host switching and All/Cloud separation, ordinary row actions, keyboard/accessibility, width and default/intermediate/maximum text × light/dark on iOS and Android, plus shared Web loading. Source fixtures do not establish native layout acceptance. The refreshed exact-head HTML is a local review aid; reviewer-accessible publication remains unavailable.

Original implementation: codex/local/01a16238-8539-71a1-8975-89042bd66eb7
Integration and CI repair: codex/local/01a16587-3995-7b22-8c81-7c19caccddef

Issue: #2571
Agent-Task: codex/local/01a16238-8539-71a1-8975-89042bd66eb7
@coderabbitai

coderabbitai Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 09e4abaa-1c00-47c9-adbf-5cd36460789a
📥 Commits

Reviewing files that changed from the base of the PR and between 6233527 and 05ba0bd.

📒 Files selected for processing: 25
  • .agents/skills/verify-deepseekbot/features/README.md
  • .agents/skills/verify-deepseekbot/features/phone-pinned-grid.md
  • CONTEXT.md
  • CONTEXT.zh.md
  • apps/mobile/DESIGN.md
  • apps/mobile/app/(tabs)/(home)/index.tsx
  • apps/mobile/src/host/client.ts
  • apps/mobile/src/host/roster-sorting.ts
  • apps/mobile/src/host/wire.ts
  • apps/mobile/src/ui/chat/conversations.ts
  • apps/mobile/src/ui/chat/pinned-conversation-card.tsx
  • apps/mobile/src/ui/chat/pinned-grid.ts
  • apps/mobile/src/ui/chat/section-header.tsx
  • apps/mobile/src/ui/design/tokens.ts
  • apps/mobile/src/ui/strings.ts
  • apps/mobile/test/conversations.test.ts
  • apps/mobile/test/fake-host.ts
  • apps/mobile/test/group-channel.test.ts
  • apps/mobile/test/home-search.test.tsx
  • apps/mobile/test/host-client.test.ts
  • apps/mobile/test/pinned-grid.test.ts
  • apps/mobile/test/roster-sorting.test.ts
  • changes/2571-phone-pinned-grid.md
  • docs/architecture/botharness-architecture.md
  • scripts/verification-inventory.json
+--------------------------------------------+
| Like a moth to a flame, I'm drawn to bugs. |
+--------------------------------------------+
  \
   \     /)/)
        ( '')
        /  |
      o(___)
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • 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.

Preserve the original pinned-grid head and current main row-menu and encrypted route coverage. Remove prohibited comments and explicitly assert settings refresh reads alongside group mutations.

Issue: #2571

Agent-Task: codex/local/01a16587-3995-7b22-8c81-7c19caccddef
@DoodleBears
DoodleBears changed the base branch from t3/2519-chat-row-swipe to main October 22, 2026 21:38
@DoodleBears
DoodleBears marked this pull request as ready for review October 22, 2026 21:38
@DoodleBears
DoodleBears merged commit 0b71799 into main Oct 22, 2026
12 of 13 checks passed
@DoodleBears

Copy link
Copy Markdown
Contributor Author

Agent work outcome — source merged; native qualification handed off

  • Task: codex/local/01a16587-3995-7b22-8c81-7c19caccddef
  • State: handed-off (source integration complete; native/Human acceptance pending).
  • feat(mobile): render Host sections and responsive Pinned chats #2574 merged normally as 0b71799a5326635b11bd1b102893b44de33b665f at 2026-10-22 21:46:55Z. Original head da0a53c937e5 remains an ancestor of tested head 05ba0bd873c21dddec4bdefd49e8587e04fe7b55 and merged main. No force push, branch deletion, admin bypass or original-checkout edits.
  • Parent feat(mobile): swipe Chats rows and create Host sections #2552 was already merged as 265cb6f5c995; PR base moved from the old stack to main. Two test conflicts preserved current row-menu/platform and Connect refusal coverage. CI fixes removed prohibited new comments and explicitly separated nine mutation calls from nine settings reads. No tests skipped or checks weakened.
  • CI39858838507 passed every applicable job and aggregate: static/type/build, three full test shards, mobile verification, Android module tests, docs and isolated Host smoke. Locally206 focused tests across12 files, root/mobile types, lint/format, ledgers/policy/map/parity passed. CodeRabbit was pending with no reviews/inline findings at merge; repository rules did not require it.
  • Main advanced with independently authorized fix(mobile): isolate Dev and store deep-link registration #2615 (20d00f03) before the merge. Final tree b2ef318c497fadcd58b18a67f69205e536e493c2 matches a fresh merge-tree of 20d00f03 and this tested head. Combined source includes fix(mobile): isolate Dev and store deep-link registration #2615 native scheme inputs: the next batch must qualify/rebuild those inputs, not assume JS-only. Final-main CI39859995264 was still running at handoff.
  • Final merged-main bounded regression:66 tests across HostClient/home-search and scheme/helper files PASS. This checks the overlapping merged source, not native route behavior.
  • Submitted exact merged main to the sole QA owner's next-batch queue, preserving the frozen account/Send batch. Journey: phone-pinned-grid (pins/no-custom/custom sections, membership and unpin return, ordering/collapse/search, two-Host and All/Cloud isolation, real row/card actions, keyboard/accessibility, width and default/intermediate/maximum text × light/dark, shared Web loading). Android remains a separate lane.
  • Native screenshots, device interaction, Human visual feedback and Release acceptance remain pending. The Human explicitly authorized source/CI merge before native checks for this PR. Keep Phone Chats: render Remote Host sections and Pinned list #2571 open. Organize/drag and unpin-plus-assign remain outside this slice.
  • No Host, Metro, Simulator, phone, driver or tunnel was launched by this task. Source test/compiler processes and the CI watcher have exited; shared QA resources were not changed. Source/evidence and exact-head local explainer retained; public explainer hosting and browser/native capture were not claimed.

@DoodleBears
DoodleBears deleted the t3/remote-pinned-grid branch October 28, 2026 04:26
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