Skip to content

Polish mobile inbox and media flows - #4512

Merged
brow merged 26 commits into
mainfrom
kennylopez-mobile-unread-activity
Aug 4, 2026
Merged

Polish mobile inbox and media flows#4512
brow merged 26 commits into
mainfrom
kennylopez-mobile-unread-activity

Conversation

@klopez4212

@klopez4212 klopez4212 commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Summary

  • make mobile unread state visible with bold channel names, an animated Inbox badge, and swipe-to-toggle Inbox rows
  • add directional transitions for top-level mobile navigation
  • let mobile send while media uploads, with cancellable progress UI
  • normalize iOS and Android video uploads, attach poster frames, and improve native video playback

Validation

  • just mobile-check
  • just mobile-test
  • cargo test -p buzz-media
  • Pixel smoke test
  • iPhone smoke test

Desktop background uploads moved to #4522 so the two platforms can be reviewed independently.

klopez4212 added a commit that referenced this pull request Aug 3, 2026
@klopez4212

Copy link
Copy Markdown
Contributor Author

🤖 Pixel 10 snapshots

Top-level unread badge

Inbox activity is visible from Home.

Activity badge

Swipe action

A partial swipe reveals the full-height read-state capsule; continuing commits the action.

Inbox swipe action

Video preview

Posterless videos derive a paused frame instead of rendering a gray placeholder.

Video preview

@klopez4212
klopez4212 marked this pull request as ready for review August 3, 2026 10:56
@klopez4212
klopez4212 requested a review from a team as a code owner August 3, 2026 10:56

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8abcec8012

ℹ️ 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".

Comment thread mobile/lib/features/channels/compose_bar.dart Outdated
Comment thread mobile/lib/features/channels/compose_bar.dart Outdated
Comment thread mobile/lib/features/activity/inbox_unread_provider.dart Outdated
Comment thread mobile/lib/features/channels/media_viewer_page/video_controls.dart
Comment thread desktop/src-tauri/src/commands/media.rs Outdated
klopez4212 added a commit that referenced this pull request Aug 3, 2026
klopez4212 added a commit that referenced this pull request Aug 3, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5b3f57628d

ℹ️ 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".

Comment thread desktop/src/features/channels/ui/ChannelPane.tsx Outdated
Comment thread desktop/src/features/messages/ui/MessageComposer.tsx Outdated
Comment thread desktop/src/features/messages/ui/useMentionSendFlow.ts Outdated
Comment thread mobile/lib/features/channels/media_viewer_page/video_viewer.dart Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 46fcc683bd

ℹ️ 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".

Comment thread mobile/lib/features/channels/message_content/video_preview.dart Outdated
Comment thread mobile/lib/features/channels/media_viewer_page/video_viewer.dart Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d9135e8f71

ℹ️ 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".

Comment thread mobile/lib/features/channels/compose_bar.dart Outdated
Comment thread mobile/lib/features/channels/media_viewer_page/video_viewer.dart Outdated
Comment thread mobile/lib/features/channels/media_viewer_page/video_viewer.dart Outdated
Comment thread mobile/lib/features/activity/activity_page/inbox_row.dart Outdated
@klopez4212
klopez4212 force-pushed the kennylopez-mobile-unread-activity branch from d9135e8 to f0f49cf Compare August 3, 2026 13:49

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f0f49cfc16

ℹ️ 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".

Comment thread mobile/lib/features/channels/compose_bar/compose_bar_widget.dart Outdated
Comment thread mobile/lib/features/home/home_page.dart Outdated
Comment thread mobile/lib/features/activity/activity_page/inbox_row.dart

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 42a44bac31

ℹ️ 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".

Comment thread mobile/lib/features/channels/compose_bar/compose_bar_widget.dart
Comment thread mobile/lib/features/channels/compose_bar/compose_bar_widget.dart
Comment thread mobile/lib/features/channels/media_viewer_page/video_viewer.dart Outdated
Comment thread mobile/ios/Runner/AppDelegate.swift Outdated
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>
Signed-off-by: kenny lopez <klopez4212@gmail.com>
Signed-off-by: kenny lopez <klopez4212@gmail.com>
Signed-off-by: kenny lopez <klopez4212@gmail.com>
@klopez4212
klopez4212 force-pushed the kennylopez-mobile-unread-activity branch from 42a44ba to fb216e5 Compare August 3, 2026 16:31

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: fb216e54c0

ℹ️ 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".

Comment thread mobile/lib/features/forum/forum_provider.dart Outdated
Comment thread mobile/lib/features/channels/media_viewer_page/video_viewer.dart
Comment thread mobile/lib/features/channels/media_viewer_page/video_viewer.dart
Signed-off-by: kenny lopez <klopez4212@gmail.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e2b079bb10

ℹ️ 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".

Comment thread mobile/lib/features/channels/compose_bar/compose_bar_widget.dart Outdated
Comment thread mobile/lib/features/channels/channel_detail_page.dart
Signed-off-by: kenny lopez <klopez4212@gmail.com>
Signed-off-by: kenny lopez <klopez4212@gmail.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1d87d67aa2

ℹ️ 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".

Comment thread mobile/lib/features/channels/compose_bar/compose_bar_widget.dart Outdated
Comment thread mobile/lib/shared/read_state/inbox_unread_provider.dart Outdated
Comment thread mobile/ios/Runner/AppDelegate.swift Outdated
Signed-off-by: kenny lopez <klopez4212@gmail.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 24014adec4

ℹ️ 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".

Comment thread mobile/lib/shared/relay/media_upload.dart
Signed-off-by: kenny lopez <klopez4212@gmail.com>
…ead-activity

Signed-off-by: kenny lopez <klopez4212@gmail.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1352a1ebb8

ℹ️ 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".

Comment thread mobile/lib/features/home/home_page.dart Outdated
Comment thread mobile/lib/shared/relay/media_upload.dart
Comment thread mobile/lib/features/channels/compose_bar/attachments.dart
Signed-off-by: kenny lopez <klopez4212@gmail.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a360c47429

ℹ️ 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".

Comment thread mobile/lib/app.dart
Comment thread mobile/lib/features/channels/compose_bar/compose_bar_widget.dart Outdated
Comment thread mobile/lib/shared/relay/media_upload.dart
…ead-activity

Signed-off-by: kenny lopez <klopez4212@gmail.com>
brow
brow previously approved these changes Aug 3, 2026
Signed-off-by: kenny lopez <klopez4212@gmail.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a7d7c229e6

ℹ️ 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".

Comment thread mobile/lib/features/activity/activity_provider.dart Outdated
Comment thread mobile/lib/features/activity/activity_provider.dart Outdated
Comment thread mobile/lib/shared/relay/media_upload.dart
…ead-activity

Signed-off-by: kenny lopez <klopez4212@gmail.com>
Signed-off-by: kenny lopez <klopez4212@gmail.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 68bfc0dd7f

ℹ️ 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".

Comment thread mobile/lib/features/channels/compose_bar/compose_bar_widget.dart
Comment thread mobile/lib/features/activity/activity_provider.dart
Comment thread mobile/lib/features/channels/compose_bar/attachments.dart Outdated
Comment thread mobile/lib/features/channels/compose_bar/upload_progress_pill.dart Outdated
Comment thread mobile/lib/features/channels/media_viewer_page/video_controls.dart Outdated
Signed-off-by: kenny lopez <klopez4212@gmail.com>
…ead-activity

Signed-off-by: kenny lopez <klopez4212@gmail.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: dcce5df3ea

ℹ️ 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".

Comment thread mobile/lib/app.dart

@klopez4212 klopez4212 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Addressed the review feedback in the pushed branch and resolved the corresponding threads; replies include the relevant commits and validation.

Comment thread mobile/lib/features/channels/media_viewer_page/video_viewer.dart Outdated
Comment thread mobile/lib/features/channels/compose_bar/compose_bar_widget.dart
Comment thread mobile/lib/features/forum/forum_provider.dart Outdated
Comment thread mobile/lib/features/channels/media_viewer_page/video_viewer.dart
Comment thread mobile/lib/features/channels/media_viewer_page/video_viewer.dart
Comment thread mobile/lib/features/activity/activity_provider.dart
Comment thread mobile/lib/features/channels/compose_bar/upload_progress_pill.dart Outdated
Comment thread mobile/lib/features/channels/compose_bar/compose_bar_widget.dart
Comment thread mobile/lib/features/channels/media_viewer_page/video_controls.dart Outdated
Comment thread mobile/lib/app.dart

@klopez4212 klopez4212 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Addressed the review feedback in the pushed branch and resolved the corresponding thread.

Comment thread mobile/ios/Runner/AppDelegate.swift Outdated
leader and others added 4 commits August 3, 2026 19:20
The community guard added to `ChannelActions.addMembers` throws a
`StateError` once the active relay changes. On the text-only send path
that throw escaped into a fire-and-forget future: `send()` is invoked as
`unawaited(send())` and the app installs no zone guard, so the user
tapped send, the message was never delivered, and nothing anywhere said
so.

Catch it where the deferred upload path already catches its own errors,
and report it on the messenger rather than the composer's inline error
line. The identity change that causes the failure also resets the
composer's error state on the next frame, so the inline surface cannot
carry this message. The unsent text was already retained in the
originating community's draft store and is now pinned by a test.

Co-authored-by: Tom Brow <tomb@block.xyz>
Signed-off-by: Tom Brow <tomb@block.xyz>
…ead-activity

Clears a pre-existing conflict between this branch's move of `read_state/`
from `features/channels/` to `shared/` and new importers of the old paths
that landed on main. All resolutions are import-path rewrites only; no
behavior is changed on either side.

Two conflicts git reported, both single hunks of imports:

  mobile/lib/features/channels/channel_detail_page.dart
  mobile/test/features/channels/channel_detail_page_test.dart

Two more that git merged cleanly but that do not compile, because main
added the files whole and nothing on this side conflicted with them:

  mobile/lib/features/channels/channel_actions_sheet.dart
  mobile/lib/features/channels/channel_sort/channel_sort_manager.dart

`flutter analyze` reports no issues and the mobile suite passes.

Co-authored-by: Tom Brow <tomb@block.xyz>
Signed-off-by: Tom Brow <tomb@block.xyz>
The merge of main left two files importing `features/channels/read_state/`,
a directory this branch moved to `shared/read_state/`. Both files are new on
main, so nothing on this side conflicted with them and the merge was
textually clean while the tree did not compile: `flutter analyze` reported
nine errors across the two.

These rewrites were made while resolving the merge but were left unstaged,
so the merge commit did not carry them. Committed separately rather than
amended, to keep the pushed history append-only.

Co-authored-by: Tom Brow <tomb@block.xyz>
Signed-off-by: Tom Brow <tomb@block.xyz>
The community-guard fix added 17 lines to `compose_bar_widget.dart`, taking it
to 1012 script-counted lines and tripping the Mobile job's file size ratchet,
whose allowance for a file new-to-main is 1000. The local run missed it because
`check-file-sizes-core.mjs` resolves its base as `HEAD^1` under
`GITHUB_ACTIONS=true` and as `merge-base origin/main HEAD` otherwise; CI checks
out the PR merge ref, so its `HEAD^1` is main and it sees the growth that a
local CI-shaped run cannot.

Extracts the snackbar body and the mentioned-non-member add into top-level
functions in `compose_bar/helpers.dart`, which is already a part of the same
library, and leaves the call sites as a call and a tear-off. Behavior is
unchanged: the widget file is back to 992 lines and the ratchet passes against
the real merge base.

Co-authored-by: Tom Brow <tomb@block.xyz>
Signed-off-by: Tom Brow <tomb@block.xyz>
brow
brow previously approved these changes Aug 4, 2026
Signed-off-by: kenny lopez <klopez4212@gmail.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2096c67a14

ℹ️ 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".

Comment thread mobile/lib/app.dart
@brow
brow merged commit feccf4e into main Aug 4, 2026
33 checks passed
@brow
brow deleted the kennylopez-mobile-unread-activity branch August 4, 2026 07:05
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.

2 participants