|
|
@@ -1281,9 +1281,21 @@ echo "frontend: $(git -C /Users/buoy/Development/gitrepo/PPT rev-parse --short H
|
|
|
|
|
|
---
|
|
|
|
|
|
-## 完成记录(实施时填写)
|
|
|
-
|
|
|
-- 计划完成日期:_____
|
|
|
-- 后端 HEAD:_____
|
|
|
-- 前端 HEAD:_____
|
|
|
-- 偏差或额外说明:_____
|
|
|
+## 完成记录
|
|
|
+
|
|
|
+- 计划完成日期:2026-04-23
|
|
|
+- 后端 HEAD:`7d192be` (branch `feat/content-evaluator`, 基线 `aa5e1a7`,5 个 commit)
|
|
|
+ - `99e64fa` Task 1 DB 列
|
|
|
+ - `1492ebe` Task 2 pytest 骨架
|
|
|
+ - `dee45e6` Task 3 content_evaluator 模块
|
|
|
+ - `a1f1b91` Task 4 接线 _evaluate_pronunciation
|
|
|
+ - `7d192be` Task 5 /report 返回 contentFeedback
|
|
|
+- 前端 HEAD:`7c4d1a9` (branch `feat/english-speaking`, 基线 `4523862`,1 个 commit)
|
|
|
+ - `7c4d1a9` Task 6 结果页 contentFeedback 透传
|
|
|
+- 最终回归:后端 `uv run pytest` 11/11 passed;前端 `vue-tsc --noEmit` exit=0
|
|
|
+- 偏差与说明:
|
|
|
+ - Task 2 触发了 plan Step 2a 的条件分支(pytest-asyncio 缺失,按 plan 指令自动追加依赖 + conftest.py 插入 `pytest_plugins`)
|
|
|
+ - Task 4 把 `async_session` 从方法内延迟 import 提升到模块顶层(为了让 `monkeypatch.setattr` 能打到;无循环依赖风险)
|
|
|
+ - Task 6 实际走 plan 的 Branch C(实现完整 adapter),投资成本略高于 Branch A 的一行 pass-through。发现:`TopicDiscussionPreview.vue` 当前展示的是 `mockEvaluation` 硬编码数据,真实 `getReport()` 并未被 UI 消费。adapter 是结构性就位,真正"打开结果页看到 LLM 评语"需要后续把 UI 切换到走 `DialogueAPI.getReport`——该切换不在本 MVP 范围,留给后续任务
|
|
|
+ - 未做端到端 smoke(真实后端 + 真实浏览器操作),仅静态验证(单测 + 类型检查)。进入真实联调时需先在后端启动 `.env` 里配好 `AZURE_SPEECH_KEY` 和 `ONEHUB_API_KEY`
|
|
|
+ - 评审中提出的几个 non-blocking 改进项(content_evaluator 的 AsyncOpenAI 生命周期、`_StubDB` 断言说明、`pron_scores` TypedDict、adapter 错误容忍)均标记为后续迭代,未纳入本次 MVP
|