Repository navigation
4.7.2
本版本收录两个上游贡献者修复(PR #285 / #286),均为 Bug fix,不涉及配置项与数据库变更。
修复:Provider 删除或同 ID 替换后仍调用旧实例(PR #285)
- 筛选、提炼、强化三个角色每次调用前重新解析 AstrBot 注册表中的当前 Provider 实例,并复核类型(非 CHAT_COMPLETION 视为不可用);运行期删除模型提供商或用同一 ID 更新配置后不再对已关闭的旧实例发起调用,同 ID 重新注册后可自动恢复。
- Provider 被删除或替换期间完成的旧请求结果直接丢弃,不返回上层、不写入筛选缓存;缓存与 in-flight 去重按 Provider 实例隔离,避免旧实例结果串到新实例。
- 显式配置的 Provider ID 失效时不再自动改用其他供应商(避免悄悄切换),只跳过本次调用并按 ID 去重告警;保留全部 ID 留空时的自动配置与未指定角色的既有备选回退。
- 新增回归测试 54 例(
tests/unit/test_framework_llm_adapter.py)。
修复:动态阶段规划收到空响应仍进入 JSON 解析(PR #286)
_plan_dynamic_stages()在提炼模型返回空内容(None/空字符串/纯空白)或消毒后内容为空时,提前回退基础阶段模板,不再产生二次报错日志。- 有效响应的解析路径保持不变;新增回归测试 6 例 + 1 例对照(
tests/unit/test_guardrails_json_parsing.py)。
测试
- 本地 Python 3.14 全量套件:合并后 main 与两个 PR 分支分别独立验证,除本机 webui 导入环境的 3 个既有失败(main HEAD 相同清单复现)外全部通过;PR 分支净新增 60 个用例全绿。
- 版本同步校验
tests/unit/test_metadata.py:2 passed;改动文件ruff check全部通过;Sourcery 检查两个 PR 均通过。
完整变更: https://github.com/NickCharlie/astrbot_plugin_self_learning/blob/main/CHANGELOG.md