Skip to content

Polish mobile message and search layouts - #3121

Merged
klopez4212 merged 30 commits into
mainfrom
kennylopez-mobile-activity-followup
Jul 28, 2026
Merged

Polish mobile message and search layouts#3121
klopez4212 merged 30 commits into
mainfrom
kennylopez-mobile-activity-followup

Conversation

@klopez4212

@klopez4212 klopez4212 commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Summary

  • align message typography, avatars, metadata, and spacing across mobile surfaces
  • improve message follow behavior, touch feedback, and Activity popover motion
  • refine Search motion, gutters, and explicit recent-search history

Snapshots

Home

Home

Activity

Activity

Search

Search

Testing

  • just mobile-check
  • just mobile-test (749 passed, 1 skipped)

klopez4212 added a commit that referenced this pull request Jul 27, 2026
@klopez4212
klopez4212 marked this pull request as ready for review July 27, 2026 13:53
@klopez4212
klopez4212 requested a review from a team as a code owner July 27, 2026 13:53
@klopez4212

Copy link
Copy Markdown
Contributor Author

🤖 @codex review

Requested by Codex, Kenny’s AI agent.

@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: b0c2865b10

ℹ️ 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_thread_page.dart Outdated
@klopez4212

Copy link
Copy Markdown
Contributor Author

🤖 @codex review

Re-review requested after the overflow fix by Codex, Kenny’s AI agent.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Swish!

Reviewed commit: 61334c9fb5

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

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Finding

P1 — Constrain Activity filter labels at accessibility text sizes

mobile/lib/features/activity/activity_page.dart:355,375-400 fixes the filter popover at 240 px, but the label Text inside each item Row is unconstrained between the leading check slot, Spacer, and optional count badge. At a 3.0 text scale this produces RenderFlex overflows for the longer filter labels (independently reproduced with a widget test; seven rendering exceptions, including “Needs Action”). The existing popover test only exercises the default text scale.

Please give the label bounded space (Expanded/Flexible with an intentional wrapping or ellipsis policy) and add an accessibility-text-scale widget test that opens the filter and asserts no rendering exception.

Reviewed final head 61334c9fb527045b7103a25d4002434561f99c0a. All applicable CI checks are green; git diff --check is clean. I did not rerun suites locally because CI already covers them.

Copy link
Copy Markdown
Contributor Author

🤖 @wesbillman Fixed in 4990393a6. Activity filter labels now use bounded single-line space with ellipsis while preserving room for count badges. I also added a widget test that opens the popover at 3× accessibility text scale and asserts there is no rendering exception.

Validation: just mobile-check; just mobile-test (750 passed, 1 skipped).

— Codex, Kenny’s AI agent

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Re-review at 4990393a68152c783c2a855cca9520d30f9917a8: the requested accessibility fix is correct.

  • The filter label now uses Expanded with a deliberate single-line ellipsis policy, reserving space for the optional count badge and eliminating the 3× text-scale RenderFlex overflow.
  • The new widget regression test pumps TextScaler.linear(3), opens the real Activity filter popover, and asserts that no rendering exception occurs.
  • The update is scoped to the filter layout and its test, and git diff --check is clean.

No new code finding. Applicable CI is still running at the time of this re-review, including Mobile.

@tellaho

tellaho commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Reviewing now!

@klopez4212

Copy link
Copy Markdown
Contributor Author

🤖 @codex review

— Codex, AI agent

@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: 4990393a68

ℹ️ 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/search/search_page.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: 9831f45134

ℹ️ 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_page.dart Outdated
Comment thread mobile/lib/features/channels/channel_detail_page/message_list.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: 5f5d9b4eaa

ℹ️ 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/search/recent_searches_provider.dart
@tellaho
tellaho force-pushed the tho/mobile-activity-inbox branch from 6d5754e to 6fdf32f Compare July 27, 2026 16:27
Base automatically changed from tho/mobile-activity-inbox to main July 27, 2026 16:55

@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: deec030e8b

ℹ️ 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/channel_detail_page/system_rows.dart Outdated

@brow brow left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🤖 Withholding approval at 082895d70a: the thread-summary row leaves its enlarged Text.rich unconstrained after a fixed-width avatar stack and indent, so narrow layouts or increased text scale can overflow horizontally. Please constrain the text with Flexible/Expanded and add focused narrow/high-text-scale coverage. The earlier recent-search API documentation and user-scroll auto-follow blockers are fixed.

@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 review replies submitted by Kenny’s AI agent.

Comment thread mobile/lib/features/channels/channel_detail_page/message_list.dart Outdated
Comment thread mobile/lib/features/search/recent_searches_provider.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 review replies submitted by Kenny’s AI agent.

Comment thread mobile/lib/features/activity/activity_page.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: 4f7cf3cbbf

ℹ️ 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/search/recent_searches_provider.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: 7b20420c58

ℹ️ 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_page/header_actions.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: b819d93a77

ℹ️ 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/widgets/message_author_meta.dart
Comment thread mobile/lib/features/search/search_page.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: b4be16fb9d

ℹ️ 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/widgets/message_author_meta.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: cb565711f6

ℹ️ 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_post_card.dart Outdated
@klopez4212
klopez4212 requested review from brow and wesbillman July 27, 2026 19:33
klopez4212 and others added 24 commits July 28, 2026 16:57
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>
…tity switches

Provider-level draft namespacing did not protect a ComposeBar that stays
mounted through an in-place community or account switch: the restore/persist
effect was keyed only on [controller, draftKey], so the controller retained
the old identity's text and the next edit persisted it into the new
identity's store.

Key the effect on the active relay+pubkey identity as well. On identity
change the controller is replaced with the new identity's own saved draft
(or cleared), so text can neither be displayed nor persisted across
identities. Widget regression test switches identity in place while the
composer stays mounted and asserts both stores stay isolated and the
original draft is restored on switch-back.

Co-authored-by: Taylor Ho <taylorkmho@gmail.com>
Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Signed-off-by: kenny lopez <klopez4212@gmail.com>
activity_page.dart had grown to 1,072 lines, over the hard 1,000-line
ceiling enforced by mobile/scripts/check-file-sizes.mjs. Move the private
sub-widgets into sibling part files under activity_page/, following the
compose_bar/ pattern:

- header_actions.dart — _FilterMenuButton, _CountBadge, _InboxOptionsButton
- inbox_row.dart — _NewBoundaryDivider, _InboxRow, _RowAvatar
- lists.dart — _RemindersList, _DraftsList, _inboxTimestamp
- status_views.dart — _LoadingSkeleton, _EmptySurface, _EmptyFilterState,
  _ErrorView

Pure code movement — no behavior change, no override added. dart format
reports no changes; flutter analyze and the size guard pass.

Co-authored-by: Taylor Ho <taylorkmho@gmail.com>
Signed-off-by: Taylor Ho <taylorkmho@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>
Signed-off-by: kenny lopez <klopez4212@gmail.com>
Signed-off-by: kenny lopez <klopez4212@gmail.com>
Move the shared avatar-content gap onto the spacing scale and add direct
coverage for recent-search normalization, persistence, and identity scope.

Co-authored-by: Carl <c7ebe626f000404285d3686e1dc74cc07cc60a9754a150041ba132e14bd3e2ec@buzz.block.builderlab.xyz>
Signed-off-by: Wes <wesbillman@users.noreply.github.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>
A deep link opens a non-latest message via a post-frame jumpTo. When the
target lives in an older page that loads after a small scroll, the jump
runs at a non-zero offset and dispatches ScrollEndNotification while
isAtLatest is still true. That re-armed follow-latest and immediately
auto-scrolled the viewport back to the newest message, so the deep link
appeared to do nothing.

Clear follow-latest after the deep-link jump so the parked position
sticks.

Co-authored-by: npub15w828kxsxu2684ynste0uah2jwkgatd99flt7ds4523hzm8ju6cshdr8hh <a38ea3d8d03715a3d49382f2fe76ea93ac8eada52a7ebf3615a2a3716cf2e6b1@buzz.block.builderlab.xyz>
Signed-off-by: npub15w828kxsxu2684ynste0uah2jwkgatd99flt7ds4523hzm8ju6cshdr8hh <a38ea3d8d03715a3d49382f2fe76ea93ac8eada52a7ebf3615a2a3716cf2e6b1@buzz.block.builderlab.xyz>
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-activity-followup branch from 57d8e1f to 67335d8 Compare July 28, 2026 16:04
@klopez4212
klopez4212 merged commit 6da45ac into main Jul 28, 2026
25 checks passed
@klopez4212
klopez4212 deleted the kennylopez-mobile-activity-followup branch July 28, 2026 16:20
cameronhotchkies pushed a commit to cameronhotchkies/buzz that referenced this pull request Jul 28, 2026
…y-to-env

* origin/main: (22 commits)
  Polish mobile message and search layouts (block#3121)
  Add mobile message image galleries (block#3312)
  chore(release): release Buzz Desktop version 0.5.0 (block#3213)
  feat(relay): make Postgres pool size configurable, default 50 (block#3191)
  Publish symbol-bearing debug relay images (block#3250)
  feat(tracing): add datastore tracing plumbing (block#2760)
  fix(buzz-acp): accept id-keyed config options when resolving model switch (block#2795)
  fix(desktop): probe legacy Goose install dir on Windows (block#3248)
  refactor(desktop): extract install command execution into install_exec (block#3251)
  Polish composer activity layout and transitions (block#3151)
  feat(invites): add use-limited invite links (block#3141)
  fix(node): bump Buzz-supplied Node runtimes past OpenClaw's >=24.15.0 floor (block#3218)
  fix(desktop): preserve thread anchor through layout reflow (block#3212)
  feat(search): parse from:/in:/after:/before: and pass them in the filter (block#2871)
  fix(desktop): fetch join policies through native networking (block#2862)
  fix(desktop): republish agent identity records when a persona rename propagates (block#2607)
  fix(desktop): keep project Inbox previews compact (block#3193)
  Inbox refactor (block#2045)
  Fix composer selection formatting and drop overlay (block#3172)
  Refine pending message status (block#3153)
  ...

Signed-off-by: npub1x4hk035p3p9q39a3fcrd2fe30lpkrhr5dwe0cqzzjphxyyh8m0gsq4vqap <356f67c681884a0897b14e06d527317fc361dc746bb2fc0042906e6212e7dbd1@buzz.block.builderlab.xyz>
Co-authored-by: npub1x4hk035p3p9q39a3fcrd2fe30lpkrhr5dwe0cqzzjphxyyh8m0gsq4vqap <356f67c681884a0897b14e06d527317fc361dc746bb2fc0042906e6212e7dbd1@buzz.block.builderlab.xyz>
LordMelkor added a commit to LordMelkor/buzz that referenced this pull request Jul 28, 2026
* origin/main:
  chore(compose): remove stale typesense env vars (block#3332)
  feat(desktop): refine agent catalog sharing (block#2439)
  fix(desktop): keep drafts out of the Inbox All view (block#3217)
  docs: restructure DCO guidance into scannable subsection (block#3337)
  Unify mobile loading spinners (block#3314)
  fix(desktop): restore the inbox icon in the sidebar (block#3341)
  fix(desktop): gate codex-acp on a minimum supported version (block#3254)
  feat(cli): add users set-status command for NIP-38 profile status (block#3253)
  fix(composer): scope multiline block formatting (block#3246)
  feat(chart): add relay pod extension points (block#3322)
  Refine mobile attachment picking (block#3313)
  Polish mobile message and search layouts (block#3121)
  Add mobile message image galleries (block#3312)

Signed-off-by: LordMelkor <kray@squareup.com>
tlongwell-block pushed a commit that referenced this pull request Jul 28, 2026
* origin/main:
  fix(desktop): paint community rail full height (#3382)
  fix(acp): disable goose cron scheduler in managed agent children (#3144)
  feat(desktop): add custom harness inline from agent dialogs (#3252)
  chore(compose): remove stale typesense env vars (#3332)
  feat(desktop): refine agent catalog sharing (#2439)
  fix(desktop): keep drafts out of the Inbox All view (#3217)
  docs: restructure DCO guidance into scannable subsection (#3337)
  Unify mobile loading spinners (#3314)
  fix(desktop): restore the inbox icon in the sidebar (#3341)
  fix(desktop): gate codex-acp on a minimum supported version (#3254)
  feat(cli): add users set-status command for NIP-38 profile status (#3253)
  fix(composer): scope multiline block formatting (#3246)
  feat(chart): add relay pod extension points (#3322)
  Refine mobile attachment picking (#3313)
  Polish mobile message and search layouts (#3121)
  Add mobile message image galleries (#3312)

Co-authored-by: Tyler Longwell <tlongwell@block.xyz>
Signed-off-by: Tyler Longwell <tlongwell@block.xyz>

# Conflicts:
#	desktop/src-tauri/src/commands/personas/snapshot/import.rs
#	desktop/src-tauri/src/managed_agents/agent_snapshot.rs
#	desktop/src/features/agents/ui/AgentSnapshotImportDialog.tsx
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.

4 participants