# DevFlow 待办

## 灵感模块功能完善（合并推进）

> 诊断发现的 P0-P2 问题合并为单次任务，逐项推进。  
> 排除项：#3 status 无状态机（暂保留状态可跳跃迁移，不处理）。

### P2 — 前端 / UX

- [x] **#12 前端 filter 改后端查询** ✅ 团队决策已落地:`hot`/`pending` 保留前端 filter(keyword/order_by 已下沉后端)。

## AI 对话目标丢失（诊断待办）

> 诊断报告：`docs/02-架构设计/专项设计/AI对话目标丢失诊断-2026-06-26.md`
> 实测会话 `54c8b5bd`：480 万 token，原始目标消息被压缩出局，LLM 尾部盲搜死循环。

- [x] **G1 目标钉扎** ✅ 代码已落地(`GOAL_PIN_ENABLED=true`)，pinned_goals 入口拼入 system_prompt。`PerConvState.pinned_goals: Vec<String>` + chat.rs 三处提取(追加去重,支持累积多目标)。
- [x] **G2 探索熔断** ✅ 代码已落地(`STALL_BREAKER_ENABLED=true`，`STALL_BREAKER_THRESHOLD=3`)，stall_count + is_empty_tool_result 完整实现。
- [x] **G4 话题标记修正** ✅ 代码已落地(`TOPIC_MARKER_GOAL_AWARE=true`)，pinned_goals 非空时 take 后丢弃跳过 insert。

> 落地开关(均可单点回退):`GOAL_PIN_ENABLED`/`GOAL_INJECT_BANNER`/`GOAL_MAX_CHARS=500`/`MAX_GOALS=5`/`STALL_BREAKER_ENABLED`/`STALL_BREAKER_THRESHOLD=3`/`STALL_BREAKER_WARN_FIRST`/`STALL_BREAKER_GOAL_REMIND`/`TOPIC_MARKER_GOAL_AWARE`。全置 false 等价改动前。
> 方案源:设计 workflow `wf_09a0385f-2ee` 综合裁决(system_prompt 字符串注入 > insert_at(0))。

## 对抗式评估接入（引擎已实现 → IPC + 前端打通）

> 引擎代码已就绪（`df-ideas/src/adversarial.rs` + `adversarial_helpers.rs`），
> 但 IPC 层和前端零引用，用户无法使用。需补接入层。

### 后端 — IPC 接入

- [x] **A2 批量评估命令** ⏸️ **暂不做**:单 idea 评估 `evaluate_idea` IPC 已接入(AdversarialEngine),批量评估当前无前端消费方,属过度设计。

## 最新对话分析-2026-06-28：死锁与审批卡死

> 分析来源：`devflow-trace.log` + `devflow-dev.db` 最新对话 `d9aef24f`（语音输入应用需求）。
> 核心表现：7 次工具连续失败后 L1 断路器熔断，1 条 pending 审批导致全链路死锁。

### P0 — 审批 pending 死锁

- [x] **审批超时自动取消** ✅ 已实现(15min 默认,可配置):
  - 后端 `agentic/approval_timeout.rs::cleanup_expired_approvals` 在 `try_continue_agent_loop` 入口检测超时,超时审批自动取消 + emit AiApprovalResult + audit_finalize 记入审计。
  - `PendingApproval.created_at` 记录创建时刻(SystemTime,重启恢复的按重启时刻计)。
  - `AppState.approval_timeout_minutes` + `reload_approval_timeout()` 从 Settings KV `df-approval-timeout` 启动恢复(与前端 AdvancedSection.vue 同 key,值为毫秒)。
  - IPC `ai_get_approval_timeout` / `ai_set_approval_timeout`(0=禁用,范围 0-1440 分钟)。
  - 前端已有 Settings UI(0/5/15/30/60 分钟 select),前端定时器负责运行期会话内超时,后端负责重启恢复场景兼底。
- [x] **`create_project` 自动创建目录** ✅ 已实现(`project.rs:137`)：有 path 且目录不存在时自动 `create_dir_all`，死锁链已消除（非参数控制，直接自动创建）。

### P1 — Windows 平台兼容

- [x] **`run_command` 失败追加 shell 适配提示** ✅ 已实现(`tool_registry.rs:2351-2358`)：Windows 下 tool result 尾部追加 PowerShell 适配提示(路径引用、`&&`→`;`)。
- [x] **PowerShell 反斜杠自动转义** ✅ 已修复(`tool_registry.rs:2306-2328` 注释说明根因)：serde_json 已正确还原反斜杠，不做额外转义，PowerShell 正确接受裸反斜杠路径。

### P2 — 标题 LLM 失败

- [x] **标题摘要合并连续同 role** ✅ 已实现(`title.rs:79-83`)：`merge_consecutive_roles` 发 LLM 前合并相邻 user/assistant，已覆盖 Anthropic/GLM 1214。

### P3 — 其他

- [x] **migration V33** ✅ 已实现(`migrations.rs` migrate_v33)：`workflow_executions` 加 `updated_at` 列 + `ai_conversations` 加 `pending_approvals`(审批重启恢复)。
- [x] **L0-handshake 防抖** ✅ 已实现(`lib.rs:73-82`)：3s 内重复 `ai-client-ready` 跳过。

