Files
zclaw_openfang/docs/features/audit-v12/M11-classroom.md
iven 442ec0eeef
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
docs(audit): V12 模块化端到端审计报告 — 11 模块 + 总报告
混合矩阵式审计:10 个功能模块 × 五维检查清单
- 项目整体健康度: 76/100
- 2 个 P0 (M4 双数据库 + 反思引擎 LLM 未接入)
- 15 个 P1 (跨 M2/M3/M4/M5/M6/M7/M11)
- 三类断链模式: 写了没接/接了不对/双实现未统一
- 三阶段修复路线图: P0(2-3天) → P1(5-7天) → P2(5-7天)
2026-04-04 17:55:03 +08:00

2.4 KiB
Raw Permalink Blame History

模块 M11 Classroom 课堂 审计报告

审计版本: V12 | 日期: 2026-04-04

1. 链路完整性

链路 状态 备注
课堂生成 classroom_generate → 4 阶段 pipeline → classroom:progress 事件
课堂加载 classroom_get → ClassroomStore HashMap
场景播放 SceneRenderer 按 actions 自动播放(speech/whiteboard/quiz)
课堂聊天 classroom_chat → LLM 多 agent 响应
笔记展示 scenes 列表 → 点击切换
白板渲染 ⚠️ WhiteboardCanvas 和 SceneRenderer 内联 SVG 两套实现未统一
TTS 浏览器 SpeechSynthesis zh-CN
导出 JSON/HTML/Markdown → Blob download
取消生成 classroom_cancel_generation → tasks 移除
课堂历史列表 classroom_list 后端已实现但前端未集成
生成进度查询 classroom_generation_progress 后端已实现但前端未集成

链路完整性评分: 82/100

2. 问题清单

ID 文件 级别 描述 修复建议
M11-01 generate.rs:141-144 P1 is_cancelled()blocking_lock() 在 async 函数中tokio runtime 可能死锁 改为 try_lock()tokio::sync::watch channel
M11-02 generate.rs:158-175 P1 Stage 0/1 LLM 调用无 map_errdriver 未配置时可能 panic 或返回空结果无错误提示 增加 map_err 错误处理
M11-03 generate.rs:190-213 P1 课堂数据仅存内存 HashMap应用重启后全部丢失 增加 SQLite 或文件持久化
M11-04 chat.rs:82-92 P2 LLM 失败静默 fallback 到 placeholder用户无法区分真实和模拟回复 增加 isPlaceholder 标志
M11-05 ClassroomPlayer.tsx:74-77 P2 生成完成后强制打开 player即使生成期间用户已关闭 增加手动关闭状态检查
M11-06 classroomStore.ts:192 P2 chat message ID 用 Date.now() 可能冲突 改用 crypto.randomUUID()
M11-07 WhiteboardCanvas.tsx P3 SceneRenderer 未引用 WhiteboardCanvas白板有两套渲染实现 统一为一套
M11-08 export.rs:92-103 P3 HTML 导出只渲染 title+duration不包含 key_points 等内容 丰富导出内容

综合健康度: 70/100 — 功能链路基本贯通但无持久化、async 锁风险、LLM 错误不透明是核心短板。