Files
Agent-System-Dev/.task/archive/feature-ext-1-inproc-handler.md
T
weichen ea54f1108b
ci / test (pull_request) Successful in 1m59s
Close 1 merged task card(s) and archive them
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)
2026-10-05 12:07:57 +00:00

275 lines
17 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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。