merge: refresh local_dev tip before U9–U12 integrate
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
title: "PU7 PI change-report 叙事 — 获批后任务契约"
|
||||
status: done
|
||||
created: 2026-09-16
|
||||
updated: 2026-09-17
|
||||
updated: 2026-09-23
|
||||
owner: Cursor-Auto
|
||||
branch: feature/pu7-pi-narrative
|
||||
mutex: docgov
|
||||
@@ -13,6 +13,10 @@ go_no_go: go
|
||||
|
||||
**go/no-go**:GO(用户覆盖授权,见 Wave3 research)。脚手架已合 `dev`;W3 live(产品 PI + digest 绑定)已接线,默认 flag 仍 off。
|
||||
|
||||
## 2026-09-23 收口
|
||||
|
||||
修复后真实 MiniMax 复测 PASS(截断 hunk/impact 输入 + reasoning 目标落盘);报告见 [../../test-reports/2026-09-23-pi-narrative-closeout-test-report.md](../../test-reports/2026-09-23-pi-narrative-closeout-test-report.md)。FEATURE-MATRIX `docgov-pi-narrative` → `done`。默认 flag 仍 off;放量另授权。
|
||||
|
||||
## 目标
|
||||
|
||||
只读消费 immutable diff+lineage+risk floor 的 PI 叙事;任意 schema/超时/注入 → 全量 fallback。
|
||||
@@ -27,11 +31,12 @@ go_no_go: go
|
||||
## 路径
|
||||
|
||||
- `internal/docrevision/flags.go` / `narrative.go` / `service.go`
|
||||
- `deploy/pi-agent/change-report-narrative-v1.mjs`
|
||||
- `deploy/pi-agent/change-report-narrative-v1.mjs`;`runner.mjs` reasoning 目标落盘
|
||||
- `web/.../ChangeReportPanel.tsx` / `changeReportView.ts`
|
||||
- 报告:[../../test-reports/2026-09-16-pu7-pi-narrative-test-report.md](../../test-reports/2026-09-16-pu7-pi-narrative-test-report.md)
|
||||
- W3 live:[../../test-reports/2026-09-17-w3-pi-change-report-narrative-test-report.md](../../test-reports/2026-09-17-w3-pi-change-report-narrative-test-report.md)
|
||||
- short-term:[../short-term/2026-09-17-w3-pi-change-report-narrative.md](../short-term/2026-09-17-w3-pi-change-report-narrative.md)
|
||||
- 收口:[../../test-reports/2026-09-23-pi-narrative-closeout-test-report.md](../../test-reports/2026-09-23-pi-narrative-closeout-test-report.md)
|
||||
- short-term:[../short-term/2026-09-17-w3-pi-change-report-narrative.md](../short-term/2026-09-17-w3-pi-change-report-narrative.md);[../short-term/2026-09-23-pi-narrative-final-closeout.md](../short-term/2026-09-23-pi-narrative-final-closeout.md)
|
||||
|
||||
## 回滚
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
title: "docgov-pi-narrative 收口:修复后复测升 done"
|
||||
task_id: pi-narrative-final-closeout-b-2026-09-23
|
||||
status: in_progress
|
||||
status: done
|
||||
created: 2026-09-23
|
||||
updated: 2026-09-23
|
||||
owner: Cursor
|
||||
@@ -15,7 +15,7 @@ write_scope: ["internal/app", "internal/sysadmin", ".doc"]
|
||||
allowed_environments: []
|
||||
head_sha: ""
|
||||
mutex: docgov
|
||||
review_state: pending
|
||||
review_state: accepted
|
||||
integration_state: pending
|
||||
deployment: not_required
|
||||
cleanup: pending
|
||||
@@ -47,18 +47,18 @@ remote_sync: not_requested
|
||||
## 步骤与验收
|
||||
|
||||
1. [x] 建场并认领 mutex `docgov`
|
||||
2. [ ] 补强 live 测试输入与 flag-on Resolve 断言
|
||||
3. [ ] 真实 PI 复测 + 前端分区 + vet/short/arch
|
||||
4. [ ] MATRIX → done;CURRENT/pu7/sysadmin 同步
|
||||
5. [ ] 测试报告归档;validate + queue enqueue;五态收口
|
||||
2. [x] 补强 live 测试输入与 flag-on Resolve 断言
|
||||
3. [x] 真实 PI 复测 + 前端分区 + vet/short/arch(live PASS @ MiniMax-M2.7-highspeed 7.65s)
|
||||
4. [x] MATRIX → done;CURRENT/pu7/sysadmin 同步
|
||||
5. [x] 测试报告归档;validate + integrate;五态收口
|
||||
|
||||
## 验证与证据
|
||||
|
||||
| 范围 / 被测 SHA | 命令与环境 | 预期 | 实际 / 判定 | 证据 / 脱敏说明 |
|
||||
|---|---|---|---|---|
|
||||
| live PI(进程 env flag) | `RUN_PI_E2E=1 … TestPiChangeReportNarrator_LiveMiniMax` | PASS;digest 原样;含截断差异 | pending | 报告 assets |
|
||||
| 前端分区 | `overlayMode.test.ts` | PASS | pending | |
|
||||
| 门禁 | `go vet` / `go test -short` / `arch-check --mode block` | 全绿 | pending | |
|
||||
| live PI(进程 env flag) | `RUN_PI_E2E=1 … TestPiChangeReportNarrator_LiveMiniMax` | PASS;digest 原样;含截断差异 | PASS(7.65s) | [assets](../../test-reports/assets/2026-09-23-pi-narrative-closeout/live-minimax.txt) |
|
||||
| 前端分区 | `overlayMode.test.ts` | PASS | PASS(14) | [overlay](../../test-reports/assets/2026-09-23-pi-narrative-closeout/overlay-mode.txt) |
|
||||
| 门禁 | `go vet` / short narrative / `arch-check --mode block` | 全绿 | PASS | 收口报告 |
|
||||
|
||||
## 收口与交接
|
||||
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
# PI change-report 叙事收口测试报告
|
||||
|
||||
## 一、 测试背景 (Background)
|
||||
|
||||
`docgov-pi-narrative` 在 W3(2026-09-17)曾宣称 done,后因 2026-09-20 调研发现两处实质缺口回退 `partial`:`facts.json` 仅计数、`--no-tools` 仅为 prompt。缺口已先后补齐;2026-09-23 pi-runner response-size 与 reasoning 落盘路径变化触发本行重验。本轮补强 live 输入、修复 reasoning 目标落盘,并以真实 MiniMax 复测后升 `done`(默认 flag 仍 off)。
|
||||
|
||||
## 二、 测试目标 (Test Objectives)
|
||||
|
||||
- live 路径携带截断 hunk/impact 文本;digest 原样回写
|
||||
- flag-on `ResolveChangeReport` → `analysis_status=complete` 且服务端 `rule_risk` 不被覆盖
|
||||
- runner reasoning 画像在 `--no-tools` 下将助手正文物化为 `narrative.md`
|
||||
- 默认 `PI_CHANGE_REPORT_NARRATIVE=false` 保持
|
||||
- UI 分区回归仍 PASS
|
||||
|
||||
## 三、 测试方案与环境 (Test Plan & Environment)
|
||||
|
||||
| 项 | 值 |
|
||||
|----|----|
|
||||
| OS | Linux |
|
||||
| Go | go1.x(本机) |
|
||||
| 被测 SHA | `fdbefbac`(合入 local_dev 后) |
|
||||
| Runner | `http://127.0.0.1:18865` / `MiniMax-M2.7-highspeed` / typed-result-v1 |
|
||||
| Flag | 进程级 `PI_CHANGE_REPORT_NARRATIVE=true`(测后无残留;compose 默认 false) |
|
||||
| 证据 | `assets/2026-09-23-pi-narrative-closeout/` |
|
||||
|
||||
## 四、 预期结果 (Expected Results)
|
||||
|
||||
- Live PASS;summary 引用具体阈值变更而非空泛计数
|
||||
- Resolve complete + medium risk 保留
|
||||
- overlay 14 pass;负例套件仍绿
|
||||
|
||||
## 五、 实际测试结果与判定 (Actual Results & Evaluation)
|
||||
|
||||
### 5.1 真实 PI MiniMax(修复后输入)
|
||||
|
||||
- **测试输入 (Input)**:`RUN_PI_E2E=1 PI_CHANGE_REPORT_NARRATIVE=true go test -count=1 ./internal/app -run TestPiChangeReportNarrator_LiveMiniMax -v`
|
||||
- **实际输出 (Actual Output)**:见 `live-minimax.txt`
|
||||
|
||||
```text
|
||||
=== RUN TestPiChangeReportNarrator_LiveMiniMax
|
||||
pi_narrative_test.go:158: elapsed=7.654s model=MiniMax-M2.7-highspeed raw={"schema_version":1,"schema_kind":"change_report_narrative_v1","input_digest":"5fbc5c7c082a6434802f442d03c1d92433e6f540715291f980b7bc6f28d6f88e","from_sha":"fromsha-closeout-20260923","to_sha":"tosha-closeout-20260923","summary":["性能指标中响应时间阈值从2秒收紧至1秒","验收口径调整,性能设计响应预算需复核"]}
|
||||
--- PASS: TestPiChangeReportNarrator_LiveMiniMax (7.65s)
|
||||
```
|
||||
|
||||
- **评价判定 (Evaluation / Verdict)**:PASS(digest 原样;summary 锚定 hunk 文本;Resolve complete)
|
||||
- **性能与耗时 (Duration & Latency)**:7.65s
|
||||
|
||||
### 5.2 前端分区
|
||||
|
||||
- **测试输入 (Input)**:`npx tsx --test src/features/documentRevision/overlayMode.test.ts`
|
||||
- **实际输出 (Actual Output)**:14 pass(见 `overlay-mode.txt`)
|
||||
- **评价判定 (Evaluation / Verdict)**:PASS
|
||||
- **性能与耗时 (Duration & Latency)**:~97ms
|
||||
|
||||
### 5.3 单测 / arch
|
||||
|
||||
- `go test -short` narrative / Resolve / CreateAgentCandidate_Flag:PASS
|
||||
- `node deploy/pi-agent/reasoning-materialize.test.mjs`:PASS
|
||||
- `./scripts/arch-check.sh --mode block`:PASS
|
||||
|
||||
### 5.4 默认 flag
|
||||
|
||||
- compose / `.env.example` 仍为 false(未改动放量配置)
|
||||
|
||||
## 六、 自动化测试套件汇总 (Test Suite Execution)
|
||||
|
||||
本轮为能力成熟度收口(non_blocker),适用范围:narrative 包 + app live + overlay + arch。非产品全链路 PI nightly;全量 `go test ./...` **NOT REQUIRED**(依据验证契约:范围门禁已覆盖受影响包)。
|
||||
|
||||
## 七、 测试结论与后续优化建议 (Conclusion & Next Steps)
|
||||
|
||||
达到 FEATURE-MATRIX `docgov-pi-narrative` → `done`。默认 flag off;dev/test 常驻开启另授权。观察窗后评估放量。
|
||||
@@ -0,0 +1,5 @@
|
||||
=== RUN TestPiChangeReportNarrator_LiveMiniMax
|
||||
pi_narrative_test.go:158: elapsed=7.654s model=MiniMax-M2.7-highspeed raw={"schema_version":1,"schema_kind":"change_report_narrative_v1","input_digest":"5fbc5c7c082a6434802f442d03c1d92433e6f540715291f980b7bc6f28d6f88e","from_sha":"fromsha-closeout-20260923","to_sha":"tosha-closeout-20260923","summary":["性能指标中响应时间阈值从2秒收紧至1秒","验收口径调整,性能设计响应预算需复核"]}
|
||||
--- PASS: TestPiChangeReportNarrator_LiveMiniMax (7.65s)
|
||||
PASS
|
||||
ok chat-agent-system/internal/app 7.660s
|
||||
@@ -0,0 +1,28 @@
|
||||
▶ document revision overlay modes
|
||||
✔ pure hides all decorations (0.542424ms)
|
||||
✔ manual only marks human hunks (0.091868ms)
|
||||
✔ all marks human and agent differently (0.068918ms)
|
||||
✔ same human hunk stays amber in manual and all (no pairwise style guarantee) (0.085537ms)
|
||||
✔ exposes needs-content error code for empty orphan docs (0.066098ms)
|
||||
✔ matches overlay hunks by section or text when ids differ (0.205044ms)
|
||||
✔ aligns client block ids from head_block_map by order (0.157785ms)
|
||||
✔ document revision overlay modes (2.058258ms)
|
||||
▶ toolbar refresh + report entry reachability
|
||||
✔ pickLatestChangeReportId prefers highest version with report (0.215954ms)
|
||||
✔ first squad run alone still exposes a reachable report id (0.099397ms)
|
||||
✔ second squad run keeps both history report entries and latest shortcut (0.127726ms)
|
||||
✔ revisionRefreshKey is an independent refresh signal from docId (0.090297ms)
|
||||
✔ toolbar refresh + report entry reachability (0.732318ms)
|
||||
▶ change report view model
|
||||
✔ surfaces risk items, project impact, doc impacts with advice, and open questions (0.403459ms)
|
||||
✔ marks complete analysis as PI narrative vs factual fields (0.164325ms)
|
||||
✔ preferReportId prioritizes pending over committed latest (0.056029ms)
|
||||
✔ change report view model (0.730509ms)
|
||||
ℹ tests 14
|
||||
ℹ suites 3
|
||||
ℹ pass 14
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 97.378459
|
||||
@@ -84,7 +84,7 @@ var featureMaturityCatalog = map[string]featureMaturity{
|
||||
},
|
||||
"PI_CHANGE_REPORT_NARRATIVE": {
|
||||
state: implShadow, adapter: adapterDegraded,
|
||||
reason: "只读事实已含截断后的差异片段和影响说明,不含整篇文档。开关默认关闭。叙事请求已用 reasoning profile;pi-agent 经 bind-mount 已带 --no-tools。未授权打开前保持 shadow",
|
||||
reason: "只读事实已含截断差异;reasoning/--no-tools 目标落盘与真实 MiniMax 链路已复测。开关默认关闭,待放量授权前保持 shadow",
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user