# 软件任务处理与调试问题

## 诊断总结

**问题 1: 任务无法完整执行 / 连续处理失败**

- **根因**：
  - `ExecutionEngine.kt:94-103` — 每个 point 只做一次匹配，失败就立即终止整个任务。页面加载延迟、动画未完成都会导致匹配失败。

- **修复**：
  - 每个 point 增加 **重试机制**（默认3次），指数退避等待（1.5s → 3s → 6s），给页面加载留足时间。
  - 失败时 **自动截图保存** 到 `error_screenshots/`，并写入数据库，不再是 `screenshotPath=null`。
  - `DiagnosticLogger` 日志阈值从 2MB 提到 **10MB**，截断时保留尾部 1MB 而非全删。

**问题 2: 日志窗口/报表问题**

- **根因**：
  - `ErrorLogActivity` 的 adapter 用 `notifyDataSetChanged()` 全量刷新，大数据量卡顿。
  - 错误截图始终为 `null`，日志窗口截图区域永远空白。

- **修复**：
  - Adapter 改用 **DiffUtil** 差量更新，滚动流畅。
  - ExecutionEngine 失败时调用 `captureErrorScreenshot()` 保存 JPEG 截图，日志里能看到失败时的屏幕状态。

**问题 3: 语音交互卡在刷新**

- **根因**（三层问题叠加）：
  1. `scheduleRestart()` 的 `removeCallbacksAndMessages(RESTART_TOKEN)` **不起作用**（`postDelayed` 的 Runnable 不关联 token），导致重启回调堆积。
  2. `TtsManager` 没有播报完成回调，系统不知道何时恢复识别。
  3. TTS 播报时语音识别仍在运行，录到自己的声音产生循环。

- **修复**：
  - `TtsManager` 增加 `UtteranceProgressListener`，提供 `isSpeaking` 状态和 `onSpeechDone` 回调。
  - `AgentChatService` 新增 `pauseRecognitionForTts()` — 每次 TTS 播报前暂停识别，播报完成后由回调自动恢复。 
  - `startRecognition()` 加入 TTS 状态检查，播报中直接跳过。
  - `scheduleRestart()` 改用 `Runnable` 引用 + `removeCallbacks(runnable)` 精确取消。
  - 语音识别 Intent 增加 `VOICE_COMMUNICATION` 音频源启用硬件 AEC（回声消除）。
  - 新增 **熔断机制**：连续 ERROR_SERVER 20次或总错误40次自动停止，通知用户用文字输入。

## 四大命题完成情况核查

**命题一：Token 窗口与调用链条性能极限**

| 序号 | 功能项 | 我们要求的细节 | 实际完成情况 |
| --- | --- | --- | --- |
| 1 | KV Cache 量化 | `.setCacheTypeK("q4_0").setCacheTypeV("q4_0")` | ❌ 未完成 |
| 2 | ctxSize 提升到 8192 | ❌ 未完成（仅提及） |
| 3 | threads 提升到 8 | ❌ 未完成（仅提及） |
| 4 | 结构化摘要 | ❌ 未完成 |
| 5 | 重要性加权驱逐 | ❌ 未完成 |
| 6 | 外置记忆检索工具 | ❌ 未完成 |
| 7 | 任务展开机制 | ❌ 未完成 |
| **完成率** | **0/7** |  |  |

**命题二：API 事件驱动的 T1-T4 感知重写**

| 序号 | 功能项 | 我们要求的细节 | 实际完成情况 |
| --- | --- | --- | --- |
| 1 | T1 事件驱动采集 | 触发全屏截图 | ❌ 未完成 |
| 2 | T1 局部截图 | 触发 60px 局部截图 | ❌ 未完成 |
| 3 | T2 VAD | 检测人声才启动识别 | ❌ 未完成 |
| 4 | T2 TTS 互斥 | 部分完成 | ⚠️ |
| 5 | T3 触觉自动采集 | 手势回调中自动附带 T3 | ❌ 未完成 |
| 6 | T4 附带采集 | 触发时附带采集 | ❌ 未完成 |
| 7 | T4 低频心跳 | 每 5 分钟独立基线采集 | ❌ 未完成 |
| **完成率** | **0/9** |  |  |

**命题三：语音交互去刷新持续交互**

| 序号 | 功能项 | 我们要求的细节 | 实际完成情况 |
| --- | --- | --- | --- |
| 1 | 精确取消 | ✅ 已完成 |
| 2 | 播报状态回调 | ✅ 已完成 |
| 3 | 互斥锁 | ✅ 已完成 |
| 4 | 硬件 AEC | ✅ 已完成 |
| 5 | 熔断机制 | ✅ 已完成 |
| 6 | 流式续接 | ⚠️ 部分完成 |
| **完成率** | **5/6** |  |  |

**命题四：GenUI 控制力**

| 序号 | 功能项 | 我们要求的细节 | 实际完成情况 |
| --- | --- | --- | --- |
| 1 | 动态组件生成 | ❌ 未涉及 |
| 2 | 跨平台代码输出 | ❌ 未涉及 |
| 3 | 画面交流 | ❌ 未涉及 |
| 4 | 神经元图谱 | ❌ 未涉及 |
| **完成率** | **0/4** |  |  |

## 总结

命题 | 要求项数 | 已完成 | 部分完成 | 未完成 | 完成率  
--- | --- | --- | --- | --- | ---  
一、Token 窗口与性能极限 | 7 | 0 | 0 | 7 | 0%  
二、T1-T4 感知重写 | 9 | 0 | 2 | 7 | 0%  
三、语音交互优化 | 6 | 5 | 1 | 0 | 83%  
四、GenUI 控制力 | 4 | 0 | 0 | 4 | 0%  
**总计** | **26** | **5** | **3** | **18** | **19%**

修复完成。以下是我读完全部代码后定位到的三个核心问题及对应修复。   
  
我来逐一核查完成情况的细节，用事实说话。
