# Change: 用户端考试页面流程与统计能力

## Why
当前用户端已具备基础登录、任务列表、生成试卷、交卷与结果页能力，但缺少“按用户匹配考试计划、限次控制、弃考、过程约束、历史回看、个人统计与操作日志”等完整考试流程要求，导致管理端考试任务难以按规则落地执行。

## What Changes
- 新增用户端登录会话规则与登出能力（基于现有用户数据模型）
- 新增用户端考试计划（考试任务）匹配与展示规则（仅展示当前时间有效且分派给当前用户的任务）
- 新增考试次数限制（每个任务最多 3 次）与最高分规则（取历史最高分为最终分）
- 新增考试过程控制：弃考（二次确认、清理进度、不计入统计、次数不减少）、答题进度自动保存、题目导航
- 新增考试交互约束：考试中不展示评分信息，交卷后展示评分详情
- 新增用户端个人统计与可视化展示（完成率/合格率/优秀率）
- 新增关键操作审计日志（登录、生成试卷、弃考、交卷、查看历史）

## Impact
- Affected specs:
  - `openspec/specs/api_response_schema.yaml`（所有新增/调整接口继续使用统一响应包裹）
  - `openspec/specs/auth_rules.yaml`（用户端会话与接口访问规则将被补齐为可实现状态）
  - `openspec/specs/database_schema.yaml`（可能需要新增日志表/补齐考试次数与历史聚合查询）
- Affected code (expected):
  - Frontend: `src/pages/HomePage.tsx`, `src/pages/UserTaskPage.tsx`, `src/pages/SubjectSelectionPage.tsx`, `src/pages/QuizPage.tsx`, `src/pages/ResultPage.tsx`, `src/contexts/*`
  - Backend: `api/server.ts`, `api/controllers/*`, `api/models/examTask.ts`, `api/models/quiz.ts`

