feat: refactor API key configuration and enhance application initialization

- Renamed `check_environment` to `check_api_key_configured` for clarity, simplifying the API key validation logic.
- Removed the blocking behavior of the API key check during application startup, allowing the app to run while providing a prompt for configuration.
- Updated `LocalAgentApp` to accept an `api_configured` parameter, enabling conditional messaging for API key setup.
- Enhanced the `SandboxRunner` to support backup management and improved execution result handling with detailed metrics.
- Integrated data governance strategies into the `HistoryManager`, ensuring compliance and improved data management.
- Added privacy settings and metrics tracking across various components to enhance user experience and application safety.
This commit is contained in:
Mimikko-zeus
2026-02-27 14:32:30 +08:00
parent ab5bbff6f7
commit 8a538bb950
58 changed files with 13457 additions and 350 deletions

View File

@@ -0,0 +1,81 @@
# P1-05 执行结果状态模型升级总结
## 问题描述
当前执行结果只有布尔成功/失败,未提供"部分成功"与成功失败数量的统一结构,导致用户难以判断可用结果比例,错误恢复成本高。
## 解决方案
### 1. 升级 ExecutionResult 数据结构
- **位置**: `executor/sandbox_runner.py:17`
- **改动**: 将 `success: bool` 升级为三态模型
- `status: str` - 'success' | 'partial' | 'failed'
- `success_count: int` - 成功数量
- `failed_count: int` - 失败数量
- `total_count: int` - 总数量
- `success_rate: float` - 成功率(属性)
- `get_status_display()` - 状态中文显示
### 2. 改进执行结果分析逻辑
- **位置**: `executor/sandbox_runner.py:_analyze_execution_result()`
- **功能**: 智能解析执行输出,提取统计信息
- 支持多种输出格式:
- 中文: "成功: X 个, 失败: Y 个"
- 英文: "success: X, failed: Y"
- 总数: "处理了 X 个文件"
- 三态判断逻辑:
- `failed_count == 0` → success
- `success_count == 0` → failed
- `both > 0` → partial
### 3. 更新 UI 展示逻辑
- **位置**: `app/agent.py:1017`
- **改动**: `_show_execution_result()` 支持三态显示
- **success**: 询问是否打开输出文件夹
- **partial**: 显示统计信息,提供查看输出或日志选项
- **failed**: 询问是否查看日志
### 4. 添加度量指标收集
- **新增文件**: `executor/execution_metrics.py`
- **功能**:
- 记录每次执行的三态结果和统计数据
- 计算关键指标:
- `partial_rate` - 部分成功占比
- `partial_retry_rate` - partial 后二次执行率
- `avg_manual_check_time_minutes` - 平均人工核对耗时
- `overall_file_success_rate` - 整体文件成功率
- 导出度量报告Markdown 格式)
## 测试结果
```
总执行次数: 10
- 全部成功: 4 (40.0%)
- 部分成功: 4 (40.0%)
- 全部失败: 2 (20.0%)
文件级统计:
- 总处理文件数: 96
- 成功文件数: 70
- 失败文件数: 26
- 整体文件成功率: 72.9%
部分成功分析:
- 部分成功占比: 40.0%
- 部分成功后二次执行率: 50.0%
- 平均人工核对耗时: 2.0 分钟/任务
```
## 向后兼容性
- 保留 `result.success` 属性(只读),返回 `status == 'success'`
- 保留 `_check_execution_success()` 方法,内部调用新的分析逻辑
## 度量指标位置
- 指标文件: `workspace/metrics/execution_results.json`
- 报告文件: `workspace/metrics/execution_report.md`
## 影响分析
✅ 用户可清晰看到成功/失败数量和比例
✅ partial 状态提供更精细的错误恢复指导
✅ 度量指标帮助持续优化代码生成质量
✅ 人工核对耗时统计量化了用户成本