rwadurian/backend/mpc-system/services
hailin eb3f71fa2e fix(android): fix session_started event race condition with pendingSessionId
Problem:
- Android initiator/joiner could miss session_started events due to race condition
- Events arriving between joinSession() and _currentSession.value assignment were ignored
- This caused keygen timeout because parties never started the TSS protocol

Solution:
- Add pendingSessionId field set BEFORE joinSession() call
- Modify startSessionEventSubscription() to match events against both activeSession and pendingSessionId
- Clear pendingSessionId on session completion, failure, or cancellation

This ensures session_started events are correctly processed even if they arrive
before _currentSession is fully initialized.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-01 09:09:52 -08:00
..
account Revert "fix(co-keygen): convert threshold at storage time to match tss-lib convention" 2025-12-31 10:24:25 -08:00
message-router fix(message-router): 修复 JoinSession 代理未转发 Status 字段 2025-12-30 09:20:15 -08:00
server-party feat(server-party): add ExecuteWithSessionInfo for co-managed keygen 2025-12-30 00:43:09 -08:00
server-party-api fix(context): use parent context instead of Background() to allow proper cancellation 2025-12-06 06:36:34 -08:00
server-party-co-managed fix(server-party-co-managed): use session_started event for participants list 2025-12-30 00:52:28 -08:00
service-party-android fix(android): fix session_started event race condition with pendingSessionId 2026-01-01 09:09:52 -08:00
service-party-app feat(android): strengthen gRPC connection reliability 2026-01-01 06:44:42 -08:00
session-coordinator feat(session): broadcast participant_joined event via gRPC for real-time UI updates 2026-01-01 08:34:47 -08:00
tss-wasm fix(tss): convert threshold to tss-lib format (threshold-1) in all keygen and signing 2025-12-31 12:19:58 -08:00