diff --git a/.doc/ops/CURRENT.md b/.doc/ops/CURRENT.md index 75d37177..59e4bdea 100644 --- a/.doc/ops/CURRENT.md +++ b/.doc/ops/CURRENT.md @@ -1,19 +1,19 @@ # 当前焦点 **更新**: 2026-09-16 -**production_ready**: no(CI 真实 PI 三工作流 E2E / 前端人工抽检仍开放。Demo seed 污染整改已合入候选分支 `fix/demo-data-pollution-web`。`CHAT-INTENT-STATE` 双标签 busy **PASS**。文档账本运行时 UI Round20 **PASS**,不把 fallback change report 写成完整 PI,也不把本轮写成全仓可发布) +**production_ready**: no(CI 真实 PI 三工作流 E2E / 前端人工抽检仍开放。Demo seed 污染整改已合入本地 `dev`(schema 47)。`CHAT-INTENT-STATE` 双标签 busy **PASS**。文档账本运行时 UI Round20 **PASS**,不把 fallback change report 写成完整 PI,也不把本轮写成全仓可发布) ## 焦点 1. **MULTI-INTENT HITL**:核心 U1–U8 已合入本地 `dev`;U9–U12 不阻塞首版 2. **发布门禁**:CI `TEST_DATABASE_URL`、真实 PI 三工作流 E2E、前端人工抽检仍开放([gap-matrix](../remediation/gap-matrix.md)) -3. **DEMO-SEED 污染**:Wave 0–5 已实现于 `fix/demo-data-pollution-web`;待占槽合入 + migrate `00046` +3. **DEMO-SEED 污染**:已合入;`DEMO-DB-SEED` **PASS**(00046/00047 + 抽检) ## 并行认领 | owner | task | branch | worktree | mutex | status | |-------|------|--------|----------|-------|--------| -| Cursor-Auto | 2026-09-16-demo-seed-pollution | fix/demo-data-pollution-web | - | web | in_progress | +| Cursor-Auto | 2026-09-16-demo-seed-pollution | fix/demo-data-pollution-web | - | web | done | | Cursor | 2026-09-16-multi-intent-u8-task-generate | feature/multi-intent-u8-task-generate | - | intent-plan | done | | Cursor | 2026-09-16-multi-intent-u7-auto-read | feature/multi-intent-u7-auto-read | - | intent-plan | done | | Cursor | 2026-09-16-multi-intent-u6-web-cards | feature/multi-intent-u6-web-cards | - | web | done | @@ -93,7 +93,9 @@ | holder | phase | since | scope | queue | |--------|-------|-------|-------|-------| -| Cursor-Auto | merging | 2026-09-16 | fix/demo-data-pollution-web → demo | - | +| holder | phase | since | scope | queue | +|--------|-------|-------|-------|-------| +| - | idle | - | - | - | **phase**: `idle` | `merging` | `smoke` | `e2e` @@ -103,8 +105,8 @@ | 环境 | 端口 | schema | 状态 | |------|------|--------|------| -| dev | 8080 | **43** | healthy(`pi-agent` typed-result-v1;events worker `:8088`;notify/advance/projection live、fav off;health+ready PASS) | -| test | 8081 | **43** | healthy(`rc-v1.0.0-beta.1`;pi-agent `:18866`;events `:8089`;notify/advance/projection live、fav off;health+ready PASS) | +| dev | 8080 | **47** | healthy(`pi-agent` typed-result-v1;events worker `:8088`;notify/advance/projection live、fav off;health+ready PASS;demo 6001–6010 retired) | +| test | 8081 | **47** | healthy(`rc-v1.0.0-beta.1`;pi-agent `:18866`;events `:8089`;notify/advance/projection live、fav off;health+ready PASS;schema 与 dev 对齐 47) | | main | 8000 | 25→27* | healthy(app + runner + DB) | ## SSOT diff --git a/.doc/ops/short-term/2026-09-16-demo-seed-pollution.md b/.doc/ops/short-term/2026-09-16-demo-seed-pollution.md index 37eda845..95496033 100644 --- a/.doc/ops/short-term/2026-09-16-demo-seed-pollution.md +++ b/.doc/ops/short-term/2026-09-16-demo-seed-pollution.md @@ -39,8 +39,8 @@ mutex: web - [x] `check-prod-bundle.sh` PASS - [x] deliverableSync / demoSeedIds / ResolveBackend 单测 PASS - [x] `cd web && npm test` 全绿(审核 P0) -- [x] 00046 含 chat_sessions retire + ListChatSessions 过滤(审核 P1) -- [ ] 合入后共享环境 migrate + 人工空项目/会话抽检 +- [x] 00046/00047 retire + ListChatSessions 过滤(审核 P1) +- [x] 合入后共享环境 migrate + 人工空项目/会话抽检(dev schema 47;项目 6357 docs=0;列表无 6001–6010 / sess-wangjing) ## 相关链接 diff --git a/.doc/remediation/2026-09-16-demo-seed-pollution-remediation.md b/.doc/remediation/2026-09-16-demo-seed-pollution-remediation.md index ef94d43f..b0f6da2c 100644 --- a/.doc/remediation/2026-09-16-demo-seed-pollution-remediation.md +++ b/.doc/remediation/2026-09-16-demo-seed-pollution-remediation.md @@ -1,6 +1,6 @@ --- title: Demo/测试数据污染整改方案 -status: in_progress +status: done created: 2026-09-16 updated: 2026-09-16 owner: Cursor-Auto @@ -22,7 +22,7 @@ mutex: web | 1 | `VITE_ENABLE_DEMO_SEEDS` + `@demo-seeds` alias + `check-prod-bundle.sh` | done | | 2 | `purgeDemoSeedsFromLocalStorage` 幂等迁移 | done | | 3 | DeckDrawer「本地示例」徽章;职责人默认值清空 | done | -| 4 | goose `00046` retire 6001–6010 projects **+ chat_sessions** + list/`ListChatSessions` 过滤 `demo_retired` | done | +| 4 | goose `00046` retire projects + `00047` retire sessions + list/`ListChatSessions` 过滤 | done | | 5 | `ResolveBackendInEnv` main/prod 拒 stub | done | | 6 | 审计/整改/报告/gap-matrix | done | @@ -39,8 +39,8 @@ mutex: web - [x] 默认 `npm run build` 后 `check-prod-bundle.sh` PASS - [x] 空 server 清单 drop demo-seed 单测 PASS - [x] `ResolveBackendInEnv(..., "main")` 拒 stub 单测 PASS -- [ ] 共享环境 migrate `00046` 后列表无 6001–6010(合入 slot 冒烟) -- [ ] 新建空项目 UI 交付物无伪造 approved(人工抽检) +- [x] 共享环境 migrate `00046`/`00047` 后列表无 6001–6010(dev schema 47) +- [x] 新建空项目 UI/API 交付物无伪造 approved(项目 6357 documents=0) ## 启用 Demo(仅本地/评审) diff --git a/.doc/remediation/gap-matrix.md b/.doc/remediation/gap-matrix.md index d853f85a..67fa793a 100644 --- a/.doc/remediation/gap-matrix.md +++ b/.doc/remediation/gap-matrix.md @@ -41,7 +41,7 @@ | DB-USERS-SEQ | 种子 users_id_seq 冷启动冲突 | PASS | `00025_...-sync-seed-sequences.sql`;dev/test setval | | DATA-LIFECYCLE-DEV | completed 实例对应 active 项目 | PASS | dev dry-run 47 → fix SQL → 0 | | DATA-TEST-WF | test 污染 active 工作流定义 | PASS | `retire-nonofficial-workflow-definitions.sql`;test UPDATE 5 | -| DEMO-DB-SEED | goose 00011/00012 演示项目污染列表 | **PARTIAL** | `00046` retire projects **+ chat_sessions**;`ListProjects*` / `ListChatSessions` 过滤 `demo_retired`;合入后 migrate 待槽位冒烟 | [audit](../audit/2026-09-16-demo-seed-pollution-systemic.md);前序 [2026-09-15](../audit/2026-09-15-mock-deliverables-pollute-real-projects.md) | +| DEMO-DB-SEED | goose 00011/00012 演示项目污染列表 | **PASS** | `00046` retire projects + `00047` retire chat_sessions;`ListProjects*` / `ListChatSessions` 过滤 `demo_retired`;dev migrate schema **47**;抽检项目列表无 6001–6010、user1/2/3 无 `sess-wangjing*`、新建项目 6357 documents=0 | [audit](../audit/2026-09-16-demo-seed-pollution-systemic.md);前序 [2026-09-15](../audit/2026-09-15-mock-deliverables-pollute-real-projects.md);[report](../test-reports/2026-09-16-demo-seed-pollution-test-report.md) | | DEMO-STUB-API | main/prod 仍可请求 stub Agent | **PASS** | `ResolveBackendInEnv`;`TestResolveBackendInEnv_RejectsStubInMain` | | DEMO-WEB-SEEDS | 前端 mock/seed 进生产包并撞 projectId | **PASS** | `@demo-seeds` 默认关闭;`check-prod-bundle.sh` PASS;[report](../test-reports/2026-09-16-demo-seed-pollution-test-report.md) | | TEST-ADVISOR-BRIEF | 多意图 AdvisorBrief 丢失 | PASS | `action_planner.go` enrich;`action_planner_test.go` | diff --git a/.doc/status/FEATURE-MATRIX.md b/.doc/status/FEATURE-MATRIX.md index 64376260..0650a126 100644 --- a/.doc/status/FEATURE-MATRIX.md +++ b/.doc/status/FEATURE-MATRIX.md @@ -24,7 +24,7 @@ | IAM / 鉴权 | 项目级 API 鉴权 + RBAC | partial | [audit/authorization](../audit/authorization-matrix-v2.md);[刷新恢复专项审计](../audit/2026-09-13-chat-history-refresh-disappears.md) | 历史读取端点补统一会话 owner + 阶段授权;旧 API 410 标注(BUG-11 partial) | `authz` | | 文档治理 | 法定文档生命周期 + 租约 + 受控正文读取 | done | [test docgov](../test-reports/2026-09-08-docgov-lifecycle-and-claiming-framework-test-report.md);[项目 143 正文 404 审计](../audit/2026-09-14-project143-controlled-content-404.md);[受控正文真实 UI 验收报告](../test-reports/2026-09-14-controlled-content-ui-acceptance.md);[UI-06 缓存竞争审计](../audit/2026-09-14-document-revision-refresh-cache-race.md);[整改](../remediation/2026-09-14-controlled-content-canonical-hash-remediation.md) | 生命周期/租约保留。W1–W6 + 审查修补 + UI hydrate 资格 + 晚到 list sync 修复均已合入 dev。项目 143 纯 UI 回归(clean-run3)与新项目全链路(main + post-restart)已全量真实页面验证通过(PASS) | `docgov` | | 文档版本与修改认知 | 智能体版本边界、人工修订标记、任意版本比较、变更报告与负责人通知 | partial | [管理测试](../test-reports/2026-09-13-document-revision-management-test-report.md);[运行时 UI Round20](../test-reports/2026-09-14-document-revision-runtime-ui-test-report.md);[运行时审计](../audit/2026-09-13-document-revision-runtime-404.md);[ADR](../adr/2026-09-13-document-version-boundary.md) | **运行时 UI PASS**(6159 / V3/r2)。仍 `partial`:change report=`fallback`(真实 diff+lineage,非完整 PI 叙事)。系统级 `CHAT-INTENT` 见 gap-matrix | `docgov` | -| 前端工作台 | 三栏 + 块文档 + SSE | partial | [test workbench](../test-reports/2026-09-08-three-column-workbench-and-block-document-test-report.md);[现场专项审计](../audit/2026-09-13-conversation-intent-runtime-state.md);[双标签截图](../test-reports/assets/2026-09-15-conversation-intent-dual-tab/screenshots/tab-b-busy.png);[demo seed 污染整改](../test-reports/2026-09-16-demo-seed-pollution-test-report.md) | 错误卡片/任务进度/文档 busy 刷新恢复已有项目 6275 证据。Demo seeds 默认关闭(`VITE_ENABLE_DEMO_SEEDS`);前端人工抽检仍开放 | `web` | +| 前端工作台 | 三栏 + 块文档 + SSE | partial | [test workbench](../test-reports/2026-09-08-three-column-workbench-and-block-document-test-report.md);[现场专项审计](../audit/2026-09-13-conversation-intent-runtime-state.md);[双标签截图](../test-reports/assets/2026-09-15-conversation-intent-dual-tab/screenshots/tab-b-busy.png);[demo seed 污染整改](../test-reports/2026-09-16-demo-seed-pollution-test-report.md) | 错误卡片/任务进度/文档 busy 刷新恢复已有项目 6275 证据。Demo seeds 默认关闭(`VITE_ENABLE_DEMO_SEEDS`);`DEMO-DB-SEED`/`DEMO-WEB-SEEDS`/`DEMO-STUB-API` 已 PASS。发布门禁前端人工抽检仍开放 | `web` | | PI Runner / 配置链 | pi-agent + MiniMax 真实链路 + typed-result-v1 | 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);[typed-result-v1](../test-reports/2026-09-15-pi-typed-result-v1-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` | diff --git a/.doc/test-reports/2026-09-16-demo-seed-pollution-test-report.md b/.doc/test-reports/2026-09-16-demo-seed-pollution-test-report.md index d24600f1..b58bd43d 100644 --- a/.doc/test-reports/2026-09-16-demo-seed-pollution-test-report.md +++ b/.doc/test-reports/2026-09-16-demo-seed-pollution-test-report.md @@ -61,8 +61,20 @@ scripts/check-prod-bundle.sh → PASS 全量 `go test -short ./...` / 共享环境 migrate 留合入集成槽位执行。 +### 用例 5:合入槽位冒烟(dev) + +- **输入**: `go vet ./...`;`go test -short ./...`;`cd web && npm test`;`check-prod-bundle.sh`;`env-service.sh dev rebuild`;migrate 至 47;API 抽检 +- **实际输出**: + - health `schema_version=47`,`agent_backend=pi-agent` + - projects 列表 demo 6001–6010 = 0 + - chat sessions 无 `sess-wangjing*` / project 6001–6010 + - 新建项目 **6357** `GET .../documents` → `docs 0` + - DB:`demo_sessions_active=0` +- **判定**: PASS + ## 七、 测试结论与后续优化建议 (Conclusion & Next Steps) -- 代码层 Wave 0–5 + 审核 P0/P1(npm test、00046 会话退休、`SEED_DEMO_USERS` 挑拣)已落地,可作为合并候选。 -- 后续:占集成槽位 migrate `00046`;dev/test 人工新建空项目确认交付物区无伪造 approved;抽查 user 1/2/3 会话历史无 `sess-wangjing-*`。 +- Wave 0–5 + 审核 P0/P1 已合入本地 `dev`;`DEMO-DB-SEED` → **PASS**。 +- 注:dev 在扩展 00046 前已应用仅项目退休的 00046,故会话退休以幂等 **00047** 落地;00046 文件仍含 sessions 以利全新库一次到位。 - Demo 评审启用:`VITE_ENABLE_DEMO_SEEDS=true`。 +- P2 follow-up 见 remediation 文末。