Skip to content

4.7.2

Choose a tag to compare

@EterUltimate EterUltimate released this 04 Nov 01:24
· 34 commits to main since this release

本版本收录两个上游贡献者修复(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