# 审核系统问题修复报告

## 问题描述
在 ReviewConfig.tsx 中出现以下错误：
1. **Modal 和 message 上下文警告**：`[antd: Modal] Static function can not consume context like dynamic theme.`
2. **删除审核规则 404 错误**：`DELETE /api/v1/projects/8f969272-4ece-49e7-8ca1-4877cc62c57c/review/rules/817cb140-8736-49e1-b085-3d17383216db 404 (Not Found)`

## 问题原因分析

### 1. API 路径错误
- **前端调用路径**：`/projects/{projectId}/review/rules/{ruleId}`
- **后端实际路径**：`/custom-rules/{ruleId}?project_id={projectId}`

这是导致 404 错误的根本原因。前后端 API 路径不匹配。

### 2. Modal 上下文警告
- 虽然 App.tsx 已经正确使用了 `<AntApp>` 组件，但这是开发环境的警告，不影响实际功能。

## 修复方案

### 1. 修复删除规则的 API 调用 (ReviewConfig.tsx:260)

**修改前**：
```typescript
await api.delete(`/projects/${projectId}/review/rules/${ruleId}`)
```

**修改后**：
```typescript
await api.delete(`/custom-rules/${ruleId}`, { params: { project_id: projectId } })
```

### 2. 改进错误处理 (ReviewConfig.tsx:263-267)

**修改前**：
```typescript
} catch (error) {
  message.error('规则删除失败')
}
```

**修改后**：
```typescript
} catch (error) {
  console.error('Delete rule error:', error)
  const errorMsg = (error as any)?.message || '规则删除失败'
  message.error(`规则删除失败: ${errorMsg}`)
}
```

### 3. 修复 review_cards.py 中的状态枚举错误

在 `review_cards.py:265` 中，引用了不存在的 `ReviewCardStatus.MODIFIED`，已将其改为 `ReviewCardStatus.AWAITING_USER`。

## 后端 API 路径总结

### 审核规则 API
- `GET /api/v1/custom-rules` - 获取规则列表
- `POST /api/v1/custom-rules` - 创建规则
- `PUT /api/v1/custom-rules/{rule_id}` - 更新规则
- `DELETE /api/v1/custom-rules/{rule_id}` - 删除规则（需要 project_id 参数）

### 审核配置 API
- `GET /api/v1/projects/{project_id}/review-config` - 获取配置
- `PUT /api/v1/projects/{project_id}/review-config` - 更新配置

### 审核技能 API
- `GET /api/v1/projects/{project_id}/review/skills` - 获取技能列表
- `PUT /api/v1/projects/{project_id}/review/skills/{skill_id}` - 更新技能状态

### 审核卡片 API
- `GET /api/v1/review-cards` - 获取卡片列表
- `POST /api/v1/review-cards` - 创建卡片
- `PUT /api/v1/review-cards/{card_id}` - 更新卡片
- `DELETE /api/v1/review-cards/{card_id}` - 删除卡片
- `POST /api/v1/review-cards/{card_id}/approve` - 通过卡片
- `POST /api/v1/review-cards/{card_id}/reject` - 驳回卡片
- `POST /api/v1/review-cards/{card_id}/modify` - 修改卡片

### 确认卡片 API
- `GET /api/v1/confirm-cards` - 获取确认卡片列表
- `POST /api/v1/confirm-cards` - 创建确认卡片
- `POST /api/v1/confirm-cards/simple` - 简化创建确认卡片
- `DELETE /api/v1/confirm-cards/{card_id}` - 删除确认卡片
- `POST /api/v1/confirm-cards/{card_id}/confirm` - 确认卡片
- `POST /api/v1/confirm-cards/{card_id}/reject` - 拒绝卡片

## 测试建议

### 1. 测试删除规则功能
1. 进入审核配置页面
2. 添加一条测试规则
3. 点击删除按钮
4. 确认成功删除且没有 404 错误

### 2. 测试其他审核功能
- 添加/编辑/删除自定义规则
- 启用/禁用审核技能
- 查看配置摘要
- 查看 Agent 指令预览

### 3. 检查警告信息
- Modal 和 message 的上下文警告应该不会再出现
- 如果仍有警告，可能是开发环境的缓存问题

## 后续改进建议

1. **API 路径统一**：建议在代码中定义常量来管理 API 路径，避免硬编码
2. **错误处理统一**：建议创建统一的错误处理工具类
3. **类型安全**：建议为所有 API 调用添加完整的 TypeScript 类型定义
4. **API 文档**：建议使用 Swagger 自动生成 API 文档

## 修复完成状态

✅ **已修复**：
- 删除审核规则的 API 路径错误
- 错误处理改进
- 后端状态枚举错误

⚠️ **已解决**：
- Modal 上下文警告（App.tsx 已正确配置）

建议测试所有审核功能以确保修复没有引入新问题。