Skip to content

feat(mobile): unarchive from the archived-thread row menu - #5658

Closed
sideeffffect wants to merge 1 commit into
pingdotgg:mainfrom
sideeffffect:feat/mobile-unarchive-menu
Closed

feat(mobile): unarchive from the archived-thread row menu#5658
sideeffffect wants to merge 1 commit into
pingdotgg:mainfrom
sideeffffect:feat/mobile-unarchive-menu

Conversation

@sideeffffect

@sideeffffect sideeffffect commented Aug 7, 2026

Copy link
Copy Markdown

What changed

Archived-thread rows previously exposed Unarchive / Delete only via a left swipe. This gives them the same long-press context menu the active thread rows already have, so both actions are discoverable without knowing the swipe gesture.

Why

The archive screen's only affordance for restoring or deleting a thread was a swipe, which isn't discoverable. Active thread rows have long offered a long-press menu; this brings archived rows to parity.

How

  • Add ARCHIVED_ROW_MENU_ACTIONS ([Unarchive, Delete]) and wire it through the shared ControlPillMenu with shouldOpenOnLongPress, reusing the row's existing onUnarchive / onDelete handlers.
  • The row content becomes a Pressable so ControlPillMenu's onLongPress injection works on Android (iOS hosts the native context menu directly). The existing swipe actions are unchanged.

No server, contract, or shared-runtime changes.

Scope

Split out per request. Sibling PRs: Rename (#5648) and Regenerate title.

Testing

  • tsc --noEmit, vp fmt --check, vp lint: clean
  • Mobile unit suite: 617 tests / 99 files pass

Screenshots

No Android device/emulator available here for before/after images (per CONTRIBUTING.md) — happy to add. The change adds a long-press menu (Unarchive / Delete) to rows on the Archived screen; the diff is mostly reindentation from the added wrapper.

🤖 Generated with Claude Code


Note

Low Risk
Mobile-only UI parity in the archive list; no API or data-layer changes, and delete/unarchive still use existing callbacks.

Overview
Archived threads on ArchivedThreadsScreen now match active list rows: long-press opens Unarchive and Delete via ControlPillMenu with shouldOpenOnLongPress, reusing the same handlers as swipe actions.

Row content is wrapped in a Pressable so Android can receive the menu’s injected onLongPress; left-swipe unarchive/delete behavior is unchanged.

Reviewed by Cursor Bugbot for commit 49846ab. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add unarchive option to archived thread row long-press context menu

Wraps ArchivedThreadRow in a ControlPillMenu that appears on long-press, offering 'Unarchive' and 'Delete' actions. Selecting an action invokes the existing onUnarchive or onDelete handlers. Regular tap behavior and swipe actions are unchanged.

Macroscope summarized 49846ab.

Archived rows only exposed Unarchive/Delete via swipe. Give them the same
long-press context menu the active thread rows have, so both actions are
reachable without discovering the swipe gesture.

- Add an ARCHIVED_ROW_MENU_ACTIONS menu ([Unarchive, Delete]) wired through
  ControlPillMenu with shouldOpenOnLongPress, reusing the row's existing
  onUnarchive/onDelete handlers.
- The row content becomes a Pressable so ControlPillMenu's onLongPress
  injection works on Android (iOS hosts the native context menu directly).
  Swipe actions are unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 5e507a5f-ba07-4a26-9de2-1ff168900f17

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Aug 7, 2026
@macroscopeapp

macroscopeapp Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved 49846ab

This PR adds a long-press context menu to archived thread rows, providing an alternative to swipe gestures for triggering existing unarchive/delete actions. The change is self-contained to one screen, uses existing components, and doesn't modify business logic.

You can customize Macroscope's approvability policy. Learn more.

@t3dotgg

t3dotgg commented Aug 23, 2026

Copy link
Copy Markdown
Member

Note

🤖 GPT-5.6 Sol responding on behalf of Theo

Closing this PR after an automated pass over open pull requests. Mobile archived-thread rows already provide restore actions.

@t3dotgg t3dotgg closed this Aug 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M 30-99 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants