ci / test (pull_request) Successful in 1m59s
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt. Evidence: feature-ext-1-inproc-handler.md(PR#209) — merges verified via git log --merges against origin/main. Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change. Refs: task.sh close (card-autoclose-r1)
275 lines
17 KiB
Markdown
275 lines
17 KiB
Markdown
# feature/ext-1-inproc-handler 任务卡
|
||
|
||
任务主记录:https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/207;状态:已完成(回填);owner:weichen
|
||
|
||
## 基线与授权
|
||
|
||
- 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= aeb8513e9c746294cfdb44c0fb55fa0fe26590d9
|
||
- 工作区:/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler(worktree);分支:feature/ext-1-inproc-handler
|
||
- 授权与交付终点:EXT-1 基座侧实现(backend 子仓)+ 下游示例 + documents 提案 + .tmp P0 材料(11/12/13,不入库);子仓按 documents→backend→Dev 顺序提交,Dev PR 合入为本任务交付终点;不改基座既有路径语义,高后果操作(tag/建仓)不在本卡范围。
|
||
|
||
## 目标与非目标
|
||
|
||
本卡即 **EXT-1 扩展点申请卡**(compat-policy §6 四要素)+ 基座侧实现任务:
|
||
|
||
- **场景**:Agent-System-RDM 的 `rdm.ingest` 等命令经四入口(button/card/slash/chat)分发到 `cmdbus.Dispatch` 时,被以 `no host handler bound` 拒绝——`Registry.AddCommand` 与 manifest `provides.commands` 只注册规格不绑处理器;进程内插件也没有 owner 凭证与基座服务端回调身份(H4)。
|
||
- **希望符号**:`pkg/extension` 新增 `Request`/`Handler`/`Host`(owner 作用域宿主句柄最小集:kv、audit、llm、knowledge search/write(embed)、tasks 台账、artifacts 只读)与 `Registry.AddCommandHandler(spec, h)`;`cmdbus` 新增 `RegisterPluginCommand`。
|
||
- **为何现有注册点组合不出来**:`RegisterPluginCommands` 仅登记 spec;`HostClient` 走 sidecar HTTP 需进程内不可得的 token;owner 作用域必须由基座在分发时构造,插件无法自造。
|
||
- **兼容**:只加符号与方法,不改既有路径语义;`SurfaceVersion` 保持 `2.0.0-experimental`,实验窗口内调整以提案 2026-10-05-ext-1-inproc-command-handler.md 为记录。
|
||
|
||
非目标:artifacts 写入(完整集,R1-7 前再评估);sidecar/EXT-3;下游仓创建与五仓 tag(另行双钥匙执行);RDM 领域逻辑。
|
||
|
||
## 复核轮记录(2026-10-05 第二轮,R0=63a62a7)
|
||
|
||
- 误重启事故:PR #207 合入后 `make task-start` 再次以同名分支建卡(task-start 只校验本地分支可建,不查该名是否刚合入),空卡覆盖了 main 上的原卡;`3718f6c` 已恢复原卡,本轮复核证据行(被测 HEAD `c371815`:backend 四包 go test / examples / test-boundaries / make test 全 exit 0)追加于后,`make task-sync` 基线 63a62a7(tested `e37e0cd`)。
|
||
- 本轮性质:**仅复核,不改公开面**——产品代码相对 origin/main 零差异(见证据行 no product diff)。
|
||
- 待办移交:五仓 `v0.1.0` tag 与 `Agent-System-RDM` 建仓(12/13 号材料,owner 双钥匙);MS0 评审时间待定(11 号对照包备好)。
|
||
|
||
## 同步记录
|
||
|
||
| 节点 | sync_base_sha | tested_head_sha | checked_at |
|
||
|---|---|---|---|
|
||
| 启动 | aeb8513e9c746294cfdb44c0fb55fa0fe26590d9 | aeb8513e9c746294cfdb44c0fb55fa0fe26590d9 | 2026-10-05T11:27:44Z |
|
||
|
||
## 证据(Evidence)
|
||
|
||
<!-- CMD="<命令>" make evidence 写入;手抄/转写输出视为无效证据(AGENTS.md 证据与验证门禁)。 -->
|
||
| 时间(UTC) | 命令 | 被测HEAD | exit | 来源 | sha256(16) |
|
||
|---|---|---|---|---|---|
|
||
|
||
## 结果与验证
|
||
|
||
- 结果:**EXT-1 最小集全部交付**——`pkg/extension` 新增 `Request`/`Handler`/`Host`(surface.txt 12→15)与 `Registry.AddCommandHandler`;`cmdbus.RegisterPluginCommand` 绑定处理器(高危确认卡拦截天然覆盖);`rag.IndexChunks` 抽出复用;`internal/app` 以 `hostcaps` 同源实现 hostapi 闭包与 `inprocHost`(owner 作用域:所有 store 调用 owner 第一参数、KnowledgeWrite 强制 Owner/Source);示例 `rdm.ping` 处理器 + go.mod core require/replace;documents 提案 + compat-policy §5 tag 名对齐 v0.2.0。artifacts **写入**未实现(完整集,按批注 1 R1-7 前再评估)。P0 材料 11/12/13 已落 `.tmp/智能体系统/further-objective/`(不入库)。.tmp 方案 V1.2 的 D3「单条 replace」已证伪并勘误(下游须复制 8 条 deps replace)。
|
||
- 验证:make test 全链 **PASS**(提交前 786f852 树与最终 HEAD 517b897 各一轮,exit 0);make test-boundaries **PASS**;examples/downstream-rdm `go test ./...` **PASS**;backend `go test ./...` 29 包 **PASS**(含 cmdbus 三例、rag IndexChunks 两例、app 双 owner 作用域 + embed=hash 向量写入);final-HEAD 快检(boundaries+pins+examples)**PASS**。逐条证据见下方证据表;权威源为 CI 在 PR HEAD 的 `make test`+`make build`(GATE)。
|
||
- 影响与剩余项:公开面依赖 0→1(+agent-system-core,声明式 go.mod 须按 compat-policy §4 加 core require+replace);既有路径语义不变、SurfaceVersion 保持 2.0.0-experimental。剩余:artifacts 写入(完整集);五仓 tag 与下游建仓(12/13 号材料备好,owner 双钥匙执行);MS0 评审材料待评审会使用(11 号)。
|
||
| 2026-10-05T11:27:52Z | `make precheck` | 786f852def | 0 | SELF | 3c8da1b91e60945e |
|
||
|
||
<!-- evidence:run 2026-10-05T11:27:52Z -->
|
||
```
|
||
$ make precheck
|
||
[exit 0 | HEAD 786f852def | sha256:3c8da1b91e60945e] 输出尾部 15 行:
|
||
make[1]: Entering directory '/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler'
|
||
[repo] branch=feature/ext-1-inproc-handler head=786f852def
|
||
[remote] origin/main=aeb8513e9c ahead=1 behind=0
|
||
[tree] clean submodules_drift=0 uninit=0
|
||
[worktrees] linked=1
|
||
[hooks] core.hooksPath=scripts/hooks(pre-commit/post-merge 实际接线)
|
||
[facts] policy/facts.md 4 条事实均在有效期内
|
||
[required-reading] core/baseline.md, workflows/delivery.md §1
|
||
[R0] aeb8513e9c(完整:aeb8513e9c746294cfdb44c0fb55fa0fe26590d9)
|
||
[verdict] READY — 可建任务工作区:make task-start NAME=feature/your-branch
|
||
make[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler'
|
||
```
|
||
| 2026-10-05T11:38:10Z | `make test-boundaries` | 786f852def | 0 | SELF | d12268928a5549a2 |
|
||
|
||
<!-- evidence:run 2026-10-05T11:38:10Z -->
|
||
```
|
||
$ make test-boundaries
|
||
[exit 0 | HEAD 786f852def | sha256:d12268928a5549a2] 输出尾部 15 行:
|
||
make[1]: Entering directory '/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler'
|
||
bash scripts/lint-boundaries.sh
|
||
architecture ok (68 edges)
|
||
architecture negative ok
|
||
boundaries ok
|
||
make[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler'
|
||
```
|
||
| 2026-10-05T11:38:10Z | `cd examples/downstream-rdm && go test -count=1 ./...` | 786f852def | 0 | SELF | 640877758fe3c88f |
|
||
|
||
<!-- evidence:run 2026-10-05T11:38:10Z -->
|
||
```
|
||
$ cd examples/downstream-rdm && go test -count=1 ./...
|
||
[exit 0 | HEAD 786f852def | sha256:640877758fe3c88f] 输出尾部 15 行:
|
||
ok example.com/agent-system-plugin-rdm 0.002s
|
||
```
|
||
| 2026-10-05T11:38:18Z | `make test` | 786f852def | 0 | SELF | fe92462ce20f1fe9 |
|
||
|
||
<!-- evidence:run 2026-10-05T11:38:18Z -->
|
||
```
|
||
$ make test
|
||
[exit 0 | HEAD 786f852def | sha256:fe92462ce20f1fe9] 输出尾部 25 行:
|
||
at recursivelyTraversePassiveMountEffects (/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler/modules/ui/node_modules/react-dom/cjs/react-dom-client.development.js:16851:13)
|
||
at commitPassiveMountOnFiber (/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler/modules/ui/node_modules/react-dom/cjs/react-dom-client.development.js:17183:11)
|
||
at recursivelyTraversePassiveMountEffects (/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler/modules/ui/node_modules/react-dom/cjs/react-dom-client.development.js:16851:13)
|
||
|
||
✓ test/toolblock.test.tsx (4 tests) 76ms
|
||
✓ test/tabstrip.test.tsx (3 tests) 71ms
|
||
✓ test/collapsible.test.tsx (5 tests) 79ms
|
||
✓ test/ui.test.tsx (6 tests) 68ms
|
||
✓ test/overlay-host.test.tsx (6 tests) 64ms
|
||
✓ test/card-anchor.test.tsx (4 tests) 82ms
|
||
✓ test/file-preview.test.tsx (9 tests) 85ms
|
||
✓ test/inbox.test.tsx (13 tests) 87ms
|
||
✓ test/inline-confirm.test.tsx (7 tests) 103ms
|
||
✓ test/capability.test.tsx (14 tests) 135ms
|
||
|
||
Test Files 14 passed (14)
|
||
Tests 103 passed (103)
|
||
Start at 11:38:48
|
||
Duration 620ms (transform 477ms, setup 0ms, import 1.50s, tests 918ms, environment 3.20s)
|
||
|
||
knip unused exports 55 <= 55
|
||
cd deps/agent-command && go vet ./... && go test -count=1 ./...
|
||
ok agent-command 0.002s
|
||
ok agent-command/conformance 0.002s
|
||
make[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler'
|
||
```
|
||
| 2026-10-05T11:39:42Z | `bash scripts/lint-boundaries.sh && bash scripts/check-pins.sh && cd examples/downstream-rdm && go test -count=1 ./... && echo 'final-HEAD quick checks OK'` | 517b89760a | 0 | SELF | 26cb4cbcc3d68ec3 |
|
||
|
||
<!-- evidence:run 2026-10-05T11:39:42Z -->
|
||
```
|
||
$ bash scripts/lint-boundaries.sh && bash scripts/check-pins.sh && cd examples/downstream-rdm && go test -count=1 ./... && echo 'final-HEAD quick checks OK'
|
||
[exit 0 | HEAD 517b89760a | sha256:26cb4cbcc3d68ec3] 输出尾部 15 行:
|
||
ok deps/agent-native agent-intent
|
||
warn: deps/agent-native deps/development-guidelines is 26b562d2e34f, Dev is af199eeaa23c
|
||
ok deps/agent-native error-code-system
|
||
ok deps/agent-native logging-system
|
||
ok deps/agent-squad agent-intent
|
||
ok deps/agent-squad agent-native
|
||
warn: deps/agent-squad deps/development-guidelines is 26b562d2e34f, Dev is af199eeaa23c
|
||
ok deps/agent-squad error-code-system
|
||
ok deps/agent-squad logging-system
|
||
warn: deps/agent-intent deps/development-guidelines is 26b562d2e34f, Dev is af199eeaa23c
|
||
ok deps/agent-intent error-code-system
|
||
ok deps/agent-intent logging-system
|
||
pins ok
|
||
ok example.com/agent-system-plugin-rdm 0.003s
|
||
final-HEAD quick checks OK
|
||
```
|
||
| 2026-10-05T11:39:50Z | `make test` | 517b89760a | 0 | SELF | b55eef9dea426887 |
|
||
|
||
<!-- evidence:run 2026-10-05T11:39:50Z -->
|
||
```
|
||
$ make test
|
||
[exit 0 | HEAD 517b89760a | sha256:b55eef9dea426887] 输出尾部 25 行:
|
||
at runWithFiberInDEV (/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler/modules/ui/node_modules/react-dom/cjs/react-dom-client.development.js:1048:13)
|
||
at commitHookEffectListMount (/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler/modules/ui/node_modules/react-dom/cjs/react-dom-client.development.js:13748:29)
|
||
at commitHookPassiveMountEffects (/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler/modules/ui/node_modules/react-dom/cjs/react-dom-client.development.js:13835:11)
|
||
at commitPassiveMountOnFiber (/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler/modules/ui/node_modules/react-dom/cjs/react-dom-client.development.js:16906:13)
|
||
at recursivelyTraversePassiveMountEffects (/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler/modules/ui/node_modules/react-dom/cjs/react-dom-client.development.js:16851:13)
|
||
at commitPassiveMountOnFiber (/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler/modules/ui/node_modules/react-dom/cjs/react-dom-client.development.js:17183:11)
|
||
at recursivelyTraversePassiveMountEffects (/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler/modules/ui/node_modules/react-dom/cjs/react-dom-client.development.js:16851:13)
|
||
|
||
✓ test/overlay-host.test.tsx (6 tests) 62ms
|
||
✓ test/inbox.test.tsx (13 tests) 84ms
|
||
✓ test/card-anchor.test.tsx (4 tests) 90ms
|
||
✓ test/file-preview.test.tsx (9 tests) 88ms
|
||
✓ test/inline-confirm.test.tsx (7 tests) 106ms
|
||
✓ test/capability.test.tsx (14 tests) 143ms
|
||
|
||
Test Files 14 passed (14)
|
||
Tests 103 passed (103)
|
||
Start at 11:40:18
|
||
Duration 613ms (transform 393ms, setup 0ms, import 1.30s, tests 952ms, environment 3.29s)
|
||
|
||
knip unused exports 55 <= 55
|
||
cd deps/agent-command && go vet ./... && go test -count=1 ./...
|
||
ok agent-command 0.002s
|
||
ok agent-command/conformance 0.002s
|
||
make[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler'
|
||
```
|
||
| 同步前验收 | aeb8513e9c746294cfdb44c0fb55fa0fe26590d9 | 425aff9f57678085fee2d629c2b09776603e4f9b | 2026-10-05T11:43:04Z |
|
||
| 2026-10-05T11:43:03Z | `make task-sync` | 425aff9f57 | 0 | SELF | 5698c778f7840325 |
|
||
|
||
<!-- evidence:run 2026-10-05T11:43:03Z -->
|
||
```
|
||
$ make task-sync
|
||
[exit 0 | HEAD 425aff9f57 | sha256:5698c778f7840325] 输出尾部 15 行:
|
||
make[1]: Entering directory '/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler'
|
||
Already up to date.
|
||
[evidence] WARN 证据表被测 HEAD 落后且其后有非卡片变更:786f852def (当前 425aff9f57)——关键检查须重跑并以 make evidence 重新写入
|
||
[synced] sync_base=aeb8513e9c tested_head=425aff9f57 checked_at=2026-10-05T11:43:04Z
|
||
[next] 跑正式验收(make test 等),证据写入任务卡
|
||
make[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler'
|
||
```
|
||
|
||
## 复核(2026-10-05)
|
||
|
||
PR #207 合入后,`make task-start` 用同名分支在 main 之上重建,空模板覆盖了本卡。本提交把卡片恢复为 `63a62a79ac` 上已合入的正文。产品代码无新增差异(EXT-1 最小集已在该提交内)。P0 材料 11/12/13 同日按方案写在主检出 `.tmp/智能体系统/further-objective/`,不入库。下面的证据行是这次复核补记。
|
||
| 2026-10-05T11:58:21Z | `make precheck` | 3718f6c770 | 0 | SELF | 8f4a2eaafd581ae6 |
|
||
|
||
<!-- evidence:run 2026-10-05T11:58:21Z -->
|
||
```
|
||
$ make precheck
|
||
[exit 0 | HEAD 3718f6c770 | sha256:8f4a2eaafd581ae6] 输出尾部 15 行:
|
||
make[1]: Entering directory '/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler'
|
||
[repo] branch=feature/ext-1-inproc-handler head=3718f6c770
|
||
[remote] origin/main=63a62a79ac ahead=2 behind=0
|
||
[tree] clean submodules_drift=0 uninit=0
|
||
[worktrees] linked=1
|
||
[hooks] core.hooksPath=scripts/hooks(pre-commit/post-merge 实际接线)
|
||
[facts] policy/facts.md 4 条事实均在有效期内
|
||
[required-reading] core/baseline.md, workflows/delivery.md §1
|
||
[R0] 63a62a79ac(完整:63a62a79ac52cc5d0b5d798dc586195ea842bd51)
|
||
[verdict] READY — 可建任务工作区:make task-start NAME=feature/your-branch
|
||
make[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler'
|
||
```
|
||
| 2026-10-05T11:58:23Z | `cd modules/backend && go test -count=1 ./internal/cmdbus/ ./internal/rag/ ./internal/app/ ./pkg/extension/` | 3718f6c770 | 0 | SELF | 2f2d2aa00b568f61 |
|
||
|
||
<!-- evidence:run 2026-10-05T11:58:23Z -->
|
||
```
|
||
$ cd modules/backend && go test -count=1 ./internal/cmdbus/ ./internal/rag/ ./internal/app/ ./pkg/extension/
|
||
[exit 0 | HEAD 3718f6c770 | sha256:2f2d2aa00b568f61] 输出尾部 15 行:
|
||
ok agent-system-backend/internal/cmdbus 0.010s
|
||
ok agent-system-backend/internal/rag 0.077s
|
||
ok agent-system-backend/internal/app 0.020s
|
||
ok agent-system-backend/pkg/extension 0.002s
|
||
```
|
||
| 2026-10-05T11:58:24Z | `cd examples/downstream-rdm && go test -count=1 .` | 3718f6c770 | 0 | SELF | 0c646ecc157ffee2 |
|
||
|
||
<!-- evidence:run 2026-10-05T11:58:24Z -->
|
||
```
|
||
$ cd examples/downstream-rdm && go test -count=1 .
|
||
[exit 0 | HEAD 3718f6c770 | sha256:0c646ecc157ffee2] 输出尾部 15 行:
|
||
ok example.com/agent-system-plugin-rdm 0.003s
|
||
```
|
||
| 2026-10-05T11:58:24Z | `make test-boundaries` | 3718f6c770 | 0 | SELF | d12268928a5549a2 |
|
||
|
||
<!-- evidence:run 2026-10-05T11:58:24Z -->
|
||
```
|
||
$ make test-boundaries
|
||
[exit 0 | HEAD 3718f6c770 | sha256:d12268928a5549a2] 输出尾部 15 行:
|
||
make[1]: Entering directory '/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler'
|
||
bash scripts/lint-boundaries.sh
|
||
architecture ok (68 edges)
|
||
architecture negative ok
|
||
boundaries ok
|
||
make[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler'
|
||
```
|
||
| 2026-10-05T11:58:33Z | `make test` | dd75010738 | 0 | SELF | 4312feb505f9ae26 |
|
||
|
||
<!-- evidence:run 2026-10-05T11:58:33Z -->
|
||
```
|
||
$ make test
|
||
[exit 0 | HEAD dd75010738 | sha256:4312feb505f9ae26] 输出尾部 15 行:
|
||
added 162 packages in 622ms
|
||
|
||
RUN v4.1.11 /home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler/modules/ui
|
||
|
||
|
||
Test Files 14 passed (14)
|
||
Tests 103 passed (103)
|
||
Start at 11:59:01
|
||
Duration 600ms (transform 319ms, setup 0ms, import 1.16s, tests 906ms, environment 3.24s)
|
||
|
||
knip unused exports 55 <= 55
|
||
cd deps/agent-command && go vet ./... && go test -count=1 ./...
|
||
ok agent-command 0.002s
|
||
ok agent-command/conformance 0.002s
|
||
make[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler'
|
||
```
|
||
| 同步前验收 | 63a62a79ac52cc5d0b5d798dc586195ea842bd51 | e37e0cd1391180ec2367a865f33bf65d41c65804 | 2026-10-05T11:59:03Z |
|
||
| 2026-10-05T12:03:54Z | `test -z "$(git diff origin/main..HEAD -- . ':(exclude).task')" && echo 'no product diff vs origin/main'` | 5aa1e093e5 | 0 | SELF | 0b07ccc5b4977e3b |
|
||
|
||
<!-- evidence:run 2026-10-05T12:03:54Z -->
|
||
```
|
||
$ test -z "$(git diff origin/main..HEAD -- . ':(exclude).task')" && echo 'no product diff vs origin/main'
|
||
[exit 0 | HEAD 5aa1e093e5 | sha256:0b07ccc5b4977e3b] 输出尾部 15 行:
|
||
no product diff vs origin/main
|
||
```
|
||
|
||
## 闭合记录(card-autoclose 回填)
|
||
|
||
- 依据:merge 15ec9bfbc57bbc1f9930ac4c3ef91edc8460ea4a(PR #209)已包含于 origin/main,分支成果已落盘;本段为合入后回填。
|
||
- 合并主题:Merge pull request 'Restore and complete the EXT-1 task card after branch recreation (verification round)' (#209) from feature/ext-1-inproc-handler into main
|
||
- 归档:随闭合移入 .task/archive/;任务执行期的过程证据见原任务记录与 PR。
|