Commit Graph

1 Commits

Author SHA1 Message Date
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