Skip to content

fix(mobile): iOS trash now removes a persisted environment - #16

Draft
macodev00 wants to merge 4 commits into
mainfrom
cursor/fix-ios-environment-trash-27ef
Draft

macodev00 wants to merge 4 commits into
mainfrom
cursor/fix-ios-environment-trash-27ef

Conversation

@macodev00

@macodev00 macodev00 commented Sep 20, 2026

Copy link
Copy Markdown
Owner

The iOS Environments trash control did nothing for a saved direct environment. Settings is a nested form sheet, so Alert.alert never presented, and a missed list lookup swallowed the tap. A Keychain catalog write failure could also leave the row looking gone until relaunch.

Trash now always presents an in-tree confirm (FullWindowOverlay on iOS, even without a list label), removes the catalog target on confirm, and shows an error while keeping the row if SecureStore persist fails.

The confirm overlay root is VoiceOver-modal (accessibilityViewIsModal) and the two-finger Z escape gesture cancels, so destructive confirm cannot leak focus to controls behind it.

This is a fork-only branch for pingdotgg#12012. It is not opened against upstream.

Author: macodev00. Model: Cursor Grok 4.6. Harness: Cursor Cloud.

Open in Web Open in Cursor 

macodev00 and others added 3 commits September 20, 2026 09:36
Settings → Environments is a nested form sheet, so Alert.alert never
presented the remove confirm. Always show an in-tree confirm, surface
Keychain persist failures, and keep the catalog row if the write fails.

Co-authored-by: maco <macodev00@users.noreply.github.com>
CodeRabbit docstring coverage on the touched functions was 30%. Add
one-line TSDoc on each helper, hook, and dialog callback in the diff.

Co-authored-by: maco <macodev00@users.noreply.github.com>
FullWindowOverlay does not mark the confirm as modal, so VoiceOver can
reach controls behind a destructive dialog. Set accessibilityViewIsModal
and dismiss on the VoiceOver escape gesture.

Co-authored-by: maco <macodev00@users.noreply.github.com>
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L labels Sep 22, 2026
FullWindowOverlay's native container is a sibling of the React root, so
accessibilityViewIsModal on the dialog View cannot hide Settings. Mark
the overlay container modal and dismiss on the VoiceOver escape gesture.

Co-authored-by: maco <macodev00@users.noreply.github.com>
@cursor
cursor Bot force-pushed the cursor/fix-ios-environment-trash-27ef branch from 183173c to 31ec14e Compare September 22, 2026 06:40
@cursor

cursor Bot commented Sep 22, 2026

Copy link
Copy Markdown

@coderabbitai review

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant