# Residual Review Findings — feat/ui-ue-enhancement

**Run context**: ce-code-review mode:agent, run_id `20260701-122351-b8e97648`
**Branch**: feat/ui-ue-enhancement
**Base**: 521f573 (origin/main)
**Date**: 2026-07-01

## Residual Review Findings

以下 actionable findings 未在 Step 5 应用，需要后续处理：

- **P1** | `src/agentkit/experts/_phase_executor.py:241` | expert_step 流式事件 payload 缺少 expert_name/expert_color/content/step 字段，与前端 WsServerMessage 契约不匹配，产生损坏的占位消息 | autofix_class: manual, owner: downstream-resolver
- **P2** | `src/agentkit/core/config_driven.py:693` | execute_stream 绕过 execute()，未注册 CancellationToken，流式任务无法被 cancel_task() 协作式取消 | autofix_class: gated_auto, owner: downstream-resolver, requires_verification: true
- **P2** | `src/agentkit/experts/orchestrator.py:293` | team_synthesis 流式中断后留下孤儿 streaming milestone 占位（无终结事件），前端永久转圈 | autofix_class: manual, owner: downstream-resolver
- **P2** | `src/agentkit/server/frontend/src/stores/chatStream.ts:880` | team_synthesis_chunk 占位匹配缺少 synthesis_id 去重，可附身到上一次孤儿 milestone | autofix_class: manual, owner: downstream-resolver

## Advisory findings (report-only)

- P2 | `_phase_executor.py` | 三个流式 handler 方法存在大量重复代码（_handle_rewoo_stream/_handle_plan_exec_stream/_handle_reflexion_stream）
- P2 | `config_driven.py:856` | 同步 _handle_react 未复用 _build_llm_messages，存在漂移风险
- P2 | `chatStore.ts:489` | deleteMessage 仅前端隐藏，无 UI 提示用户消息会在重新同步后恢复
- P3 | `base.py:177` | execute_stream 缺少 on_task_start/on_task_complete/on_task_failed 生命周期钩子调用
- P3 | `config_driven.py:686` | ConfigDrivenAgent 流式分派逻辑无单元测试
- P3 | `chatStore.ts:1751` | hasReply 守卫仅检查紧邻下一条消息，无法覆盖跨消息回复场景
- P3 | `chatStream.ts:1904` | per-token 字符串拼接在热路径上为 O(n²) 分配（V8 rope strings 优化，影响有限）
- P3 | `ThinkingBlock.vue:136` | summary computed 依赖 content.length，每 token 重算
- P3 | `UserBubble.vue:1640` | 每个 bubble 挂载独立 document touchstart 监听器

## Applied in Step 5

- **P0 fix** | `chat.py:144` | _VALID_TEAM_EVENT_TYPES 添加 expert_result_chunk/expert_result_chunk_reset/team_synthesis_chunk
- **P0 fix** | `_phase_executor.py:246` | final_answer 不重复累积 token 内容（避免内容翻倍）
- **P2 fix** | `_phase_executor.py:278` | 异常处理扩展为 except Exception 兜底（捕获 LLMProviderError 等）
- **Test fix** | `test_phase_executor_streaming.py` | 3 个测试更新/新增以符合 ReActEngine token+final_answer 合约
