Skip to content

fix(mobile): swipe left to reply so swipe-back keeps rightward drags - #9127

Merged
brow merged 1 commit into
mainfrom
swipe-left-reply
Nov 7, 2026
Merged

brow merged 1 commit into
mainfrom
swipe-left-reply

Conversation

@brow

@brow brow commented Nov 5, 2026 •

Copy link
Copy Markdown
Collaborator

Swipe-to-reply used a rightward drag, the same direction as iOS swipe-back. A rightward drag that started on a message armed a reply instead of going back, and the reply recognizer claimed horizontal drags in either direction once they started on a bubble.

Now a message slides left to reveal Reply on its trailing side, and the reply recognizer only wins the gesture arena for leftward drags. Rightward drags that start on a message are left to back navigation. The threshold, haptic, rubber-band resistance and thread destination are unchanged. On bubbles that reach the row's trailing edge (your own messages), the Reply feedback is kept on screen beneath the bubble, so the slide uncovers it.

Demo

Before (main): a rightward drag that starts on a message arms Reply and slides the bubble, instead of being left to back navigation.

pr9127-before.mp4

After (this PR): a rightward drag on a bubble does nothing, a leftward swipe reveals Reply and opens the thread, and edge swipe-back returns to the channel.

pr9127-after.mp4

Validation

  • Focused existing validation: the swipe-reply widget tests were mirrored to the new direction for channel and thread rows, own and incoming messages. They now also check that a rightward drag starting on a bubble reaches an outer horizontal drag handler (a stand-in for swipe-back) without moving the row or opening a reply. The Bestie DM test's reply drag was flipped too.
  • The full mobile suite (just mobile-check and just mobile-test) passes.
  • Automated simulator run (iPhone 17 Pro, debug build): swiped left on outgoing and incoming bubbles (feedback shows on the trailing side, thread opens), edge swipe-back from a thread and channel, and a rightward drag starting on a bubble (no reply). The demo above was recorded on a synthetic private channel (own messages only; incoming-message rows were covered in the earlier run and by the widget tests). Human testing is waived under the owner's standing exception.

🤖 Generated with Claude Code

Message rows now slide left to reveal the Reply action on the trailing
side, and the reply recognizer only claims leftward drags. A rightward
drag that starts on a bubble is left for back navigation instead of
arming a reply.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Signed-off-by: Tom Brow <[email protected]>
@brow

brow commented Nov 5, 2026

Copy link
Copy Markdown
Collaborator Author

@codex review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 5, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-07T23:42:55.284815Z 0b8e820 Draft marked ready
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 👍

Reviewed commit: 0b8e8203bd

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

@johnmatthewtennant johnmatthewtennant 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.

🤖 Reviewed exact head 0b8e820. Full 64-lens collection and independent source checks completed; no correctness blockers found. Source review only, without independent runtime tests.

@brow
brow marked this pull request as ready for review November 7, 2026 23:40
@brow
brow requested a review from a team as a code owner November 7, 2026 23:40
@brow
brow merged commit d839d37 into main Nov 7, 2026
53 checks passed
@brow
brow deleted the swipe-left-reply branch November 7, 2026 23:40
brow pushed a commit that referenced this pull request Nov 8, 2026
## Summary
Replace the Solo chat header controls with an ellipsis that opens Chat
settings, showing the selected agent’s avatar and workspace. Agent and
grouped Workspace pickers share one backdrop; closing either returns to
settings without flickering. The sheet smoothly resizes to fit each page
and respects Reduce Motion.

### Related issue
No duplicate found.

### Testing
Full pre-push checks pass without exclusions: analysis, formatting,
file-size checks, all 4547 mobile tests (67 skipped), push-configuration
tests, and secp256k1 tests. Navigation, backdrop continuity, smooth
resizing, and Reduce Motion are covered. Updated four stale link-swipe
tests to use the leftward reply gesture introduced in #9127. Installed
on iPhone Air with saved state preserved.

Flutter snapshots with sample data (attached only, not committed):

| Chat settings | Workspace |
| --- | --- |
| ![Chat
settings](https://github.com/user-attachments/assets/624e9db5-c017-4c3d-b6e1-0455b744f5c1)
| ![Workspace
picker](https://github.com/user-attachments/assets/e51748cd-3f08-47ef-9de1-3856838a30fb)
|

---------

Signed-off-by: kenny lopez <[email protected]>
Co-authored-by: Terp <5856f6900e8e0a4e0ea1f4f8d2ee33e4753d2119bc122f94ecafc660b46c0511@buzz.block.builderlab.xyz>
morgmart added a commit that referenced this pull request Nov 9, 2026
…ived-solo-read

* origin/main:
  fix(relay): say "channel owner or admin" in the call_webhook save refusal (#9169)
  feat(mobile): consolidate Solo chat settings in one sheet (#9255)
  fix(cli): preserve attachments across successive edits (#9226)
  fix(mobile): swipe left to reply so swipe-back keeps rightward drags (#9127)
  mobile: long-press a message link for open, copy and share (#9135)
  feat(mobile): long-press a Solo chat to open its details sheet (#9163)
  fix(mobile): shimmer loading photos in the iOS carousel (#9167)
bostonaholic added a commit that referenced this pull request Nov 9, 2026
…ction-p

* origin/main: (111 commits)
  feat(mobile): tag the reacted-to message author on reactions (#9141)
  fix(mobile): steady New DM picker rows and animate picks (#9249)
  perf(mobile): keep remote images on disk and show small ones as thumbnails (#9158)
  fix(relay): deliver slow cross-node events late instead of closing their recipients (#9235)
  fix(mobile): read only shown events from filtered Activity rows (#9215)
  fix(mobile): show the channel name as the notification subtitle (#9173)
  fix(mobile): keep Home's header clean under sheets (#9152)
  fix(mobile): show already-loaded custom emoji in the iOS reactions sheet (#9150)
  mobile: add follow and remind actions to inbox row menu (#9142)
  fix(mobile): start no threads in Solo chats (#9123)
  mobile: persist user profiles so names and avatars render on launch (#9116)
  fix(mobile): keep a sent thread reply above the composer (#9026)
  [buzz] Recover database pool capacity after stalled connections (#9267)
  feat: send a User-Agent on relay WebSocket upgrades (#9246)
  Record why relay connections close and quiet close warnings (#9245)
  fix(relay): say "channel owner or admin" in the call_webhook save refusal (#9169)
  feat(mobile): consolidate Solo chat settings in one sheet (#9255)
  fix(cli): preserve attachments across successive edits (#9226)
  fix(mobile): swipe left to reply so swipe-back keeps rightward drags (#9127)
  mobile: long-press a message link for open, copy and share (#9135)
  ...

Signed-off-by: Matthew Boston <[email protected]>
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.

3 participants