日期:2026-10-13(Asia/Shanghai)。AIC-2915。任务4可开始。后端/API/fake与生成客户端已交付;AIC-2915保持in_progress,浏览器与三层覆盖须随任务4补齐,不声明完整验收通过。
/Users/nd/.codex/worktrees/tuantuan-agent-execution/venture-os。feature/tuantuan-agent-execution;HEAD和本轮fetch后的origin/develop均为fdd68e985da085bf036160c714a8f0cdac77358a。代码入口:apps/api/app/executors/{router,schemas,service,stream,queries,delivery,states,models}.py;说明见apps/api/app/executors/README.md。迁移:apps/api/alembic/versions/0014_project_executions.py。文件公开接缝:apps/api/app/files/service.py。
接口均在/me/projects/{project_id}下:任务的executors/executions/self-executions,执行的详情/messages/deliveries/reconcile/cancel/retry/review/result,项目级execution-summary。GET不暗中外发。SSE的done仅表示请求结束;review专指用户验收。未启用真实适配器按规格503,未知身份409,越权项目/执行404。
生成物:apps/api/openapi.json;apps/web/src/lib/api/的SDK/type/zod;apps/web/src/test/handlers.gen.ts;apps/api/apifox/cases/executors/的本地单接口模板(补齐task_id/execution_id变量,未发布到Apifox)。
独立fake:在apps/api执行uv run --no-sync python -m tests.fake_a2a --port 8893。该服务自身不读开发.env、不出网,提供A2A、BTS和仅本地测试控制接口。测试app须显式override
router.local_fake_access,真实NdclawClient/BTS指向回环服务、凭据取fake包测试常量;参考apps/api/tests/executions_support.py。Fake登录本身不能打开生产专家权限。
复跑入口:python3 .artifacts/task3/run.py <label> <相对仓库cwd> <命令...>。只继承基础环境、固定.env.test、清真实模型/云配置,使用假BTS凭据;Python
socket仅Unix/回环,未记录非回环尝试。定向覆盖按label独立COVERAGE_FILE。集成用Docker临时Postgres;全量用独立venture-task3-check(Postgres15433/Redis16380),不复用或重启真实配置进程。未运行ndclaw_smoke,未申请/唤醒/删除远端实例。
常用命令:
python3 .artifacts/task3/run.py api-unit . make unit-api
python3 .artifacts/task3/run.py api-bdd apps/api uv run --frozen pytest tests/acceptance/test_专家执行.py -q
python3 .artifacts/task3/run.py tcp-a2a apps/api uv run --frozen pytest tests/integration/test_ndclaw_http.py -q| 范围 | 实际结果 | 证据 |
|---|---|---|
| 后端全量单元(最后修复后) | 2453通过,行/分支100% | .artifacts/task3/final-unit.log及JSON |
| 前端全量单元 | 168文件、1807通过,四项覆盖100% | 第二次check的unit-web日志/归档 |
| 全部真库集成/API验收 | 899通过 | 第二次check的integration日志/归档;后续新增补差另列,不混写为934全量 |
| 契约/静态 | lint-api、mypy、24条import边界、253契约、Spectral通过;前端lint/type/构建通过;客户端再生成一致 | final-static-fixes.log、last-client.log,二次check |
| 工具Python | 785通过、18个既有skip,行/分支100%;AC唯一性lint通过 | final-tools.log、final-ac-lint.log |
| 完整make mutation | exit0,后端81.3%、前端96.3%,前端存活复核完成,source_changed=false | 下列mutation原始run;后端补断言后另重跑 |
| 执行域最终联合集成 | 139通过,1305语句、304分支均100%,含35条API BDD实例 | integration-final-100.log、integration-final-100-coverage.json;独立覆盖数据文件 |
| 最终后端变异 | 83.2%,10938检测/13140总数;评分exit0 | 最终执行与补导出记录见下文 |
| 新场景 | AC-149~172:24组拆35实例,API BDD定点通过;浏览器未绑定 | apps/acceptance/团团派单给外部专家.feature、tests/acceptance/test_专家执行.py |
完整记录目录(均在.artifacts/testing/goal1-task3/):
20261012T164249.149804Z-80c2cb551646497eaf1ca9d4dc9d0bc9/,exit2、source_changed=true。临时索引污染临时Git测试导致该轮源码清单波动,不能作最终通过证据。身份断言/归档缺覆盖、Spectral
tag、课程并发夹具跨loop等失败均定点修复;原记录保留。20261012T165211.650942Z-02973317d9444c858c50886e6fb406fe/,exit2、source_changed=false。单元/集成/生成物/构建均通过;当时lint仅一处测试import排序(后已修且lint通过)。e2e及Node
discovery缺127条工作间步骤,coverage/matrix未运行。不是整条check通过。20261012T165547.059676Z-bb86bf4e787f4bb99a938bd2d37f1d49/,exit0、source_changed=false,约3709秒。后端13121个:10664
killed、1 timeout、2452 survived、4
segfault;segfault按未检测计入。前端1502个,1447检测、55存活,存活复核从80项额外杀25项。工作台8个Timeout逐项对应不收敛循环,未提高并发或放宽超时。后续仅API与测试/登记发生变化,前端源码与完成mutation的指纹逐文件相同(web-mutation-source-match.json),不重复前端变异;最终后端变异与联合集成另列,不把不同轮次包装为同一次全量通过。
注意:生成摘要集成计210只统计BDD
cucumber产物,完整pytest日志为899。生成摘要测试变更0只比较已提交HEAD;本轮未提交,实际变更见.artifacts/task3/working-changes.json与record源码指纹。不能据摘要的0声称没有新增测试。
final-execution-integration-coverage.json,改独立数据文件重跑,不据它验收。.artifacts/task3/review-persistence.txt、review-files.txt。发现的取消首帧ID、GetTask上下文、确定未发配置错误、签名和长事务问题均修并留回归。.artifacts/task3/mutation-survivors.md,不通过删断言或改生产逻辑提升分数。失败回流资产:短事务与验证隔离复盘。原有6份任务1/6.1文档SHA保持,见preserved-documents.json;主检出其他修改未动。
executorsExecution*,精确函数名以生成SDK为准。20261012T180527.464965Z-abc6db3232004a2e88e8939a6e168003/,13140项执行完毕、source_changed=false;导出脚本因报告父目录被留证器移走而exit1。仅修复脚本创建目录,再从同一mutmut结果导出评分,未重复执行或改写结果。20261012T181037.405131Z-0a10f59a5321458a8de7c1abf84f3bb5/,exit0、source_changed=false。10937
killed、1 timeout、2198 survived、4
segfault;后两者均算未检测,后端83.2%。前端沿用源码一致的完整mutation结果96.3%。.artifacts/task3/acceptance-review-final.txt。审查只针对后端交接,不替代完整验收。