Fill in the I4 task card and advance backend/frontend gitlinks

Why: card sections were placeholders (policy requires goal, requirements
and test plan before evidence/review); the gitlinks point the composite
at the I4 sub-repo commits so make test validates the real combination.
Evidence: make test green in this worktree at these gitlinks (log kept
locally; CI is authoritative); card edit is SELF.
Impact: task card content + submodule pointers (backend 9aa51e5,
frontend 01b853f).
Refs: WP3-I4.
This commit is contained in:
2026-10-12 01:47:44 +00:00
parent eeb60d1b2f
commit 4e92fd88d8
3 changed files with 17 additions and 12 deletions
+15 -10
View File
@@ -7,33 +7,38 @@
- 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= 89174a0f5c28ff7f49c794f37ea7e9528f9b526e
- 工作区:/home/weichen/projects/Agent-System-Dev-wt-feature-plugins-compiled-listing(worktree);分支:feature/plugins-compiled-listing
- 授权与交付终点:<本次允许的动作与终点;未授权事项写明>
- 授权与交付终点:用户 2026-10-12「继续推进」——覆盖 WP3-I4(/api/plugins 合并编译插件)与 WP3-I3(AdminZone RDM 审计分区)的完成与合入;不覆盖高后果操作(双钥匙项仍人工)。本卡为 I4。
- 交付模式:manual(逐阶段人工评审);明确授权后可记为 authorized-continuous
- 自动推进授权:无;授权范围:无;授权来源:无;授权终点:无;停止条件:无(未授权)
- 当前阶段:需求拆解;当前增量:I1(待定义)
- 当前阶段:实施与自检;当前增量:I4 /api/plugins 合并编译插件
- 流程依据:仓库根目录 policy/delivery.md(归档后仍按仓库根目录定位)
## 目标与非目标
<预期结果、受影响入口/模块/契约;明确不做什么。>
目标:管理页「插件管理」能看到编译进二进制的进程内插件(Dev 二进制的 generative-ui、RDM 二进制的 rdm)——条目来自装载期注册面(命令/意图/技能),backend.mode=inproc 标记编译来源,apiVersion 取扩展面版本;目录插件与编译条目同名时目录条目权威不重复。前端列表为 inproc 条目加「内置」徽标、补命令计数、空版本不再显示悬空 v。
非目标:不改公开扩展面(extension.SurfaceVersion 不动);不做插件启停/装卸语义变化(编译条目只读展示);不做 AdminZone 分区(WP3-I3 另卡);不填编译插件的自述元数据(Title/Version 字段后续需要时另走 surface 版本化)。
## 关联方向与规划
- 适用状态:待核对(无适用规划时说明原因)
- 主记录路径/版本:待核对(路径按仓库根目录定位,归档后不变;只引用唯一正文)
- 对应里程碑:待核对
- 适用状态:适用。方案正文 `modules/documents/docs/proposals/2026-10-11-rdm-two-trees-trace-audit-integration.md` r1(U1–U5 已合入;本卡属用户 2026-10-12 续推的 WP3 收尾项 I4)。
- 主记录路径/版本:上述提案 r1;会话交接记录(2026-10-12 用户授权「继续推进」I4/I3)。
- 对应里程碑:WP3 收尾(I4 管理清单可见性;I3 AdminZone 分区另卡)。
## 需求分析
| ID | 描述 | 项目符合度及依据 | 优先级 | 验收条件 | 依赖 | 结论 |
|---|---|---|---|---|---|---|
| R1 | 待填写 | 待评估 | 待定 | 待定义 | 待确认 | 待评审 |
| R1 | /api/plugins 列出编译插件条目(合成 manifest:id/name、backend.mode=inproc、apiVersion=扩展面版本、provides=注册面记录的命令/意图/技能) | 符合:server.listPlugins 现仅扫目录 Host(server.go:1464 一带);注册面在 applyCompiled 有唯一汇聚点;PluginBackend.Mode 契约已有 inproc 词表(core/plugin_v2.go:45) | 高 | 单测:设置 CompiledPlugins 后 GET /api/plugins 返回 inproc 条目且字段正确;同名目录条目唯一且 manifest 不被覆盖 | 后端合成与摘要记录 | 纳入本增量 |
| R2 | 摘要与总线一致:记录的命令真实可分发,失败注册不记录 | 符合:注册面即清单面,不另设声明口;重复 id 总线 fail-closed | 高 | 单测 TestApplyCompiledRecordsSummary:成功项记入、重复失败不记、Register 整体失败保留已成功部分、demo.one 可分发 committed | R1 | 纳入本增量 |
| R3 | 前端管理页正确渲染编译条目 | 符合:contracts.ts PluginManifest 已含 backend.mode;design-guard 棘轮约束样式 | 高 | vitest 全绿(含 design-guard);inproc 条目显示「内置」徽标;空版本无悬空 v;desc 含命令计数 | R1 | 纳入本增量 |
| R4 | 真实二进制可见性验证(genui 部署的管理页出现 generative-ui 条目) | 符合:本机 genui @8973 为最新 Dev main 部署 | 中 | 部署验证记录(SELF,curl /api/plugins 见 generative-ui inproc 条目)——合入后执行 | R1–R3 | 纳入本增量(合入后) |
## 方案与计划
- 方案引用:待填写(含对象版本)
- 实施计划引用:待填写(含增量与需求 ID)
- 测试计划引用:待填写(含需求 ID 与验收条件)
- 方案:后端 applyCompiled 用 recordRegistry 包装 per-plugin Registry,把成功注册的 AddCommand/AddCommandHandler/AddIntent/AddSkill 记入 server.CompiledPlugin 摘要;组合根挂 srv.CompiledPlugins;server.listPlugins 在目录条目后合并合成条目(同名目录优先)。前端 PluginsSection 按上述渲染。不动公开扩展面。
- 实施计划:backend(server.go/compiled.go/app.go + 两处单测)→ frontend(adminSections.tsx)→ 顶层 gitlink 推进 → make test → 证据三段 → PR。
- 测试计划:R1/R2 由 Go 单测覆盖(internal/server TestListPluginsMergesCompiled、internal/app TestApplyCompiledRecordsSummary);R3 由 vitest+design-guard 覆盖;R4 部署后 curl 验证(SELF)。
## 阶段评审