Skip to content

[codex] 完成 #766:插件依赖、执行归属与可选能力正交化 - #769

Merged
kachofugetsu09 merged 1 commit into
mainfrom
feature/issue766-orthogonal-runtime
Sep 25, 2026
Merged

kachofugetsu09 merged 1 commit into
mainfrom
feature/issue766-orthogonal-runtime

Conversation

@kachofugetsu09

Copy link
Copy Markdown
Owner

问题与结果

Fixes #766。

插件原来可以读取未声明服务,执行保护依赖业务作者手工取得 owner scope,UI 与具体工具包的变化还会牵动计算能力。本 PR 让依赖、执行、可选能力和持久业务选择各有明确合同:未声明读取失败;入口、事件和后台任务由框架保护真实 owner;卸载 UI 不会重建模型实例;旧 binding 使用当前兼容实现,不兼容明确失败。

按维护者要求做两项设计取舍:来源继续拥有各自的持久指针、准入和结算,共用 ReplyProgram 执行入口,不增加万能 Turn 控制器;消息日志与权限留在原 Core owner,宿主装配通过明确端口移出 Manager,不增加只包装宿主权限的插件。选择依据与 DSH 对照见 docs/design/issue-766-orthogonal-capabilities.md。

本 PR 不包含 #750 的正式发布验收、#661 的真实 Mobile/Wake 压力验收、外部已安装插件换代、合并或部署。

Change intent

  • change_type: refactor
  • semantic_delta: breaking(扩展合同收紧;内置默认业务行为和持久数据格式保持)
  • capability_owner: mixed;组合内核拥有依赖与执行接纳,业务插件拥有工具选择和 UI,安装控制器拥有 selection 与恢复。
  • consumer_scope: Core 与内置插件;外部插件须迁移显式依赖和公共合同导入。
  • runtime_patch: required;客户端不能保证服务端 activation、排空和资源寿命。
  • authoritative_state_owner: MessageLog、原插件数据 owner、PluginSelection 保持。
  • client_only_alternative: 不适用,问题位于服务端组合与生命周期。
  • concept_gate: required;改变公共合同、依赖图与执行归属。
  • 关联不变量:PLG-003/006/014/016/018;消息只追加、selection 唯一提交、真实 owner 清理失败时保留。
  • protected_state: sessions.db、来源恢复指针、plugin-data、binding/归档、安装回退日志。
  • 允许副作用:源码与文档、临时 workspace 验证、提交/推送/Draft PR。禁止正式数据写入、外部业务发送、合并和部署。

改动范围

  • Context:声明依赖读取、有界 borrow、同步/异步 entrypoint、listener/spawn 执行保护,先取消并等待后台任务再排空调用;子 Fiber 本地命名、诊断完整 path。
  • 图查询归 CompositionRoot;Manager 保留安装、选择、应用与恢复。agent.plugins.host 接收窄端口和实时事实,PluginUpdates 只依赖三方法安装端口。
  • 公共合同按领域归入 agent.plugin_contracts;ServiceKey 值类型改为不变型;删除重复声明,R6 守卫全部同名 key。python scripts/plugin_boundary.py catalog 生成静态能力→提供→消费位置表。
  • Models、三个模型驱动、Akasha、Wake 的 UI 成为可选子 Fiber。Wake 按 investigation_tools 选工具并持久保存原选择;Reply 动态借用可选工具搜索展示。删除无消费者的旧工具包服务。
  • 删除无调用者的 Root 冻结路径和安装准备的 activate/stage_stable 旗标。保留真正用于安装回退及远端资源清理的 candidate 字段/协议,并在文档清点。
  • 配置/迁移:Wake 新增可选 investigation_tools,默认仍为 recall_memory、web_fetch;无数据库迁移,无 schema lineage 或最终 schema identity 变化。来源指针、消息、ModelsStore 路径不变。工具搜索展示合同升级为 v2,不提供 v1 shim。
  • 基线 ad40a70ddbedd99db1e695eb4ba76c7e66eb3ab2;实现 b58d6ba79ec17aa346f82b710e6a9df7c4c5822c。DSH 对照 477b4f4205;无跨仓发布或 provider revision 变更。
  • 回滚:此提交可整体 revert;未操作正式 workspace。恢复点为 /mnt/data/coding/issue766-backup-20260925/base-ad40a70d.tar 与 before-completion.tar。代码回退不表示外部效果回滚。

验证

  • 既有概念基线:pytest -q tests,41 passed。
  • Core/tests pyright;plugin boundary(R1/R2/R3=0、无重复 key);Yoyo migration check;Control schema 与 Host Bridge protocol --check;前端 npm run typecheck。
  • 真实临时 workspace:Models + 三驱动,无 UI 时四个计算 Fiber ACTIVE;加入 UI 后十个 Fiber ACTIVE;卸载 UI 后模型、embedding 和模型 Context 保持同一实例,计算分支继续 ACTIVE、五个界面分支 PENDING。新宿主 runtime catalog 通过真实 Models 子 Fiber 读取成功。
  • 维护者明确禁止新增或改写单元测试;唯一获批测试文件变更是既有夹具补一行 inject=(TASKS,),没有新增测试或修改断言。
  • 额外全插件 pyright:21 项既有错误,对比相同基线的 24 项,按文件与诊断内容逐项确认没有新增;不宣称全插件扫描通过。
  • Host Bridge 生成器使用隔离的 grpcio-tools 1.78.0,没有改共享 venv。
  • 未执行外部模型调用、真实设备、正式安装/部署与外部插件发行兼容验收。远端 CI 状态以本 PR checks 为准。

正交性与概念完整性

  • 架构性 PR:yes。
  • 独立 reviewer/model/reasoning:concept_review / gpt-5.6-terra / xhigh。
  • 审查 head:b58d6ba79ec17aa346f82b710e6a9df7c4c5822c。
  • 新增领域控制模型:none;复用 Context/Fiber/Effect、Message/Session 和原业务 owner。
  • 无关变化传播:UI 变化仅影响 UI 子 Fiber;工具提供方注册不要求来源依赖其插件名。
  • 正常/失败/更新链路:声明→激活→框架接纳执行→结束;未声明/缺失/不兼容明确失败;受影响 owner 排空→释放→局部应用,失败保留真实 owner。
  • legacy 扫描:旧 freeze 与 prepare flags 删除;安装 rollback 与远端 candidate cleanup 保留;README、V3 手册、NOW 和能力清单已同步。
  • must-fix 处置:DeliveryFinalOutput.wait 覆盖整个执行 scope;runtime catalog 使用实时输入并校验 exact live Root;宿主 key 使用唯一 typed 声明;旧文档模型清零。
  • 最终结论:pass;冻结提交完整差异审查通过,must-fix 为 0。

工作手册

  • 已核对 projectneed、0070 决策和 NOW。
  • binding 语义与设计复杂度取舍遵循维护者确认。
  • 无 Mobile/跨仓实现改动;保持现有客户端 wire 字段。
  • 完成项已从 NOW 删除;外部插件发行兼容保留为独立后续事项。

@kachofugetsu09
kachofugetsu09 marked this pull request as ready for review September 25, 2026 06:39
@kachofugetsu09
kachofugetsu09 merged commit 0624104 into main Sep 25, 2026
2 checks passed
@kachofugetsu09
kachofugetsu09 deleted the feature/issue766-orthogonal-runtime branch September 25, 2026 06:39
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.

[Feature] 插件架构正交化:声明图等于使用图、执行归属由框架统一、可选能力解耦与 Turn 原子

1 participant