Repository navigation
Conversation
2 tasks done
Contributor
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a localized mobile bug fix that makes stale environment removal actionable and surfaces failed removals without changing the normal confirmation flow. The new behavior is directly tested and has no broader schema, infrastructure, security, or default-setting impact. Notes:
You can add or adjust custom eligibility rules. Learn more. |
macroscopeapp
Bot
dismissed
their stale review
October 11, 2026 13:59
Dismissing prior approval to re-evaluate d02f304
2 tasks done
… silently no-ops The trash handler returned without feedback when the environment was missing from the connected list, and discarded the result of the removal, so a failed remove looked identical to a tap that did nothing. Always present the confirm (labelled by environment id when the summary is unknown) and report a failed removal. Refs pingdotgg#12012 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
fixfon
force-pushed
the
fix/ios-remove-environment
branch
from
October 14, 2026 08:21
d02f304 to
a9cdf03
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Refs #12012 (maintainer triage).
The trash on a saved direct environment row calls
onRemoveEnvironmentPress, which in two cases gave the user no feedback at all:connectedEnvironments, the handler hit a barereturnbeforeAlert.alert, so the tap was silently dropped.void controller.removeEnvironment(id)and discarded the result. A failed removal (for example a failed SecureStore write) only reachedconsole.warn, so "Remove" looked identical to a tap that did nothing, and the row stayed.Fix
apps/mobileonly. The decision logic moved out of the hook intopresentRemoveEnvironmentConfirm(remove-environment-confirm.ts):Tests (
vp test run src/state/remove-environment-confirm.test.ts, 4 passing): missing environment still confirms and removes by id, relay copy, failed removal is reported, successful removal stays quiet.tsc --noEmitforapps/mobile, lint and format on the touched files are clean.What I could and could not reproduce (iOS simulator only)
Unmodified
main(18656a3), iPhone 17 Pro iOS 26.3 and iPhone 16 Pro iOS 18.3, isolated backend in the worktree.t3, Settings → Environments → row → trash:connectedEnvironmentsarray, and I could not make a removal fail for real. I forced each state with a temporary, uncommitted local patch (afindpredicate that never matches; aremoveEnvironmentthat returns a failure), applied identically to BEFORE and AFTER, each run from a fresh app launch. These show the code path, not the original reporter's failure.All evidence files are in this gist, not in the repository.
Not checked, and not done
showConfirmDialog) and the "Forget saved environments" escape hatch in Client Storage. I left the nativeAlert.alertbecause it renders correctly in the form sheet on both iOS versions above, and the escape hatch is a separate feature.T3LayoutMetricsView.swiftguards with#if compiler(>=6.4). I disabled those blocks locally to build the dev client and did not commit that.Prior attempt
#12730 was closed by its author with no maintainer closure comment, so I looked at its review feedback. It asked for a removal entry point for a saved environment missing from the connected list. This PR makes the existing trash always respond for such a row, but this commit has no UI that lists a saved environment outside
connectedEnvironments, so I added no new entry point.Model and harness: Claude Sonnet 5.5 via Claude Code in T3 Code.
🤖 Generated with Claude Code