rwadurian/backend/mpc-system/services
hailin 05c6ab3dc4 docs(android): 添加调试日志指南和2-of-3流程分析
添加两份关键调试文档:

## 1. DEBUG_LOG_GUIDE.md - 日志抓取指南
- 详细的日志抓取命令(adb logcat)
- 关键日志检查点(会话创建、事件触发、keygen启动)
- 日志分析流程图
- 常见陷阱和解决方案
- 完整的日志模板

## 2. 2OF3_FLOW_ANALYSIS.md - 2-of-3钱包创建流程深度分析

### 已发现的5个潜在Bug:

**Bug 1: 事件回调中的异常处理不一致**
- 发起者:在事件回调中用 safeLaunch 包裹
- 加入者:在函数内部用 safeLaunch
- 位置不同可能导致异常处理行为不一致

**Bug 2: safeLaunch 双重包裹可能导致静默失败** 🚨
- startKeygenAsInitiator 在事件回调中被 safeLaunch 包裹
- 函数内部已经处理了 Result.failure
- 外层 safeLaunch 只能捕获运行时异常
- 如果内部更新了错误但UI已切换状态,用户可能看不到错误

**Bug 3: 参与者数量不足时没有明确错误**
- server-party-co-managed 未加入时,会话不会启动
- 但没有超时提示,用户一直等待

**Bug 4: getSessionStatus 失败时参与者列表不准确**
- 失败时只显示自己
- 实际可能已有多个参与者
- 误导用户

**Bug 5: startKeygenAsJoiner 中的 return 没有错误处理**
- joinInfo 为 null 时静默返回
- 用户不知道为什么 keygen 没启动

### 创建失败的3个最可能原因:

1. **server-party-co-managed 没有正确加入** (70%)
   - 需要检查配置和日志

2. **session_started 事件没有被触发** (20%)
   - 参与者数量不足
   - WebSocket 连接问题

3. **startKeygenAsInitiator 失败但错误被忽略** (8%)
   - Result.failure 被处理但UI没显示

### 提供的调试步骤:
1. 检查 server-party-co-managed 状态
2. 抓取手机日志(提供完整命令)
3. 搜索关键日志片段

### 推荐修复方案:
1. 统一事件回调异常处理
2. 移除双重 safeLaunch
3. 添加超时机制

下一步:用户需要抓取日志进行精确诊断

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-26 23:27:43 -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): prevent subscription race condition on gRPC reconnect 2026-01-01 10:04:11 -08:00
server-party fix(participate_signing): 恢复 Execute 方法的 UserShareData 分支 2026-01-26 19:00:52 -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(co-managed): 使用数据库中的 PartyIndex 而非循环索引 2026-01-26 20:24:32 -08:00
service-party-android docs(android): 添加调试日志指南和2-of-3流程分析 2026-01-26 23:27:43 -08:00
service-party-app fix(tss): 修复备份恢复后签名失败的问题 2026-01-20 00:39:05 -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 feat(tss): add real-time round progress from msg.Type() parsing 2026-01-01 22:41:51 -08:00