Record schema 38 health/ready plus the new agent-dev-app digest, then mark the composition-root slice done so intent dual-tab can take the idle slot. Co-authored-by: Cursor <cursoragent@cursor.com>
2.6 KiB
2.6 KiB
title, status, created, updated, owner, branch, worktree, mutex
| title | status | created | updated | owner | branch | worktree | mutex |
|---|---|---|---|---|---|---|---|
| M5/M6 组合根与传输门禁 U11–U12 | done | 2026-09-15 | 2026-09-15 | Cursor | feature/app-composition-u11-u12 | - | app |
M5/M6 组合根与传输门禁 U11–U12
目标
按整改计划四个子切片完成组合根、文档通知闭包迁出、stageflow 用例、UserProjectContext CAS;再收口 SSE 编码与已清零规则的 arch-check block。用户已明确授权继续 U11/U12(推翻 U10 报告的停止扩面)。
范围
- U11a:
internal/app唯一 composition root;幂等 Start/Stop - U11b:文档
OnOutbox通知迁到internal/app/docnotify - U11c:
internal/app/stageflow拥有 ExecuteTask / ExecuteStage - U11d:
ContextUpdate版本 CAS,禁止跨模块字段级直改 - U12:SSE 中性 frame 编码;
import/event转 block;不改错误信封与 PI Runner 协议
非目标
- 不碰
intent包行为(编码阶段 mutex 仍由 Codex 占用;合入后浏览器门另开 handoff) - 不整支 merge
feature/final-artifact-vault;不启用FAV_DEGRADED_READ - 不终止或改写项目 143
- 不删除未到期的 sql_write/path 例外(U3/U5 残留)
- 不在 worktree 内
env-service
步骤
- 认领 CURRENT + 本任务
- U11a composition root
- U11b docnotify
- U11c stageflow
- U11d ContextUpdate
- U12 SSE + arch-check block_kinds
- 短测 / 目标包 race / 报告
- 占槽
--no-ff合入dev+ 主仓dev rebuild
验收标准
- 重复 Start 不重复注册 subscriber;Stop 后再 Start worker 仍在
- server 生产代码不再赋值
OnOutbox - HTTP 与 CLI 走同一 stageflow 用例
- ContextUpdate 并发 stale version 不丢更新赢家
arch-check --mode block对已清零的 import/event 通过- 测试报告回链 U11/U12
- 合入后
/health/readyschema 38、pi-agent、新镜像 digest
相关链接
- Checklist: ../../ops/checklists/2026-09-14-module-decoupling-refactor-acceptance.md
- Plan: ../../remediation/2026-09-14-module-decoupling-refactor-plan.md
- Test report: ../../test-reports/2026-09-15-app-composition-u11-u12-test-report.md
证据 / 备注
用户口头授权:「继续解耦到 U11、U12」。合入 dev@bf59cce。rebuild 镜像 sha256:a8e3e940f01111c4298c67947ae9f4cd6105f13cf58134672f4a87daa19e27ab。health/ready:.doc/test-reports/assets/2026-09-15-app-composition-u11-u12/rebuild-health-ready.txt。