Skip to content

chore(fork): refresh main baseline and land plugin recovery (#1728) - #250

Merged
mindfn merged 8 commits into
develop_basefrom
integration/plugin-1728-main-20261028
Oct 28, 2026
Merged

mindfn merged 8 commits into
develop_basefrom
integration/plugin-1728-main-20261028

Conversation

@mindfn

@mindfn mindfn commented Oct 28, 2026

Copy link
Copy Markdown
Owner

结果

按 operator 当前指令,先将 develop_base 更新到最新上游 main,再合入上游 zts212653#1728 的插件恢复改动,最后由 operator 重启体验。

改动与取舍

zts212653#1728 提供顶部卸载、明确重启/重试启动、资源级技能冲突处理、历史受管断链迁移与清理。原 52 文件补丁的逐路径增删内容与上游 PR 完全一致。

基线冲突仅两处:Chrome artifact 测试采用上游 alpha.6/alpha.7 条件;MCP surface snapshot 按当前源码重新生成。原 fork callback-outbox、callback-tools、publish-verdict 及对应测试定制全部保留,201 个工具的 schema/policy 没有漂移。

使用普通 merge 保留上游 main 和原 zts212653#1728 的祖先关系。运行目录无已跟踪未提交修改;1918 个未跟踪文件及 .env 已做清单/指纹核对,未清理、不覆盖。已有旧 HEAD 恢复引用。

五轴风险与验证

  • 行为:插件操作与技能冲突恢复;重新执行插件、Host broker、生命周期、界面受影响检查。
  • 数据:保留原技能源和冲突内容,仅迁移受管断链;不连接运行 Redis/SQLite,不做数据迁移或清理。
  • 安全:保留 fix(plugins): remove duplicate Host SDK permission state zts212653/clowder-ai#1720 权限去重和既有 owner/audit/revision 边界。
  • 契约:原 repair 接口兼容;使用最新 main 锁定的 SDK/contract 0.3。
  • 不可逆:fork 合流可通过 Git 回退;运行配置不修改,服务不自动重启。

当前候选实际验证:

  • Shared/MCP build、API tsc、Web tsc:通过。
  • API/Manager/生命周期/Alpha/技能路由/Chrome artifact/Host broker:159 项,158 通过、1 跳过、0 失败。
  • 资源与真实 Host 安装→冲突→重启→卸载→重装:18/18。
  • 前端插件管理:20 文件、167/167。
  • fork callback retry:7/7。
  • MCP governance check、diff check:通过。
  • 非作者独立关联 delta review:approve,覆盖 exact HEAD fc8341dfee47691aaa1719af103ddee9fda85ff8;无 P1/P2/P3。

原上游 zts212653#1728 的 CI 19 成功、1 跳过仍作为原补丁证据;本 PR 以以上新基线检查和后续本仓 CI 为准。原验证报告中的 10 项能力路由基线失败未被改写成通过。

此 PR 合入后同步本地 develop_base,随后交 operator 自行重启体验;不因此推进上游 zts212653#1728 的合入。

zts212653 and others added 8 commits October 26, 2026 06:29
Why: keep one reviewable draft current with the checked public export.

Daily-Public-Sync: v1
Source-Commit: 2c7987ca2bf538aa806ff0f8ddb6fbeb6c5f929d
Public-Base: 0fc7e37

[小星星·砚砚/GPT-6-astra🐾]

Co-authored-by: 小星星·砚砚 (GPT-6-astra) <codex-astra@cat-cafe.local>
Co-authored-by: lang <39692836+mindfn@users.noreply.github.com>
Why: keep one reviewable draft current with the checked public export.

Daily-Public-Sync: v1
Source-Commit: 2c7987ca2bf538aa806ff0f8ddb6fbeb6c5f929d
Public-Base: 0fc7e37

[小星星·砚砚/GPT-6-astra🐾]

Co-authored-by: 小星星·砚砚 (GPT-6-astra) <codex-astra@cat-cafe.local>
Co-authored-by: lang <39692836+mindfn@users.noreply.github.com>
Why: Skill mount collisions must remain actionable resource warnings, and uninstall/reinstall must not strand generated legacy links. Add revision-fenced restart and source choices that preserve user content, and keep lifecycle controls visible in long plugin details.

Refs: zts212653#1727

Thread-Context: threadId=thread_owned_c88624c1c7f8428584735fec389905f6de784843 catId=cat-eqdvbcxw
Why: skill source selection must survive capability discovery, restore actual mounts after an I/O failure, and leave plugin management usable when mount paths are blocked.

Refs: zts212653#1727; independent review of 0f722b3.
)

* fix(plugin): remove duplicate Host SDK permission state

Why: A trusted installed plugin uses the public SDK through its active instance token and canonical caller context. Per-plugin capability policies, inventory grants, whole-feature eligibility and native MCP method lists duplicate that boundary and can leave registered tools without credentials. Preserve current upstream Task controller, lifecycle, owner, package integrity and CAS behavior while porting the reviewed fork cleanup. Old packages retain their verified raw manifest and receive legacy hello metadata only at the existing output boundary. This is a draft port of source 7c96f90c739b5f25c3c0a32cd73b81c795630f6a onto upstream f005686; related-base resolutions need fresh review. Same-schema persistent rollback remains unresolved and blocks merge or deployment.

* fix(plugins): preserve historical controller receipt replays

Why: removing retired controller grant coordinates must not rewrite immutable receipts or break completed operation IDs. Preserve historical receipt input only for digest replay, keep current bindings and new receipts grant-free, and fix the Draft CI cleanup regressions.

* chore(mcp): refresh plugin install schema snapshot

Why: the reviewed archive replacement API no longer carries duplicate grant fields. Regenerate its canonical MCP surface snapshot so the existing governance check describes the actual schema; no registry, gate rule, runtime code or permission mechanism changes.

* test(plugins): align recovery checks with current MCP carriers

Why: the upstream port retained obsolete assumptions about exposed provider tokens, Kimi config rendering and moved materializer imports. Exercise the real secret descriptor and Kimi lease, preserve artifact conditions, and leave production behavior unchanged.

* test(plugins): retire remaining API grant fixture assumptions

Why: the new Contract no longer exports duplicate grant validation, and current inventory and Manager surfaces have no API grant rows. Keep Alpha isolation, nested-copy, desktop lifecycle and read-only legacy-origin behavior tests; remove only their retired permission plumbing and the obsolete mixed-grant refusal case.

* test(plugins): exercise real ACP recovery lifecycle conflict

Why: the installation-race fixture was already disabled, so assigning disabled again did not change the configuration fence. Advance its lifecycle revision to verify stale preflight rejection and remove the fixture's retired grant inputs.

[砚砚/gpt-6.1-sol🐾]
Why: Publish the reviewed Desktop shutdown ordering fix while preserving the current public plugin baseline.

Source: f05918e655b1056c41ab9d8b6d3b2f0342fc85cf
Public base: c760bc2
Candidate: a6ef555
Verified tree: 646622c

Three-platform CI and nine original API archives passed; all 2896 planned files are covered.

[小星星·砚砚/gpt-6-astra🐾]
Why: the operator requested the latest main baseline before landing plugin recovery. Preserve fork customizations, use upstream chrome artifact coverage, and regenerate the canonical MCP surface snapshot.

Upstream-Base: b2c9952

Source: thread_owned_c88624c1c7f8428584735fec389905f6de784843#0001793155104691-004766-a0f02461
Why: the operator requested landing the reviewed plugin recovery on the refreshed develop_base before restarting to try it.

Reviewed-Source: a7a251e; upstream PR zts212653#1728

Source: thread_owned_c88624c1c7f8428584735fec389905f6de784843#0001793155104691-004766-a0f02461
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.

2 participants