Skip to content

Comments

chore: develop to preview#4470

Merged
jorbuedo merged 3 commits intopreviewfrom
develop
Feb 3, 2026
Merged

chore: develop to preview#4470
jorbuedo merged 3 commits intopreviewfrom
develop

Conversation

@jorbuedo
Copy link
Contributor

@jorbuedo jorbuedo commented Feb 3, 2026

Note

Medium Risk
Changes the deduplication logic for deep-link ingestion and action execution, which can affect whether links/actions fire once or multiple times (especially across login/wallet-selection flows). Risk is moderate because it touches navigation-triggering behavior and state cleanup timing.

Overview
Tightens deep-link/action deduplication to avoid repeated processing: useDeepLinkWatcher now tracks already-seen URLs and skips re-handling the same getInitialURL result (including the post-login re-check), and ClaimActionHandler tracks processed claim url:code pairs to avoid re-running claim setup on screen refocus.

Simplifies ActionHandler's processing guard from an actionId -> actionRef map to an actionId set, relying on markActionProcessed cleanup to allow re-triggering later, while still preventing duplicate execution during a single processing cycle.

Minor UI tweak: Counter now inserts a leading space before unitsText/closingText when present.

Written by Cursor Bugbot for commit 05347e7. This will update automatically on new commits. Configure here.

jorbuedo and others added 3 commits February 3, 2026 13:27
The Counter component was concatenating counter, unitsText, and
closingText without spaces, resulting in text like "3565Tokensfound"
instead of "3565 Tokens found".
The deep link watcher was re-processing the same initial URL when
the processLink callback reference changed during navigation. This
caused a loop where users were sent back to the start of the Send
flow repeatedly.

Added URL-based tracking using a Set ref to prevent re-processing
the same URL. Also simplified ActionHandler and ClaimActionHandler
to use the same consistent Set-based pattern instead of fragile
object reference comparisons.
@jorbuedo jorbuedo merged commit a6deabe into preview Feb 3, 2026
3 checks passed
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.


if (!actionId) {
// Check if we've already processed this action
if (!actionId || processedActionsRef.current.has(actionId)) {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action re-trigger detection logic removed breaks deep link retries

Medium Severity

The change from Map<string, PendingAction> to Set<string> removes logic that detected when the same actionId was triggered with a different object instance. Previously, the code compared object references to allow reprocessing when a "new trigger" occurred (same link clicked again). Now, once an actionId is in the Set, any subsequent trigger with the same actionId is silently ignored until processing completes. This could cause user-facing issues where clicking the same deep link multiple times appears to do nothing while an action is still processing.

Additional Locations (1)

Fix in Cursor Fix in Web

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