Skip to content

修复课程助手聊天、提醒与多轮状态 - #31

Merged
cakeni merged 1 commit into
mainfrom
fix/course-assistant-reliability
Oct 6, 2026
Merged

cakeni merged 1 commit into
mainfrom
fix/course-assistant-reliability

Conversation

@cakeni

@cakeni cakeni commented Oct 4, 2026

Copy link
Copy Markdown
Owner

改动说明

普通聊天的自然语言回复曾被课程操作 JSON 解析器误判为“操作格式不完整、课程不存在或超出范围”。14.05 提醒、多轮时间补充和失败重试还存在上下文丢失或绑错课程的问题。

这次分离系统上下文、函数工具、回复解码、领域校验和网络传输。聊天直接显示自然文字;安排通过明确工具提出,并经过本地预览与确认。格式或参数问题最多自动整理一次,服务明确拒绝工具参数时才走兼容通道。

每次请求独立保存实际课程绑定和原日期;同名候选在聊天、失败与重启后保留。待确认期间可以只读查询,原方案继续保留。本地单次提醒支持点号时间、中文时间及连续补充,查询、回复失败和操作未执行分别显示。

版本更新为 1.0.42 / 43;保留主分支已合并的测试依赖,没有新增依赖。详细说明见 docs/course-assistant-reliability/README.md。

行为影响

  • 用户界面或交互发生变化:查询显示“查询结果”,回复失败与操作未执行分别提示,增加整理回复进度。
  • 数据库、备份或导入格式发生变化。
  • 提醒行为发生变化:单次提醒的时间补充可在重启后继续;未增加系统权限。
  • 不影响现有用户数据;课程与事项变更继续需要确认。

旧版本失败请求无法还原绑定信息时,恢复原文并要求重新明确目标。生活提醒仍只支持单次。

验证

在最新主分支的独立工作区执行:

.\gradlew.bat --no-daemon testDebugUnitTest lintDebug assembleDebug assembleDebugAndroidTest
  • lintDebug:0 错误,234 项现有警告。
  • testDebugUnitTest:254 项通过,1 项可选在线视觉评测跳过。
  • assembleDebug / assembleDebugAndroidTest。
  • 已在模拟器验证 5 个助手测试类、42 项回归,全部通过;动画设置已恢复。

开发阶段另完成 57 个真实 DeepSeek 回合或场景,使用虚构数据,不写数据库。同步工作区保持主分支的 AndroidX test ext JUnit 1.3.0。

截图

截图采用合成测试数据。角色聊天采用固定服务测试回复,验证消息显示与恢复;真实模型对话另外完成了上述 57 个回合或场景。

普通聊天 点号时间提醒预览 课程查询标记
普通聊天 14.05 提醒 查询结果

@cakeni
cakeni merged commit fa3c730 into main Oct 6, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant