Skip to content

fix: back-dismissible long-press sheets, header hints, mirrored empty state - #13

Open
coda-rho-bot wants to merge 3 commits into
letta-ai:mainfrom
coda-rho-bot:fix/list-screen-ux
Open

fix: back-dismissible long-press sheets, header hints, mirrored empty state#13
coda-rho-bot wants to merge 3 commits into
letta-ai:mainfrom
coda-rho-bot:fix/list-screen-ux

Conversation

@coda-rho-bot

Copy link
Copy Markdown
Contributor

Summary

Three UX fixes, all device-verified on Android:

  1. Long-press action sheets are back-button dismissible. The agents/conversations lists used Alert.alert for their long-press menus — on Android that's a dialog the hardware back button cannot dismiss, trapping the user until they tap an action or Cancel. Both screens now present the same actions (rename/delete, plus pin in downstream forks) in the app's standard bottom sheet: back, drag-to-dismiss, and tap-outside all work. The Sheet component gains the hardware-back handler and a keyboard-aware bottom inset this needs.

  2. Long-press hints, always visible. A quiet hint line under the header on both list screens ("Long-press an agent/conversation for actions.") — the gesture is invisible otherwise.

  3. Un-mirror the new-conversation empty state on Android. The empty state ("No messages yet…") rendered left-right mirrored: the manual scaleY(-1) counter-rotation for the inverted transcript double-flips on RN 0.76+, which counter-rotates ListEmptyComponent automatically — and Android's inversion transform is scale: -1 (both axes), so even the pre-0.76 manual counter was wrong there. Now platform-correct: scale(-1) on Android, scaleY(-1) on iOS.

Test plan

  • Long-press an agent/conversation → sheet opens; hardware back dismisses it; drag and tap-outside dismiss it
  • Hint line visible under the header on both list screens without scrolling
  • New conversation screen: "No messages yet" text reads left-to-right on Android (was mirrored)

AI Disclosure:

  • I am the author of these changes, with the assistance of AI tools
  • I understand and comply with the AI Policy
  • AI tools used: Letta Code agent (GLM-5.3 and GLM-5.3 Flash via z.ai, per provider usage records)
  • Human verification: "I have personally reviewed and tested every line of these changes"

coda-rho-bot and others added 3 commits September 1, 2026 20:17
…was hidden)

The conversations.list call passed camelCase params (agentId, orderBy),
which the API silently ignores — the list returned UNFILTERED
(all-agents) conversations in creation order. The agent's default
conversation was drowned out entirely, and rows rendered '(none)'
summaries.

The wire format is snake_case (agent_id, order_by: last_message_at).
Cast past the SDK's camelCase-only type; verified against the live API
that the agent's default conversation appears with a real summary,
newest-first.

Co-authored-by: Letta Code <noreply@letta.com>
… state

Three UX fixes:

1. Long-press action sheets on the agents/conversations lists used
   Alert.alert, which Android renders as a dialog the hardware back
   button cannot dismiss — the popup trapped the user until they tapped
   an action. Both screens now present actions in the app's standard
   bottom sheet (back / drag / tap-outside all dismiss). The Sheet
   component also gains hardware-back dismissal and a keyboard-aware
   bottom inset.

2. Long-press discoverability hints, always visible under the header on
   both list screens (connection chip line / conversation count line).

3. New-conversation empty state rendered mirrored on Android: the manual
   scaleY(-1) counter-rotation double-flips what RN 0.76+ already
   counter-rotates. Platform-correct now (scale(-1) Android /
   scaleY(-1) iOS).

Co-authored-by: Letta Code <noreply@letta.com>
A 'Copy conversation ID' action in the long-press sheet — conversation
IDs are UUIDs that support workflows (API calls, bug reports, deep
links) constantly need, and copying them from a mobile client was
previously impossible.

Co-authored-by: Letta Code <noreply@letta.com>
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.

1 participant