Skip to content

feat: migrate tool loop guard to plugin api v3 - #2

Merged
kachofugetsu09 merged 2 commits into
mainfrom
codex/plugin-v3-composition
Aug 21, 2026
Merged

feat: migrate tool loop guard to plugin api v3#2
kachofugetsu09 merged 2 commits into
mainfrom
codex/plugin-v3-composition

Conversation

@kachofugetsu09

@kachofugetsu09 kachofugetsu09 commented Aug 15, 2026

Copy link
Copy Markdown
Member

结果

  • 从 v2 PreToolCtx/HookOutcome deny 迁移到 v3 tool.execution.authorize/Bail[str]。
  • repeat state 由每个 generation 的插件 runtime 自己拥有,不依赖 v2 PluginContext。
  • 保留 repeat_limit default/clamp/fallback、source/session key、batch active index、task_output/task_stop 排除与原 deny 文案。
  • immutable ToolInput 的 Mapping/tuple 由插件递归投影成 JSON signature,不要求 Core 提供领域 helper。

依赖

验证

  • 7 passed;v3 contract passed;Basedpyright 0 errors / 0 warnings。
  • 第三次同签名 execute 被 deny,invoker 只运行前两次;参数变化与 session 隔离。
  • batch 嵌套 JSON 同签名会 deny,嵌套值变化后 reset。
  • preflight 保持 v2 计数副作用,但不发布 TOOL_RESULT。
  • 真实 PluginManager snapshot 路径通过;terminate_all 后 listener/effect 清空。
  • PR #432 固定本提交,并在同一正式 Root 中证明第三次重复调用不进入 invoker。
  • Terra xhigh 独立只读复审最终无 P0/P1/P2。

边界

不写正式 workspace/plugin-data,不执行真实工具,不调用渠道或外部 API。回滚点:backup/plugin-v3-before-20260815。

@kachofugetsu09
kachofugetsu09 merged commit a6bf7db into main Aug 21, 2026
2 checks 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