merge: fix/controlled-content-ui-acceptance-closeout
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "UI-06 页面刷新后受控正文停留加载骨架竞争态审计"
|
||||
status: planned
|
||||
status: done
|
||||
created: 2026-09-14
|
||||
updated: 2026-09-14
|
||||
severity: high
|
||||
@@ -67,6 +67,13 @@ severity: high
|
||||
1. `syncWorkflowDocs` 不应对所有 `serverBackedIds` 进行盲目的全量缓存与 ready 标志清空;应比对服务端返回的 `updatedAt` / `sha256` / `stage`,仅在真正发生更新时定向失效;
|
||||
2. 或者,若主动清空了已加载文档的缓存,必须同步唤醒重新拉取(如递增 `hydrateResumeKey`),避免状态丢失后无重入机制。
|
||||
|
||||
## 整改与复验结果
|
||||
|
||||
- Cursor 在 `08bf615` 引入统一的 `controlledContentInvalidation` 规划:`list_sync` 保留已水合缓存;`post_task` 定向失效并唤醒重水合;编辑期间保护活动正文并在关闭编辑器后恢复拉取。
|
||||
- 修复通过 349 项前端脚本测试、30 项 Vitest 与生产构建,并随 `36e4bc3` 合入 dev 后 rebuild。
|
||||
- Antigravity 在完全新建的真实 UI 项目中重跑 `UI-06`:人工编辑 `r0→r1` 后硬刷新,正文和唯一标记在 1.1 秒内恢复;完整主链与容器重启后恢复均 PASS。
|
||||
- 有效证据与历史 FAIL/INVALID 运行严格分开,详见[真实 UI 验收报告](../test-reports/2026-09-14-controlled-content-ui-acceptance.md)。
|
||||
|
||||
## 证据路径
|
||||
|
||||
- 报告:`.doc/test-reports/2026-09-14-controlled-content-ui-acceptance.md`
|
||||
|
||||
@@ -99,7 +99,9 @@ bootstrap 调用链:
|
||||
- 数据库:`document_records.id=87`、`document_versions.id=59`、`document_snapshots.id=66`
|
||||
- 历史 UI 资产:`.doc/test-reports/assets/2026-09-13-document-revision-runtime-ui/ui01-parent-directory-sync-failure/ui-acceptance-results.json`
|
||||
|
||||
## 开放问题
|
||||
## 关闭结果
|
||||
|
||||
- 尚未执行任何数据修复、代码修复、容器 rebuild 或浏览器重验。
|
||||
- 项目 143 可定位为 legacy canonicalization drift,但不能判定为渲染语义等价;修复须优先保全原文件,并以显式 migration repair 事件校正账本。
|
||||
- Cursor 已完成语义保持的 canonicalization、结构化错误、原子投影、定向 reconciler、legacy/mock 水合隔离和刷新缓存竞态修复;产品代码已合入并部署至 dev。
|
||||
- 项目 143 已在保全原文件与旧 head 后以显式 `migration_repair` 校正账本,没有把裁剪硬换行的旧 head 静默覆盖回原文件。
|
||||
- Antigravity 的 `clean-run3` 仅通过真实页面完成登录、正文打开、30 秒静置、人工编辑、三模式切换、硬刷新和退出重登;`doc_proj143_intake` 的 content/revision 目标 404 全程为 0。
|
||||
- 新项目 `full-chain-final` 又覆盖真实小队生成、影响/风险报告、高风险确认与拒绝、多文档、上传账本、权限、并发冲突及容器重启后恢复。最终验收见[报告](../test-reports/2026-09-14-controlled-content-ui-acceptance.md)。
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
|
||||
| ID | 描述 | 状态 | 证据 | 计划动作 |
|
||||
|---|---|---|---|---|
|
||||
| DOC-CONTENT-CANONICAL-HASH-DRIFT | 旧受控文档 bootstrap 裁剪 Markdown 双空格硬换行并将 canonical SHA 写入账本/DocGov,但未同步文件;正文读取把完整性冲突误报 404,lease no-op 每 5 秒重复 hydration | **FAIL** | [audit](../audit/2026-09-14-project143-controlled-content-404.md);[handoff](../ops/handoffs/2026-09-14-controlled-content-canonical-hash.md)。工程门禁 + 审查修补已在分支通过;**隔离 PG apply 未跑**;未合 dev、未 apply 143、未真实 UI | [remediation](./2026-09-14-controlled-content-canonical-hash-remediation.md);W7 合入+rebuild 后 **先 live apply 143** 再 W8 UI |
|
||||
| DOC-CONTENT-CANONICAL-HASH-DRIFT | 旧受控文档 bootstrap 裁剪 Markdown 双空格硬换行并将 canonical SHA 写入账本/DocGov,但未同步文件;正文读取把完整性冲突误报 404,lease/list sync 又放大并制造刷新后加载死锁 | **PASS(真实 UI)** | [audit](../audit/2026-09-14-project143-controlled-content-404.md);[UI report](../test-reports/2026-09-14-controlled-content-ui-acceptance.md)。代码已合 dev、schema 32、项目 143 定向 `migration_repair`;项目 143 `clean-run3` 与新项目 `full-chain-final` 主链及 restart 全部纯页面 PASS,目标 404=0 | [remediation](./2026-09-14-controlled-content-canonical-hash-remediation.md)。隔离 `TestReconcile_LegacyRepair_PG` 未执行,按用户“本轮只允许页面测试”的边界保留为工程测试债,不作为本轮 UI PASS 的替代证据 |
|
||||
| CHAT-HISTORY-REFRESH | 工作流激活后刷新,对话正文被阶段过滤器清空,但分类数量与锚点仍按全量返回 | **PASS** | [test-report](../test-reports/2026-09-13-chat-history-refresh-test-report.md);代码:`message_scope.go`、`chat_history_auth.go`、goose 00026/00027 | 真实 PI 刷新 E2E 待 dev 容器补录(自动化/PG 已 PASS) |
|
||||
| CHAT-INTENT-STATE | 真实会话被诊断探针污染;只读查询误启动文档写任务;错误动作与编辑状态刷新后丢失 | **FAIL** | [audit](../audit/2026-09-13-conversation-intent-runtime-state.md);dev `sess-p143-u9` / task run / lease 现场 | [remediation](./2026-09-13-conversation-intent-runtime-state-remediation.md) |
|
||||
| ENV-RESTART-SOURCE | `docker compose restart` 只重启旧镜像,健康检查无法证明合入代码已部署 | **PASS** | `env-service.sh rebuild` + 真实摘要重测 | 集成冒烟统一使用 `dev rebuild` |
|
||||
|
||||
Reference in New Issue
Block a user