Skip to content

v4.1.3

Choose a tag to compare

@FoolishWiser FoolishWiser released this 12 Sep 05:17
· 3 commits to main since this release

六边形能力雷达 v4.1.3

修复:插件加载失败 the first argument must be callable

  • 根因:新增的 submit_radar_evidence 工具把"指向插件实例"的字段命名成了 handler,
    而 handler 是 AstrBot FunctionTool 的保留字段。AstrBot 在加载插件时会执行:

    if ft.handler and ft.handler.__module__ == metadata.module_path:
        ft.handler = functools.partial(ft.handler, metadata.star_cls)

    我们把 Main 实例塞进该字段后,加载阶段对它做 functools.partial → 直接抛
    TypeError: the first argument must be callable,插件无法加载。

  • 修复:字段改名为 plugin(不再触碰任何 AstrBot 保留字段)。

  • 影响范围:该问题自 v4.1.0 引入工具时就存在;v4.1.3 一并修正,功能本身未受影响。

新增回归测试(防止同类问题再犯)

  • 遍历全部 7 个工具,断言 AstrBot 保留字段(handler / handler_module_path / active / is_background_task)
    未被我们占用,且自有 dataclass 字段仅允许 store / plugin;
  • 同时验证证据工具 run() 仍能正常写入并算分。

升级后重载插件即可加载。若你此前卡在 v4.1.0~v4.1.2 的加载失败,这次直接升级到 v4.1.3。