fix(session-list): show every quick-action on an Android long-press - #1675
fix(session-list): show every quick-action on an Android long-press#1675chphch wants to merge 1 commit into
Conversation
7793be4 to
b0edd9f
Compare
|
Rebased onto current Both hunk sites survived Also dropped
|
The native long-press menu went through Modal.alert -> RN Alert.alert, which is hard-capped at 3 buttons on Android and silently dropped most quick-actions (including "Copy session ID"). Route the native long-press to the existing SessionActionsPopover, whose native bottom-sheet branch renders all shared actionItems -- matching the web context-menu popover. Web path (onContextMenu) is unchanged. All three rows that carry the menu are covered: the project-card row (SessionsList), the compact active row (ActiveSessionsGroupCompact), and the flat-list row (FlatSessionRow), which is what the home screen renders now that `flatSessionList` defaults on. FlatSessionRow needed the sheet mounted in its Swipeable branch as well -- that branch is the native default, and the sheet only existed in the web-only no-swipe branch, so anchoring it there alone would have left the menu unreachable on a phone. Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
b0edd9f to
ffef0f6
Compare
Throwaway build for the slopus#1675 before/after capture — never merged.
|
@bra1nDump — the same "control is there but the user cannot reach it" class as #1582 and #1598, which you merged, except here the loss is silent: five of the eight quick-actions simply are not drawn, with no error and nothing to suggest the menu is incomplete.
ProofAndroid emulator (Pixel 5, API 30, arm64), same session row, same account, one long-press. Left: the OS alert with three items. Right: the shared actions sheet with every item, Updated for the flat home listCapturing this turned up a gap worth flagging: the original patch covered Rebased onto current |

Android drops five of the eight long-press actions
Long-pressing a session on Android shows three entries. The rest are discarded with no error and no indication that anything is missing, so the menu just looks shorter than it is.
The path:
SessionsList.tsx:472,ActiveSessionsGroupCompact.tsx:268onLongPress: showActionAlertuseSessionQuickActions.ts:298-305Modal.alert('Session', undefined, buttons)ModalManager.ts:42Alert.alert(title, message, buttons)Android renders
Alert.alertthrough the platform AlertDialog, which has exactly three button slots — positive, negative, neutral. Anything past the third is dropped.The list currently holds seven actions plus Cancel:
details·resume·fork·duplicate·copy metadata·copy metadata & logs·archive· CancelFive of them never render.
The change
Route the native long-press to
SessionActionsPopover, which already exists and already handles this case: its native branch is a bottom sheet built from the same sharedactionItemsarray, with no button cap. The Android menu then matches what the web context menu has always shown.onContextMenu) is untouched.Verification
pnpm typecheckclean; app suite 909/909.Not captured on a device: the failure is a platform dialog limit, so a web capture would show the working path and prove nothing. Happy to attach an emulator recording if that would help review.
CI on this PR fails at the install step for the reason in #1663 (
pnpm-lock.yamlout of sync withhappy-cli/package.jsonsince e7e0ff6), not because of this change.