Conversation
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.
There was a problem hiding this comment.
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)) { |
There was a problem hiding this comment.
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.


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:
useDeepLinkWatchernow tracks already-seen URLs and skips re-handling the samegetInitialURLresult (including the post-login re-check), andClaimActionHandlertracks processed claimurl:codepairs to avoid re-running claim setup on screen refocus.Simplifies
ActionHandler's processing guard from anactionId -> actionRefmap to anactionIdset, relying onmarkActionProcessedcleanup to allow re-triggering later, while still preventing duplicate execution during a single processing cycle.Minor UI tweak:
Counternow inserts a leading space beforeunitsText/closingTextwhen present.Written by Cursor Bugbot for commit 05347e7. This will update automatically on new commits. Configure here.