Close the merged N3 task card (feature/agent-stack-n3) #249

Merged
weichen merged 1 commits from feature/card-close-20261007-180944Z into main 2026-10-07 18:14:09 +00:00
@@ -1,6 +1,6 @@
# feature/agent-stack-n3 任务卡
任务主记录:<PR 链接,交付前填写>;状态:进行中;owner:weichen
任务主记录:PR #248 https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/248(merge 2836a875f8);状态:已完成(回填);owner:weichen
## 基线与授权
@@ -82,7 +82,7 @@ OTel SDK/gRPC/采样(保留手写导出);completion/prompt 预算口径改
| 时间(UTC) | 命令 | 被测HEAD | exit | 来源 | sha256(16) |
|---|---|---|---|---|---|
## 结果与验证(完成后填写)
## 结果与验证
- 结果:N3 六个工作包全部落地。WP1 RunState 收口(尾部配对兜底 repairOrphanTail 覆盖 persist→intent 崩溃窗口、杀窗口两态测试、N6 替换文只作 user 消息、done.json 状态分流让优雅停机子代理续跑且幂等);WP2 产品会话持久化(llm_direct 接 Session——落地时把方案的「transcript 权威」修正为 JournalOnly:journal 只作日志、上下文仍走 ctxasm 管线、恢复摘要以系统消息注入;顺修种子历史不落盘的静默丢失);WP3 检查点收口(资格集钉住 {write_file,edit_file,multi_edit} 与 {fs_write_file}、符号链接按外部改动、部分恢复进 Result.Failed、Compact 保留 200 anchors、HTTP happy+409、root 权限不可重现注入改用测试缝);WP4 OTel GenAI 对齐(span 名带后缀、gen_ai.* 属性含 usage intValue、一次 Run 共享 trace + parent 链、resource service.name、settings 面默认不导出;正文拒绝名单原样保持);WP5 Memory 端口(runtime/memory 包 + 循环 request-scoped 注入、memory_write fail-closed、backend storeMemory 适配、组装侧注入退役且迁移前后同文、MemoryScope 默认空保持旧语义);WP6 计费拆分与重试收口(cache 累计、usage 事件带 Last*/cache 且终态路径也发、core.Usage 增字段、子代理记账、库默认重试 RetryAttempts、verifier 显式重试+回退、auto_retry 进事件面、前端徽章拆分显示)。合入链共 20 个 PR:Agent-Native #30-#39、Agent-Squad #34-#41、Backend #91-#96、Frontend #48、Core(无 CI 仓直接合入)。
- 验证:总提案三条验收均 GATE——①「回合中途杀进程,恢复后工具配对仍成立」:库 TestResumePairsOrphanTailAfterCrashWindow(无意图窗口兜底)+ 既有 durable 四组(意图路径)+ 产品 TestDirectRunPairsAfterKillSeed + TestDirectRunSeedsStoreHistoryOnce(GATE @ native cb21ec4e / backend 9f3fdb26);②「回滚只撤销 write/edit/multi_edit」:资格集合钉住测试(库 TestCheckpointedToolSetIsPinned、产品 TestBackendCheckpointEligibilityIsWriteFileOnly)+ 既有 rewind/checkpoint 测试原样通过 + shell 文件存活断言(GATE @ native f04c87ac);③「span 名与约定一致,默认不含提示词正文」:TestSpanNamesFollowGenAIConvention(名称后缀+gen_ai.* 键枚举+intValue+service.name+parent 链)+ 既有 publicAttrs 拒绝名单测试原样通过(GATE @ native fe0c4a9f)。逐 WP 验收:WP5 迁移对照 TestDirectRunInjectsMemoryBlock(同文不双份);WP6 记账 TestDirectRunUsageSplitOnRecord/TestSubRunAccountsTokens/TestAddUsageAccumulatesSplitFields 与 TestRetryAttemptsMapping(GATE @ backend 8c5612a0)。各仓 CI 在每个 merge head 上 success(GATE;Core/Frontend 无 CI 仓,分别以 go test / tsc+vitest 本地验证后合入);Dev 分支多次 check-pins pins ok 与 make test exit=0(收据经 make evidence 入卡)。
@@ -255,3 +255,9 @@ OTel SDK/gRPC/采样(保留手写导出);completion/prompt 预算口径改
"receipt_sha256": "6ff92ce466f345963256477c0b2912de442ddb74d9ab010ad3c106897d3d3a87"
}
```
## 闭合记录(card-autoclose 回填)
- 依据:merge 2836a875f80e6224e404ca9980704a1e0eef8b01(PR #248)已包含于 origin/main,分支成果已落盘;本段为合入后回填。
- 合并主题:Merge pull request 'Take the N3 implementation plan and open the N3 task' (#248) from feature/agent-stack-n3 into main
- 归档:随闭合移入 .task/archive/;任务执行期的过程证据见原任务记录与 PR。