mirror of
https://gitcode.com/JianFeeeee/homeagent-sdk.git
synced 2026-09-19 16:40:42 +00:00
问题(都是插件全局 p.auth 一份状态引起): - 中断抢占当前轮并把现场压栈,中断轮收尾 afterOutput 清空全局身份;外层 恢复(resumeTask 复用同帧、不重跑 StageOnInput)后 auth.active=false, beforeToolcall 在 !active 处直接返回 —— 该轮剩余工具调用**完全不受门**。 - 运行中到达的新消息会调 activateAuthContext 改写全局身份,把正在跑的那一轮 换成另一方的身份:换高即越权,换低即误拒。 改法:身份在 StageOnInput 绑定到本帧的 StageContext.Extra 上,beforeToolcall 以帧上身份为准(无绑定时才回退插件全局,兼容单测)。帧随中断栈一起压栈/恢复, 身份自然跟着走。 顺带:合并中断正文里的整批 message_id 现在全部消费(原来只清第一个,其余要等 generation 回收),新增 qqMessageIDsRe 支持 message_id=100,101,102 连写。 新增 4 条测试覆盖:中断恢复、运行中到达、整批 id 消费、非 QQ 轮不受门。