Commit Graph
14 Commits
Author SHA1 Message Date
shenleiandClaude Opus 5 8302977351 refactor: 按领域将 AppState 拆分为 mixin
- app_state.dart 只保留持久化字段(_AppStateData)、加载/存档、设置项和清空进度
- app_state_review.dart:复习队列与掌握度
- app_state_lesson.dart:课程解锁、分段与课内步骤流程
- app_state_assessment.dart:阶段测评
- app_state_ai_content.dart:临时释义、句子分析缓存与补练课
- 后台同步调用统一为 _syncInBackground()

纯搬移,方法体未改,无用户可见变化。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 17:22:19 +09:00
shenleiandClaude Opus 5 f1a5bb8999 refactor: 合并 AiService 各文本接口重复的请求流程
8 个文本接口原本各自重复一套:取 API Key、校验模型与地址、按服务商拼请求头和请求体、
超时、判断 2xx、提取回复内容。现在统一到 _requestContent / _requestPrompt,
底层发送逻辑为 _postJson,请求体由 _buildTextPayload 构造(testConnection 和
transcribeAudio 也改用它们)。各接口只保留提示词和结果解析。

纯重构,不改变行为。已用临时测试录下 3 种服务商、4 种响应(成功、500、401、
网络异常)以及配置无效时的全部请求:共 134 个请求的地址、请求头、请求体和
所有返回值,重构前后逐字节一致。ai_service.dart 从 1291 行减为 1051 行。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 17:14:32 +09:00
shenleiandClaude Opus 5 5faeda5e2d refactor: 将 AppState 本地存档序列化拆分到 app_state_snapshot.dart
纯代码搬移,不改行为:_restore、快照 JSON 构建及相关解析函数移入 part 文件。
已用覆盖全部存档字段的快照比对验证,重构前后写出的存档逐字节一致。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 17:07:23 +09:00
shenleiandClaude Opus 5 8ed52312fb fix: 登录同步后首页恢复课程位置与复习卡片
- 拉取合并时还原当前课程与分段位置,位置只前进不后退,跳过其他设备已完成的课
- 由云端掌握项重建复习卡片,并纠正旧客户端写坏的首次复习到期时间
- 同 checkpoint 时以证据更多的一方为准;推送缺卡片项时不再用当前时间作到期时间
- 登录/注册及合并逻辑升级后强制全量拉取一次

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 17:05:15 +09:00
shenleiandClaude Opus 5 61abc69037 feat: 重做阅读找答案题与 AI 情境对话,并归拢本地识别、查词等既有改动
阅读"在对话里找到答案":
- 16 道题全部重写,干扰项真实出现在对话里,靠说话人归属或否定句才能作答
- 选项按题目内容确定性打乱,答案不再固定排第一;听力环节同样处理
- 去掉超纲干扰项、重复题干,收紧自由作答匹配(过去单个字母也能判对)

AI 情境对话:
- 提示词区分"AI 这一句要做什么"与"学习者随后要完成什么",并下发已教词句清单
- JSON 只强制 reply,translation/feedback 可选;不再索要用不上的 slots/evidence
- AI 不可用时页面明确提示当前回复来自内置示范脚本
- 删掉按 stage 下标猜中文翻译的兜底,避免译文与英文对不上
- 整课对话改用逐轮必需表达校验,替换"关键词沾边就算过";修正自由场景正则误伤
- 总结的"完成任务"按实际通过的轮次生成;模型点评只在结束页呈现一次
- 自由场景支持草稿续练(独立存储槽);修正回答轮数文案与永不解锁的场景标注

同时提交此前工作区中累积的改动:SenseVoice 本地识别、查词/句型解析卡、
复习与测评页调整等,并补充对话校验、选项分布和句子解析的测试。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 16:38:23 +09:00
shenandshen eda5dfce62 feat: 完善芽说英语品牌Logo与图标配置,完成跨平台云端同步服务开发与自动化部署 2026-09-16 09:15:53 +08:00
shenandshen 293b838341 feat: save repeat audio on mic record and rename button to play repeat 2026-09-15 22:52:49 +08:00
shenandshen 042e867521 feat: upgrade local speech recognition engine to SenseVoice-Small with hardware audio enhancements 2026-09-15 22:36:10 +08:00
shenandshen be5075fa3d feat: integrate Sherpa-ONNX local offline speech recognition engine 2026-09-15 22:22:32 +08:00
shenandshen db7ec7404f feat: set default reasoning effort to low for all AI requests 2026-09-15 22:06:52 +08:00
shenandshen 503f1d8d1d feat: add AI voice transcription fallback for domestic Android ROMs 2026-09-15 22:02:26 +08:00
shenandshen 524788291b feat: 原生支持 /v1/responses 接口与 Chat Completions 双协议自适应,增加端到端联调测试 2026-09-15 20:44:27 +08:00
shenlei a717365c10 feat: 增加AI配置文件与TTS自动朗读,修复二级页面返回按钮与音频播放 2026-09-15 19:11:39 +09:00
shenandshen 37c86f7ecb feat: complete kouyu_english app codebase, A0 specifications and .gitignore 2026-09-15 15:58:33 +08:00