Skip to content

Conversation

@youngkidwarrior
Copy link
Collaborator

Why:
Fixes critical race conditions in the activity feed by: 1) updating
optimistic entry event_id to match workflowId after transfer succeeds
(prevents duplicates when temporal activity arrives), 2) removing
optimistic entry on transfer failure (prevents stale entries), 3)
optimizing polling to only poll 'initialized', 'submitted', 'sent'
statuses (not 'confirmed'), 4) adding user_op_hash to optimistic
entries, 5) documenting asymmetric filtering where recipients don't
see temporal activities.

Test plan:

  • Build project: npm run build
    Expected: No TypeScript errors
  • Start transfer and watch activity feed
    Expected: Only one activity appears (no duplicate when temporal arrives)
  • Force transfer failure before workflow starts
    Expected: Optimistic entry removed from feed
  • Monitor network during confirmed transfer
    Expected: Polling stops after status becomes 'confirmed'

Why:
Fixes critical race conditions in the activity feed by: 1) updating
optimistic entry event_id to match workflowId after transfer succeeds
(prevents duplicates when temporal activity arrives), 2) removing
optimistic entry on transfer failure (prevents stale entries), 3)
optimizing polling to only poll 'initialized', 'submitted', 'sent'
statuses (not 'confirmed'), 4) adding user_op_hash to optimistic
entries, 5) documenting asymmetric filtering where recipients don't
see temporal activities.

Test plan:
- Build project: npm run build
  Expected: No TypeScript errors
- Start transfer and watch activity feed
  Expected: Only one activity appears (no duplicate when temporal arrives)
- Force transfer failure before workflow starts
  Expected: Optimistic entry removed from feed
- Monitor network during confirmed transfer
  Expected: Polling stops after status becomes 'confirmed'
Copy link
Collaborator Author

youngkidwarrior commented Dec 19, 2025

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.

2 participants