From 111ab6786e6cb690616e43a03bdd59c8785ead1f Mon Sep 17 00:00:00 2001 From: weichen Date: Tue, 15 Sep 2026 05:55:25 +0000 Subject: [PATCH] =?UTF-8?q?docs(test):=20close=20U11=E2=80=93U12=20after?= =?UTF-8?q?=20dev=20rebuild=20and=20archive=20the=20app=20mutex?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- .../ops}/2026-09-15-app-composition-u11-u12.md | 12 +++++++----- .doc/ops/CURRENT.md | 12 ++++++------ .doc/remediation/gap-matrix.md | 2 +- .doc/status/FEATURE-MATRIX.md | 2 +- ...-09-15-app-composition-u11-u12-test-report.md | 16 +++++++++------- .../rebuild-health-ready.txt | 9 +++++++++ 6 files changed, 33 insertions(+), 20 deletions(-) rename .doc/{ops/short-term => archive/ops}/2026-09-15-app-composition-u11-u12.md (68%) create mode 100644 .doc/test-reports/assets/2026-09-15-app-composition-u11-u12/rebuild-health-ready.txt diff --git a/.doc/ops/short-term/2026-09-15-app-composition-u11-u12.md b/.doc/archive/ops/2026-09-15-app-composition-u11-u12.md similarity index 68% rename from .doc/ops/short-term/2026-09-15-app-composition-u11-u12.md rename to .doc/archive/ops/2026-09-15-app-composition-u11-u12.md index 43ad8446..e89c9ce4 100644 --- a/.doc/ops/short-term/2026-09-15-app-composition-u11-u12.md +++ b/.doc/archive/ops/2026-09-15-app-composition-u11-u12.md @@ -1,6 +1,6 @@ --- title: "M5/M6 组合根与传输门禁 U11–U12" -status: in_progress +status: done created: 2026-09-15 updated: 2026-09-15 owner: Cursor @@ -25,7 +25,7 @@ mutex: app ## 非目标 -- 不碰 `intent` 包行为(mutex 仍由 Codex 占用) +- 不碰 `intent` 包行为(编码阶段 mutex 仍由 Codex 占用;合入后浏览器门另开 handoff) - 不整支 merge `feature/final-artifact-vault`;不启用 `FAV_DEGRADED_READ` - 不终止或改写项目 143 - 不删除未到期的 sql_write/path 例外(U3/U5 残留) @@ -40,6 +40,7 @@ mutex: app 5. [x] U11d ContextUpdate 6. [x] U12 SSE + arch-check block_kinds 7. [x] 短测 / 目标包 race / 报告 +8. [x] 占槽 `--no-ff` 合入 `dev` + 主仓 `dev rebuild` ## 验收标准 @@ -49,13 +50,14 @@ mutex: app - [x] ContextUpdate 并发 stale version 不丢更新赢家 - [x] `arch-check --mode block` 对已清零的 import/event 通过 - [x] 测试报告回链 U11/U12 +- [x] 合入后 `/health` `/ready` schema 38、`pi-agent`、新镜像 digest ## 相关链接 -- Checklist: [../checklists/2026-09-14-module-decoupling-refactor-acceptance.md](../checklists/2026-09-14-module-decoupling-refactor-acceptance.md) +- Checklist: [../../ops/checklists/2026-09-14-module-decoupling-refactor-acceptance.md](../../ops/checklists/2026-09-14-module-decoupling-refactor-acceptance.md) - Plan: [../../remediation/2026-09-14-module-decoupling-refactor-plan.md](../../remediation/2026-09-14-module-decoupling-refactor-plan.md) -- Test report: [../../../test-reports/2026-09-15-app-composition-u11-u12-test-report.md](../../../test-reports/2026-09-15-app-composition-u11-u12-test-report.md) +- Test report: [../../test-reports/2026-09-15-app-composition-u11-u12-test-report.md](../../test-reports/2026-09-15-app-composition-u11-u12-test-report.md) ## 证据 / 备注 -用户口头授权:「继续解耦到 U11、U12」。 +用户口头授权:「继续解耦到 U11、U12」。合入 `dev@bf59cce`。rebuild 镜像 `sha256:a8e3e940f01111c4298c67947ae9f4cd6105f13cf58134672f4a87daa19e27ab`。health/ready:`.doc/test-reports/assets/2026-09-15-app-composition-u11-u12/rebuild-health-ready.txt`。 diff --git a/.doc/ops/CURRENT.md b/.doc/ops/CURRENT.md index 4881edf5..c0651338 100644 --- a/.doc/ops/CURRENT.md +++ b/.doc/ops/CURRENT.md @@ -5,15 +5,15 @@ ## 焦点 -1. **CHAT-INTENT**: [对话意图运行时状态](../audit/2026-09-13-conversation-intent-runtime-state.md)(`fix/conversation-intent-state` 已是 `dev` 祖先;浏览器双标签 busy 仍待 Codex 收口) -2. **DOC-RELIABILITY**: [U11–U12 组合根与传输门禁](./short-term/2026-09-15-app-composition-u11-u12.md)(用户已授权;合同 PASS,待占槽合入 `dev`) +1. **CHAT-INTENT**: [对话意图运行时状态](../audit/2026-09-13-conversation-intent-runtime-state.md)(`fix/conversation-intent-state` 已是 `dev` 祖先;浏览器双标签 busy 待 Cursor 写 handoff 后接管) +2. **DOC-RELIABILITY**: [U11–U12 组合根与传输门禁](../archive/ops/2026-09-15-app-composition-u11-u12.md)(已合入 `dev@bf59cce`;rebuild digest `a8e3e940…`;schema 38) 3. **CHAT**: [对话历史刷新活验已补](../test-reports/2026-09-13-chat-history-refresh-test-report.md)(项目 6252 闲聊刷新同集 + guest 403;编制任务链仍开放) ## 并行认领 | owner | task | branch | worktree | mutex | status | |-------|------|--------|----------|-------|--------| -| Cursor | app-composition-u11-u12 | feature/app-composition-u11-u12 | - | app | in_progress | +| Cursor | app-composition-u11-u12 | feature/app-composition-u11-u12 | - | app | done | | Cursor | chatlog-contextasm-u10 | feature/chatlog-contextasm-u10 | - | chat | done | | Cursor | chat-history-refresh-remediation | fix/chat-history-refresh | - | chat | done | | Cursor | dataset-lifecycle-u9 | feature/dataset-lifecycle-u9 | - | dataset | done | @@ -58,13 +58,13 @@ > 新任务开始前登记。`branch` 必须为 `feature/` 或 `fix/`,**禁止** `dev` / `test` / `main`。同一 `mutex` 同时仅一个 `in_progress`。 > workflow-plan 409 与治理鉴权 G1–G5 已收口(见 [test-report](../test-reports/2026-09-14-governance-action-level-authz-test-report.md))。禁止终止或改写项目 143。 -> `document-reliability-pilot` U11–U12 合同已签(`feature/app-composition-u11-u12`)。合入 `dev` 须占集成槽。禁止 worktree 内 `env-service`。项目 143 只读,禁止终止。不碰 `intent`。 +> `document-reliability-pilot` U11–U12 已合入 `dev@bf59cce` 并 rebuild。禁止 worktree 内 `env-service`。项目 143 只读,禁止终止。intent 浏览器门下一步由 Cursor 写 handoff 接管,不覆盖 Codex worktree。 ## 集成槽位 | holder | phase | since | scope | queue | |--------|-------|-------|-------|-------| -| Cursor | merging | 2026-09-15 | U11-U12 app-composition | intent dual-tab after idle | +| idle | idle | 2026-09-15 | - | - | **phase**: `idle` | `merging` | `smoke` | `e2e` @@ -74,7 +74,7 @@ | 环境 | 端口 | schema | 状态 | |------|------|--------|------| -| dev | 8080 | **38** | healthy(`pi-agent`;U10 rebuild 后 health+ready PASS) | +| dev | 8080 | **38** | healthy(`pi-agent`;U11–U12 rebuild digest `a8e3e940f01111c4298c67947ae9f4cd6105f13cf58134672f4a87daa19e27ab`;health+ready PASS) | | test | 8081 | 25→27* | healthy | | main | 8000 | 25→27* | healthy(app + runner + DB) | diff --git a/.doc/remediation/gap-matrix.md b/.doc/remediation/gap-matrix.md index 0b689f60..39f35b4e 100644 --- a/.doc/remediation/gap-matrix.md +++ b/.doc/remediation/gap-matrix.md @@ -70,7 +70,7 @@ | DOCREV-ACTIVE-DOC-ROUTING | UI-05「当前受控文档」被法规关键词改路由到 `feasibility_reg`,intake 无 pending | **PASS** | [audit](../audit/2026-09-13-document-revision-active-doc-routing.md);Round20 UI-05 pending 停在 intake V2 | **不改弱 E2E**;不删证据 | | DOCREV-QUALITY-STATUS-FP | 行动计划表状态列「待续」被门禁当敷衍,两轮 repair 后 quality_failed 80 | **PASS** | [audit](../audit/2026-09-13-document-revision-quality-status-false-positive.md);Round20 UI-03 | **不删禁词、不放宽正文**;不删证据 | | GOVERNANCE-ACTION-AUTHZ | 文档动作按职责鉴权;未激活 202-blocked;关闭创建直通 | **PASS** | [test-report](../test-reports/2026-09-14-governance-action-level-authz-test-report.md);[audit 异态](../audit/2026-09-14-planning-with-workflow-key-anomaly.md) | 不改 83 条 planning+key 夹具;none 长 PI 审批链另开 | -| DOC-RELIABILITY-PILOT | 受控文档写路径跨表非同事务、读路径被 projection 绑架、授权 TOCTOU;刷新/重启后可能 404/409/projection-missing | OPEN | [复核](../audit/2026-09-14-module-decoupling-plan-review.md);[重构计划](./2026-09-14-module-decoupling-refactor-plan.md);[试点任务](../ops/short-term/2026-09-14-document-reliability-pilot.md);[M1 停止扩面](../test-reports/2026-09-14-document-reliability-pilot-test-report.md);[M1 活验](../test-reports/2026-09-14-document-reliability-pilot-live-test-report.md);[M2](../test-reports/2026-09-14-document-reliability-m2-test-report.md);[M3 U8](../test-reports/2026-09-15-taskrun-runmanifest-u8-test-report.md);[M3 U9](../test-reports/2026-09-15-dataset-lifecycle-u9-test-report.md);[U10 报告](../test-reports/2026-09-15-chatlog-contextasm-u10-test-report.md);[U11–U12 报告](../test-reports/2026-09-15-app-composition-u11-u12-test-report.md) | U11–U12 合同已签,待占槽合入 `dev` + rebuild。path/sql_write 未到期例外保留。不碰 intent / 项目 143 | +| DOC-RELIABILITY-PILOT | 受控文档写路径跨表非同事务、读路径被 projection 绑架、授权 TOCTOU;刷新/重启后可能 404/409/projection-missing | OPEN | [复核](../audit/2026-09-14-module-decoupling-plan-review.md);[重构计划](./2026-09-14-module-decoupling-refactor-plan.md);[试点任务](../ops/short-term/2026-09-14-document-reliability-pilot.md);[M1 停止扩面](../test-reports/2026-09-14-document-reliability-pilot-test-report.md);[M1 活验](../test-reports/2026-09-14-document-reliability-pilot-live-test-report.md);[M2](../test-reports/2026-09-14-document-reliability-m2-test-report.md);[M3 U8](../test-reports/2026-09-15-taskrun-runmanifest-u8-test-report.md);[M3 U9](../test-reports/2026-09-15-dataset-lifecycle-u9-test-report.md);[U10 报告](../test-reports/2026-09-15-chatlog-contextasm-u10-test-report.md);[U11–U12 报告](../test-reports/2026-09-15-app-composition-u11-u12-test-report.md) | U11–U12 已合入 `dev@bf59cce` 并 rebuild(digest `a8e3e940…`,schema 38)。path/sql_write 未到期例外保留。不整支 merge FAV。项目 143 只读 | --- diff --git a/.doc/status/FEATURE-MATRIX.md b/.doc/status/FEATURE-MATRIX.md index 9e5f62fd..8c7364fd 100644 --- a/.doc/status/FEATURE-MATRIX.md +++ b/.doc/status/FEATURE-MATRIX.md @@ -27,7 +27,7 @@ | PI Runner / 配置链 | pi-agent + MiniMax 真实链路 | done | [test piagent](../test-reports/2026-09-13-codex-audit-p0-remediation-test-report.md);[container-env](../test-reports/2026-09-13-container-env-configuration-test-report.md) | — | `pi-agent` | | 三环境运维 | dev/test/main + 共享 KB | done | [PROJECT.md](../../PROJECT.md) §4;四环境 healthy | — | `infra` | | CI / E2E | PG 集成 + 真实 PI E2E | partial | [gap-matrix BUG-08](../remediation/gap-matrix.md);[test pg-ci](../test-reports/2026-09-12-pg-ci-soak-e2e-test-report.md);[运行时 UI Round20](../test-reports/2026-09-14-document-revision-runtime-ui-test-report.md) | CI `TEST_DATABASE_URL` 隔离库仍缺;文档运行时真实 UI 已按 UI_PHASE 分文件且 post-restart 断言最终 A1 正文。`-race` 全包并行 TempDir flake 为基建残留 | `ci` | -| 模块解耦与可靠事件 | 文档可靠性纵向试点、跨属主事务、多副本互斥、FAV 与选择性模块化 | partial | [架构](../system-design/2026-09-14-module-decoupling-architecture.md);[ADR](../adr/2026-09-14-modular-monolith-decoupling.md);[重构计划](../remediation/2026-09-14-module-decoupling-refactor-plan.md);[试点任务](../ops/short-term/2026-09-14-document-reliability-pilot.md);[M1 停止扩面](../test-reports/2026-09-14-document-reliability-pilot-test-report.md);[M1 活验](../test-reports/2026-09-14-document-reliability-pilot-live-test-report.md);[M2](../test-reports/2026-09-14-document-reliability-m2-test-report.md);[M3 U8](../test-reports/2026-09-15-taskrun-runmanifest-u8-test-report.md);[M3 U9](../test-reports/2026-09-15-dataset-lifecycle-u9-test-report.md);[U10 报告](../test-reports/2026-09-15-chatlog-contextasm-u10-test-report.md);[U11–U12 报告](../test-reports/2026-09-15-app-composition-u11-u12-test-report.md) | U5–U12 合同已签(U11–U12 在 `feature/app-composition-u11-u12`,合入 `dev` 后占槽 rebuild)。path/sql_write 未到期例外保留。未整支 merge FAV | `architecture-docs` | +| 模块解耦与可靠事件 | 文档可靠性纵向试点、跨属主事务、多副本互斥、FAV 与选择性模块化 | partial | [架构](../system-design/2026-09-14-module-decoupling-architecture.md);[ADR](../adr/2026-09-14-modular-monolith-decoupling.md);[重构计划](../remediation/2026-09-14-module-decoupling-refactor-plan.md);[试点任务](../ops/short-term/2026-09-14-document-reliability-pilot.md);[M1 停止扩面](../test-reports/2026-09-14-document-reliability-pilot-test-report.md);[M1 活验](../test-reports/2026-09-14-document-reliability-pilot-live-test-report.md);[M2](../test-reports/2026-09-14-document-reliability-m2-test-report.md);[M3 U8](../test-reports/2026-09-15-taskrun-runmanifest-u8-test-report.md);[M3 U9](../test-reports/2026-09-15-dataset-lifecycle-u9-test-report.md);[U10 报告](../test-reports/2026-09-15-chatlog-contextasm-u10-test-report.md);[U11–U12 报告](../test-reports/2026-09-15-app-composition-u11-u12-test-report.md) | U5–U12 合同已签并合入 `dev@bf59cce`(U11–U12 rebuild digest `a8e3e940…`,schema 38)。path/sql_write 未到期例外保留。未整支 merge FAV | `architecture-docs` | --- diff --git a/.doc/test-reports/2026-09-15-app-composition-u11-u12-test-report.md b/.doc/test-reports/2026-09-15-app-composition-u11-u12-test-report.md index b81798ca..ba692464 100644 --- a/.doc/test-reports/2026-09-15-app-composition-u11-u12-test-report.md +++ b/.doc/test-reports/2026-09-15-app-composition-u11-u12-test-report.md @@ -18,12 +18,12 @@ | 项 | 值 | |----|-----| | OS | Linux 7.0.0-31-generic | -| 分支 | `feature/app-composition-u11-u12`(从本地 `dev@ef9a162` 检出) | +| 分支 | `feature/app-composition-u11-u12` → `--no-ff` 合入 `dev@bf59cce` | | 本机合同测试 | `unset TEST_DATABASE_URL; go test -short ./internal/app ./internal/app/docnotify ./internal/app/stageflow ./internal/coordinator ./internal/stream/transport ./internal/archtest` | | 架构门 | `./scripts/arch-check.sh --mode warn` 与 `--mode block` | | 目标包 race | `go test -race -short` 上述包(不含全仓 race) | | 全仓 short | `unset TEST_DATABASE_URL; go test -short -count=1 ./...` | -| 真实 PI / 浏览器 / rebuild | 本分支未占集成槽;合入 `dev` 后由主仓 rebuild 证明镜像 | +| 真实 PI / 浏览器 / rebuild | 主仓占槽后 `./scripts/env-service.sh dev rebuild`;`:8080` health/ready schema 38 | | 证据 | `.doc/test-reports/assets/2026-09-15-app-composition-u11-u12/` | ## 四、 预期结果 (Expected Results) @@ -79,9 +79,11 @@ ### 5.6 真实 PI / 浏览器 / rebuild -- 真实 PI:本切片不改生成链路,未重跑编制任务。 -- 浏览器:未改 web 交互。 -- rebuild:未占集成槽;合入 `dev` 后须主仓 `./scripts/env-service.sh dev rebuild` 证明镜像。当前 `:8080` 仍为 U10 镜像。 +- **测试输入**: 占 CURRENT 集成槽后 `git merge --no-ff feature/app-composition-u11-u12`;`go vet ./...`;`unset TEST_DATABASE_URL; go test -short -count=1 ./...`;`./scripts/arch-check.sh --mode block`;主仓 `./scripts/env-service.sh dev rebuild`;`curl -sf http://127.0.0.1:8080/health` 与 `/ready` +- **实际输出**: merge `bf59cce`。vet / short / arch-check block 均 PASS。rebuild 后容器 Recreate。health 与 ready 均为 `status=ok`、`env=dev`、`agent_backend=pi-agent`、`schema_version=38`、`schema_ready=true`、`task_store_ready=true`。镜像 `sha256:a8e3e940f01111c4298c67947ae9f4cd6105f13cf58134672f4a87daa19e27ab`(`agent-dev-app:latest`,created=2026-09-15T05:52:24Z) +- **评价判定**: **PASS** +- **性能与耗时**: rebuild 约 22s(Go 层未命中 cache;web 层 cache)。证据:`assets/2026-09-15-app-composition-u11-u12/rebuild-health-ready.txt` +- 真实 PI 编制任务:本切片不改生成链路,未重跑。浏览器:未改 web 交互。 ## 六、 自动化测试套件汇总 (Test Suite Execution) @@ -96,6 +98,6 @@ ## 七、 测试结论与后续优化建议 (Conclusion & Next Steps) -U11a–U11d 与 U12 合同测试达到合入标准。未清零的 server `workspaces/` / `output.md` 路径例外与 sql_write 基线仍按到期日保留,不把 `--mode block` 写成全规则清零。合入 `dev` 需占 CURRENT 集成槽并 rebuild。 +U11a–U11d 与 U12 已合入 `dev@bf59cce` 并完成主仓 rebuild。未清零的 server `workspaces/` / `output.md` 路径例外与 sql_write 基线仍按到期日保留,不把 `--mode block` 写成全规则清零。 -**停止扩面**(整改计划 U1–U12 已在本分支落地;未到期 path/sql_write 例外不属于本单元删除范围)。 +**停止扩面**(整改计划 U1–U12 已落地;未到期 path/sql_write 例外不属于本单元删除范围)。 diff --git a/.doc/test-reports/assets/2026-09-15-app-composition-u11-u12/rebuild-health-ready.txt b/.doc/test-reports/assets/2026-09-15-app-composition-u11-u12/rebuild-health-ready.txt new file mode 100644 index 00000000..0dd5b58a --- /dev/null +++ b/.doc/test-reports/assets/2026-09-15-app-composition-u11-u12/rebuild-health-ready.txt @@ -0,0 +1,9 @@ +=== health === +{"status":"ok","env":"dev","agent_backend":"pi-agent","version":"v1.0","shared_kb_port":5432,"database_ready":true,"schema_version":38,"schema_ready":true,"task_store_ready":true} + +=== ready === +{"status":"ok","env":"dev","agent_backend":"pi-agent","version":"v1.0","shared_kb_port":5432,"database_ready":true,"schema_version":38,"schema_ready":true,"task_store_ready":true} + +=== image === +sha256:a8e3e940f01111c4298c67947ae9f4cd6105f13cf58134672f4a87daa19e27ab agent-dev-app +sha256:a8e3e940f01111c4298c67947ae9f4cd6105f13cf58134672f4a87daa19e27ab [agent-dev-app@sha256:a8e3e940f01111c4298c67947ae9f4cd6105f13cf58134672f4a87daa19e27ab] created=2026-09-15T05:52:24.564337183Z