Add tablet workspace layout - #4274
klopez4212 wants to merge 26 commits into
Conversation
Signed-off-by: kenny lopez <klopez4212@gmail.com>
Signed-off-by: kenny lopez <klopez4212@gmail.com>
Signed-off-by: kenny lopez <klopez4212@gmail.com>
Signed-off-by: kenny lopez <klopez4212@gmail.com>
Signed-off-by: kenny lopez <klopez4212@gmail.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e0d7e628ba
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: kenny lopez <klopez4212@gmail.com>
…ator Signed-off-by: kenny lopez <klopez4212@gmail.com>
Signed-off-by: kenny lopez <klopez4212@gmail.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f552a95cc3
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: kenny lopez <klopez4212@gmail.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 21abc530cf
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: kenny lopez <klopez4212@gmail.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 64a589bd7e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: kenny lopez <klopez4212@gmail.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b59dc05f23
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…ator Signed-off-by: kenny lopez <klopez4212@gmail.com> # Conflicts: # mobile/lib/features/activity/activity_page.dart # mobile/test/features/activity/activity_page_test.dart
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8508c11c98
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: kenny lopez <klopez4212@gmail.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b6dd0f5105
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: kenny lopez <klopez4212@gmail.com>
Signed-off-by: kenny lopez <klopez4212@gmail.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2ea7367d65
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: kenny lopez <klopez4212@gmail.com>
Signed-off-by: kenny lopez <klopez4212@gmail.com>
|
🤖 @codex review |
Signed-off-by: kenny lopez <klopez4212@gmail.com>
|
🤖 @codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7ca134fac1
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: kenny lopez <klopez4212@gmail.com>
|
🤖 @codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 737d3d1aef
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: kenny lopez <klopez4212@gmail.com>
…ator Signed-off-by: kenny lopez <klopez4212@gmail.com>
|
🤖 @codex review |
Signed-off-by: kenny lopez <klopez4212@gmail.com>
|
🤖 @codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c78d6cdf50
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: kenny lopez <klopez4212@gmail.com>
|
🤖 @codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 621ce0e009
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: kenny lopez <klopez4212@gmail.com>
|
🤖 @codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: be7933d272
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: kenny lopez <klopez4212@gmail.com>
|
🤖 @codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2003db3b60
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| import '../../shared/widgets/mobile_tab_footer_backdrop.dart'; | ||
| import '../../shared/widgets/skeleton.dart'; | ||
| import '../activity/activity_page.dart'; | ||
| import '../activity/activity_provider.dart'; |
There was a problem hiding this comment.
Move Activity settlement out of the Home feature
Fresh evidence after the earlier Home-boundary fix is this newly added direct import from features/home into the sibling Activity implementation solely to inspect activityProvider. This recreates the prohibited cross-feature dependency and couples the workspace shell to Activity's provider lifecycle; expose the settlement signal through shared/ or a callback/public coordinator instead.
AGENTS.md reference: AGENTS.md:L551-L552
Useful? React with 👍 / 👎.
| final navigatorKey = useMemoized(GlobalKey<NavigatorState>.new, [ | ||
| item!.conversationId, | ||
| ]); |
There was a problem hiding this comment.
Refresh the detail route when the selected row is tapped
When a grouped conversation is already selected and a newer unread event changes its deep-link target, tapping that row updates selectedItemTarget but leaves this navigator keyed only by the unchanged conversationId. The existing initial route is therefore retained and ChannelDetailPage never receives the new initialMessageId, so the tap does not open the represented unread message as documented. Explicitly navigate the current nested stack or include a tap-generation key while preserving the stable key for passive feed updates.
Useful? React with 👍 / 👎.
jedwards27
left a comment
There was a problem hiding this comment.
A Team review — source-clear at exact head; rebase required
Reviewed exact head 2003db3b60192623176cbaa6260df04e90d66003.
I found no concrete PR-owned defect after reconciling the two suspected Activity lifecycle failures against the final source:
- A left channel is removed from suppression on a non-member → member transition (
mobile/lib/features/activity/activity_page.dart:109-122), so same-session rejoin is handled. - Changing the Activity category filter explicitly clears selected/retained detail (
activity_page.dart:398-403); the focused Reminders regression covers that transition (mobile/test/features/activity/activity_page_test.dart:319-357). The retention atactivity_page.dart:142-162is limited to the intentional unread-only read transition.
Historical exact-head CI, including Mobile, is green, and git diff --check 6de85fe31d781122756aecf954bae7d357a56b9a..2003db3b60192623176cbaa6260df04e90d66003 passes in a clean detached worktree.
This is not an approval to merge: GitHub currently reports DIRTY / CONFLICTING with main, so no current merge result exists. Resolve the conflicts, then rerun the affected mobile package gates and the tablet community-switch, Activity filter/retention, leave/rejoin, split-view navigation, and camera-layout journeys. Any new head requires delta review.
jedwards27
left a comment
There was a problem hiding this comment.
A Team final synthesis — changes requested
A Team re-review at exact head 2003db3b60192623176cbaa6260df04e90d66003 found the frozen source/test state clear, but the branch cannot be integrated: fresh current main has no merge base with this head (git merge-base exits 1; git merge-tree --write-tree refuses unrelated histories), and GitHub reports DIRTY / CONFLICTING.
Exact-head evidence is strong: full Mobile passed 1,110 / 1 skipped, mobile-check passed when correctly anchored to historical base 6de85fe31d781122756aecf954bae7d357a56b9a, historical exact-head CI is green, and the suspected filter/rejoin source defects do not hold. There is still no focused leave→rejoin Activity regression and no native iPad split-view/orientation/community-switch/camera/accessibility journey.
Rebase/rebuild onto current main, then treat the resulting SHA as new: delta review, full affected mobile gates, Android/iOS builds, and native tablet/community/filter/leave→rejoin/camera/accessibility proof. The prior COMMENTED review 4948261420 was premature; this A Team verdict supersedes it.
wesbillman
left a comment
There was a problem hiding this comment.
Carl automated review: changes requested
Carl, an automated reviewer, commenting via Wes’s GitHub account.
Reviewed exact head 2003db3b60192623176cbaa6260df04e90d66003 against base bbd20fae75ecc3bd7a83cc12a65379fac22a2b79.
- P2 — Landscape phones enter the tablet workspace (
mobile/lib/features/home/home_page.dart:37,60-64). The layout predicate checks onlywidth >= 840. A large handset rotated to landscape, such as a 932×430 logical-pixel viewport, therefore loses the phone tab bar and mounts the 280px tablet sidebar and inset canvas. Gate this layout on the tablet/window-size contract rather than width alone, and cover a wide-but-short handset viewport. - P2 — Retapping the selected grouped Inbox row does not navigate to its newly represented unread event (
mobile/lib/features/activity/activity_page.dart:215-245,482-519).openItemcomputes and stores the new exact target, but_WideActivityDetailpreserves its nestedNavigatorsolely byconversationId; rebuilding does not regenerate the existing initial route. Reproduce by selecting a grouped conversation, receiving/exposing another unread target in the same group, then retapping the row: the detail remains on the old message. Drive the nested navigator to the new target (or use an explicit user-tap generation) and add an exact message/thread-root regression.
GitHub also still reports this head as DIRTY / CONFLICTING, so it has no current integration result. Historical exact-head CI is green, but it does not exercise either transition above. Resolve the defects and conflicts on a new head, then rerun the affected mobile gates and responsive navigation journeys.
|
Thank you @klopez4212 for establishing the tablet workspace direction here. Because this branch now has unrelated history, conflicts with current |

Summary
Tablet view
Validation
bin/just mobile-checkbin/just mobile-test