diff --git a/.task/feature-project-inbox-r1.md b/.task/feature-project-inbox-r1.md index 5f02e7ca..7cb10491 100644 --- a/.task/feature-project-inbox-r1.md +++ b/.task/feature-project-inbox-r1.md @@ -1,25 +1,37 @@ # feature/project-inbox-r1 任务卡 -任务主记录:;状态:进行中;owner:weichen +任务主记录:;状态:验收通过待合入;owner:weichen ## 基线与授权 - 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= 161fe684fc9ace176cae31a56a9337b2c0a70d59 - 工作区:/home/weichen/projects/Agent-System-Dev-wt-feature-project-inbox-r1(worktree);分支:feature/project-inbox-r1 -- 授权与交付终点:<本次允许的动作与终点;未授权事项写明> +- 授权与交付终点:提案 §3 第三期 CF3(跨会话收件箱,D48–D51);终点 = core/backend/ui/frontend/documents 模块 PR 合入 + Dev gitlink PR 合入 + worktree 回收。 ## 目标与非目标 -<预期结果、受影响入口/模块/契约;明确不做什么。> +目标(提案 D48–D51 + D52 剧本): +1. core:事件信封 ProjectID + 项目频道伪键约定 helper(ProjectChannelKey/ProjectFromChannel,golden event_project_stream)。 +2. backend:store v12 项目索引 + ListProjectCards 聚合(D49 拍板口径);cardsvc 项目流 emit/镜像("project:" 伪键复用会话流持久化/seq/重放)+ ToProject(ref 幂等、原卡 dismissed、HITL/cmd 流程卡拒绝);runmgr 归属判定(scope=project);llm.go submit_card/card_begin scope 参数;server GET /api/projects/{id}/cards、POST /api/cards/{id}/to_project、/api/events scope=project。 +3. ui:卡片 🗂 留档按钮(会话卡、非终态);frontend 双视图(本会话/项目切换、项目分组、角标两级合计)、项目 SSE、store projectCards/applyProjectEvent。 +4. documents:usage.md 4.2 项目收件箱条目。 + +非目标:项目级后台作业 producer(生产端 v1 只开放留档+scope 参数);多用户项目共享收件箱;done 卡跨会话聚合。 ## 同步记录 | 节点 | sync_base_sha | tested_head_sha | checked_at | |---|---|---|---| -| 启动 | 161fe684fc9ace176cae31a56a9337b2c0a70d59 | 161fe684fc9ace176cae31a56a9337b2c0a70d59 | 2026-09-30T18:47:57Z | +| 启动 | 161fe684fc9ace176cae31a56a9337b2c0a70d59 | 161fe684fc9ace176cae31a56a9337b2c0a70d59 | 2026-09-30T18:47Z | +| 验收 | 161fe684fc9ace176cae31a56a9337b2c0a70d59 | 组合 tip(core PR #11/#12、backend/ui/frontend/documents 本分支) | 2026-09-30T19:18Z | -## 结果与验证(完成后填写) +## 结果与验证 -- 结果: +- 结果:core 2 个 PR 合入(#11 信封字段、#12 频道 helper);backend 本分支(v12 迁移、聚合查询、cardsvc 项目流+ToProject、runmgr/llm scope、server 三端点、vendored core 同步);ui(留档按钮);frontend(双视图+项目流);documents(指南)。 - 验证: + - core `go test ./...` 绿(golden event_project_stream);backend `go test ./...` 18 包全绿——新增 TestToProjectArchiveAndIdempotent(副本/锚点/留痕/幂等/D49 聚合口径/HITL 拒绝)、TestLLMRunnerCardScopeProject、e2e TestProjectInbox(to_project 幂等 + 项目聚合列表 + 项目流持久化盖章 + scope 不泄露);既有测试随 v12/双流镜像同步修正(迁移版本 12、节流按频道计数)。 + - ui `tsc --noEmit` 0 错 + vitest 51/51(新增留档按钮 2 用例);frontend 组合 vitest 全绿;Dev `make test` 退出码 0(2026-09-30T19:18Z)。 + - e2e 装配修正:测试服务器 cardsvc 由 no-op emitter 改为生产同款 mgr.EmitCardEvent(此前卡事件不入库,项目流断言依赖)。 - 影响与剩余项: + - 会话流协议不变;项目流为新增频道(信封 ProjectID 只增);EventSource 具名事件列表补齐 card.*(修复 live 卡事件此前被丢弃的既有缺口)。 + - 剩余(远期,提案 §5 已列):项目级后台作业 producer;多用户项目共享收件箱;飞书/微信投影(另立卡)。