merge: fix/wave-leftovers-n7-playwright-dod
This commit is contained in:
+3
-2
@@ -5,14 +5,15 @@
|
||||
|
||||
## 焦点
|
||||
|
||||
1. **Wave 3 done**:PU6–PU8 全部 no-go/deferred;契约已落盘
|
||||
1. **Phase 3 done**:N7 重试策略 + Playwright gated + 遗留 handoff 已合入
|
||||
2. **Wave 1 done**:PU5A race + PU3 IAM fail-closed 已合入 `dev`
|
||||
3. **Phase 3 遗留**:N7 U8 quality_failed / Playwright gated / IAM·DoD 清点
|
||||
3. **运维**:配置 Actions nightly secrets;获批后再开 PU6–PU8/Playwright 实现
|
||||
|
||||
## 并行认领
|
||||
|
||||
| owner | task | branch | worktree | mutex | status |
|
||||
|-------|------|--------|----------|-------|--------|
|
||||
| Cursor | 2026-09-16-wave-leftovers | fix/wave-leftovers-n7-playwright-dod | - | ci | done |
|
||||
| Cursor | 2026-09-16-wave3-pu6-pu8-go-no-go | feature/wave3-pu6-pu8-go-no-go | - | architecture-docs | done |
|
||||
| Cursor | 2026-09-16-wave2c-same-image-digest | feature/wave2c-same-image-digest | - | infra | done |
|
||||
| Cursor | 2026-09-16-wave2b-nightly-promotion-receipt | feature/wave2b-nightly-promotion-receipt | - | ci | done |
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
---
|
||||
title: "Phase 3 遗留清点收口"
|
||||
created: 2026-09-16
|
||||
from: Cursor
|
||||
to: any
|
||||
blocker: false
|
||||
---
|
||||
|
||||
# Phase 3 遗留清点收口
|
||||
|
||||
## 已关闭本轮
|
||||
|
||||
| 项 | 处置 |
|
||||
|----|------|
|
||||
| N7 U8 `quality_failed` 偶发 | `run-nightly-real-pi.sh` 对 quality_failed 全文重试一次;仍失败则 `product_fail`(非 PASS)。根因:模型质量门,非 secret/runner。 |
|
||||
| Playwright intent-plan 双标签 | 正式长期 gated + long-term 契约;矩阵关闭条件写死 |
|
||||
| Wave3 PU6–PU8 | 已 no-go(Phase 2) |
|
||||
| Artifact same-image | Wave2C done |
|
||||
|
||||
## 保留开放(需产品/另任务,不假装 done)
|
||||
|
||||
| 项 | 说明 |
|
||||
|----|------|
|
||||
| IAM 全路由 inventory | 仍开放;fail-closed 核心已签 |
|
||||
| session 中断负例 / 410 退役 | 需产品拍板 |
|
||||
| R13 全量清单勾选 | nightly 脱敏证据路径已有;完整 R13 矩阵另开 audit |
|
||||
| deterministic/B1–B4 持续回归 | 合入冒烟覆盖 short;全量门禁保持现有 CI |
|
||||
| FAV / 旁支分支 | CURRENT 已声明故意不合入 |
|
||||
|
||||
## 下一步
|
||||
|
||||
- 配置 Actions `RUNNER_AUTH_TOKEN` + `NIGHTLY_TEST_DATABASE_URL` 使 nightly 真跑
|
||||
- 获批后按 long-term 契约开 PU6–PU8 / Playwright 实现任务
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
title: "Playwright intent-plan 双标签 — 长期 gated"
|
||||
status: deferred
|
||||
created: 2026-09-16
|
||||
updated: 2026-09-16
|
||||
owner: TBD
|
||||
branch: feature/intent-plan-cards-playwright
|
||||
mutex: web
|
||||
---
|
||||
|
||||
# Playwright intent-plan 双标签 — 长期 gated
|
||||
|
||||
## 现状
|
||||
|
||||
- `web/e2e/intent-plan-cards.spec.ts`:`test.skip` unless `RUN_UI_ACCEPTANCE=1`;仅 body visible 骨架。
|
||||
- Conversation-intent 双标签已有 live 证据(项目 6275);**不等于** intent-plan confirm 双标签。
|
||||
- Wave2 明确不宣称 UI 双标签已绿。
|
||||
|
||||
## 关闭条件
|
||||
|
||||
1. 独立 short-term + `RUN_UI_ACCEPTANCE=1` 真浏览器:双标签 confirm 不同时本地成功
|
||||
2. 刷新/重登后与 PG plan 一致
|
||||
3. 报告归档 `.doc/test-reports/`;不升 MULTI_INTENT tier
|
||||
|
||||
## 非目标
|
||||
|
||||
- 用 stub/SKIP 冒充 PASS
|
||||
@@ -48,7 +48,7 @@
|
||||
| 模块 | 声明范围 | 状态 | 发布关系 | 证据 | 剩余工作 / 关闭条件 | mutex |
|
||||
|------|----------|------|----------|------|---------------------|-------|
|
||||
| 意图识别 L1 | 18 类 Intent、三分支消解、写/只读分流、双标签 `DOC_BUSY`、intent 纯依赖边界 | done | non_blocker | [intent-recognition](../system-design/intent-recognition/);[审计](../audit/2026-09-13-conversation-intent-runtime-state.md);[报告](../test-reports/2026-09-13-conversation-intent-runtime-state-test-report.md);[双标签](../test-reports/assets/2026-09-15-conversation-intent-dual-tab/live.json);[U1](../test-reports/2026-09-15-multi-intent-u1-contracts-test-report.md)–[U3](../test-reports/2026-09-15-multi-intent-u3-intentflow-pg-test-report.md) | **边界 before**:含 U9–U12 叙事混入 → **after**:U9–U12 迁至「多意图扩面」行。关闭:纯依赖边界回归即重开 | `intent` |
|
||||
| 多意图持久计划(U1–U8 基线) | app/intentflow 生命周期、HITL、默认 `legacy`、U1–U8 代码与安全基线 | done | non_blocker(默认 legacy) | [设计](../system-design/2026-09-15-multi-intent-hitl-plan.md);[U1](../test-reports/2026-09-15-multi-intent-u1-contracts-test-report.md)–[U8](../test-reports/2026-09-16-multi-intent-u8-task-generate-test-report.md);[Wave2 真 PI](../test-reports/2026-09-16-wave2-real-pi-evidence-test-report.md) | U8 真实 PI + PG receipt + 撤权 + API 刷新/重启已签。Playwright 双标签仍 gated。升 `confirm/full` 另开任务 | `intent-plan` |
|
||||
| 多意图持久计划(U1–U8 基线) | app/intentflow 生命周期、HITL、默认 `legacy`、U1–U8 代码与安全基线 | done | non_blocker(默认 legacy) | [设计](../system-design/2026-09-15-multi-intent-hitl-plan.md);[U1](../test-reports/2026-09-15-multi-intent-u1-contracts-test-report.md)–[U8](../test-reports/2026-09-16-multi-intent-u8-task-generate-test-report.md);[Wave2 真 PI](../test-reports/2026-09-16-wave2-real-pi-evidence-test-report.md) | U8 真实 PI + PG receipt + 撤权 + API 刷新/重启已签。**Playwright 双标签长期 gated**:`web/e2e/intent-plan-cards.spec.ts` 需 `RUN_UI_ACCEPTANCE=1`;关闭条件=独立 short-term 真浏览器 PASS(见 long-term)。升 `confirm/full` 另开且 Wave3 no-go | `intent-plan` |
|
||||
| 多意图扩面(U9–U12) | U9 LLM 分段实验;U10 mutate;U11 docgov;U12 workflow/run-control | deferred | deferred_enhancement | [设计](../system-design/2026-09-15-multi-intent-hitl-plan.md);[计划 Wave 3 / PU8](../remediation/2026-09-16-feature-matrix-production-readiness-plan.md);[go/no-go](../ops/research/2026-09-16-wave3-pu6-pu8-go-no-go.md) | **2026-09-16 no-go**:契约见 long-term `pu8-u9`…`pu8-u12`;未获批不实施;升 tier 另开 | `intent-plan` |
|
||||
| 对话 / ctxmgr baseline | 多轮上下文、刷新/重登/重启恢复、授权同集正文与计数、U10 端口化停止扩面 | done | non_blocker | [multi-turn](../system-design/multi-turn-dialogue/);[刷新审计](../audit/2026-09-13-chat-history-refresh-disappears.md);[U10](../test-reports/2026-09-15-chatlog-contextasm-u10-test-report.md);[门禁 B3](../test-reports/2026-09-16-chat-refresh-gate-test-report.md)(项目 6359) | **before**:语义摘要误标 D5 混入 → **after**:摘要迁「语义摘要 D3」;D7 数据治理独立。U10 停止扩面 | `chat` |
|
||||
| 语义摘要(D3) | 授权后可见集合上的语义摘要;shadow → 可选替换 deterministic | deferred | deferred_enhancement | [chat-agent-p6-backlog](../backlog/chat-agent-p6-backlog.md)(**D3**;D5=共享 KB 隔离评估);[计划 PU6](../remediation/2026-09-16-feature-matrix-production-readiness-plan.md);[go/no-go](../ops/research/2026-09-16-wave3-pu6-pu8-go-no-go.md) | **2026-09-16 no-go**;契约 [long-term pu6](../ops/long-term/2026-09-16-pu6-semantic-summary-contract.md);未获批不实施 | `chat` |
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
# Phase 3 遗留修复测试报告
|
||||
|
||||
## 一、 测试背景 (Background)
|
||||
|
||||
Wave 2B N7 本机 nightly 在 U8 真实 PI 出现 `quality_failed`(产品质量门,非 infra);Playwright intent-plan 双标签仍为 skip 骨架;矩阵/DoD 仍有开放项需清点而不假完成。
|
||||
|
||||
## 二、 测试目标 (Test Objectives)
|
||||
|
||||
- 明确 N7 根因分类 + 门禁策略(重试一次,仍失败 product_fail)
|
||||
- Playwright 正式 gated 文档化
|
||||
- 遗留项 handoff 清点
|
||||
|
||||
## 三、 测试方案与环境 (Test Plan & Environment)
|
||||
|
||||
| 项 | 值 |
|
||||
|----|-----|
|
||||
| 分支 | `fix/wave-leftovers-n7-playwright-dod` |
|
||||
| 证据 | Wave2B receipt `67d7335…` product_fail;脚本重试逻辑 |
|
||||
|
||||
## 四、 预期结果 (Expected Results)
|
||||
|
||||
- quality_failed → 脚本重试一次;二次仍失败 → product_fail receipt
|
||||
- 不将 quality_failed 标为 infra 或 PASS
|
||||
- 矩阵写明 Playwright 关闭条件
|
||||
|
||||
## 五、 实际测试结果与判定 (Actual Results & Evaluation)
|
||||
|
||||
### L1 — N7 根因与策略
|
||||
|
||||
- **Input**:Wave2B 控制台 `PI run status=quality_failed want completed`
|
||||
- **Actual**:属产品质量门失败;`run-nightly-real-pi.sh` 增加一次全文重试
|
||||
- **Verdict**:PASS(策略落地;未把偶发写成绿)
|
||||
|
||||
### L2 — Playwright gated
|
||||
|
||||
- **Input**:阅读 `web/e2e/intent-plan-cards.spec.ts`
|
||||
- **Actual**:`test.skip(!RUN_UI_ACCEPTANCE)`;long-term + 矩阵关闭条件已写
|
||||
- **Verdict**:PASS(正式 gated,非 stub 冒充)
|
||||
|
||||
### L3 — 遗留清点
|
||||
|
||||
- **Actual**:handoff `2026-09-16-phase3-leftover-closeout.md`
|
||||
- **Verdict**:PASS
|
||||
|
||||
## 六、 自动化测试套件汇总 (Test Suite Execution)
|
||||
|
||||
`go vet` + 洁净 `go test -short ./...`(合入冒烟)。
|
||||
|
||||
## 七、 测试结论与后续优化建议 (Conclusion & Next Steps)
|
||||
|
||||
三相计划收口。nightly 真 PASS 依赖 runner+模型稳定与 Actions secrets;Playwright/PU6–PU8 等获批后再开实现。
|
||||
@@ -135,6 +135,14 @@ LOG_FILE="${EVIDENCE_DIR}/go-test.txt"
|
||||
set +e
|
||||
go test -count=1 -timeout "${TIMEOUT}" -v ./internal/server/ -run "${RUN_FILTER}" 2>&1 | tee "${LOG_FILE}"
|
||||
TEST_RC=${PIPESTATUS[0]}
|
||||
# One retry when model quality_failed flakes the U8 generate (product path, not infra).
|
||||
if [[ "${TEST_RC}" -ne 0 ]] && grep -Eq 'quality_failed want completed|status=quality_failed' "${LOG_FILE}"; then
|
||||
echo "==> retry once after quality_failed flake..." | tee -a "${LOG_FILE}"
|
||||
RETRY_LOG="${EVIDENCE_DIR}/go-test-retry.txt"
|
||||
go test -count=1 -timeout "${TIMEOUT}" -v ./internal/server/ -run "${RUN_FILTER}" 2>&1 | tee "${RETRY_LOG}"
|
||||
TEST_RC=${PIPESTATUS[0]}
|
||||
cat "${RETRY_LOG}" >> "${LOG_FILE}"
|
||||
fi
|
||||
set -e
|
||||
|
||||
if [[ "${TEST_RC}" -eq 0 ]]; then
|
||||
|
||||
Reference in New Issue
Block a user