13 KiB
13 KiB
整改缺口复核矩阵(SSOT)
更新: 2026-09-17
分支: test @ rc-v1.0.0-beta.3
production_ready: yes(发布门禁 B1–B4 已签;dev/test schema_version=48;main schema_version=47。U9–U12 / 软件自举 / FAV / D7 不挡首发;FAV live 与 D7 删除仍非本门禁范围)
协作焦点: ../ops/CURRENT.md
Agent 手册: AGENTS.md · PROJECT.md
能力矩阵: ../status/FEATURE-MATRIX.md(Wave 0 校准;与本文件正交)
Codex 2026-09-12 再审计项与本轮回环证据见下表「Codex 再审计」区段。 Wave 0(2026-09-16)对 dev/test/main 做 IAM 只读核验:schema 47、
user_credentials与 IAM 表齐全、ALLOW_IN_MEMORY=false,未发现 MemoryStore 旁路;不新增 blocker。代码 fail-closed 归 Wave 1(见 continuity plan)。
Phase A/B/C 原审计项
| ID | 审计描述 | 状态 | 证据 | 计划动作 |
|---|---|---|---|---|
| BUG-01 | 完成后 lifecycle 未更新 | PASS | stage_remediation_test.go;scripts/fix-completed-instance-lifecycle.sql;dev 执行 UPDATE 47 |
已完成 |
| BUG-02 | 推进强制批文档 | PASS | AdvanceStage 无 doc UPDATE |
已完成 |
| BUG-03 | 无 skipped_disabled | PASS | memStore skipped_disabled |
已完成 |
| BUG-04 | 对话走旧 bizdev | PASS | engine.go live 门控 |
已完成 |
| BUG-05 | 拒绝逻辑分散 | PASS | document_access.go + stage_access_helpers.go |
已完成 |
| BUG-06 | token 明文/重放 | PASS | activation_token_test.go |
已完成 |
| BUG-07 | 完成后下一流程 | PASS | 同 BUG-01 | 已完成 |
| BUG-08 | 测试库隔离 | PASS | db/testdb.go Require/Skip;CI TEST_DATABASE_URL + governance PG 步骤;report |
已完成 |
| BUG-09 | 版本冲突自动重试 | PASS | StageAdvanceBanner reload |
已完成 |
| BUG-10 | 无审计视图 | PASS | settings + UI | 已完成 |
| BUG-11 | 旧 API 未下线 | PASS | 治理开启时 410;策略冻结 | 保留兼容层,不强制删路由 |
| BUG-12 | 前端名称硬编码 | PASS | catalog API | 已完成 |
| MISSING-01 | 上下文快照 | PASS | ctxmgr.CollectProjectDialogue |
已完成 |
| MISSING-02 | 终止 | PASS | GetTerminationPreview |
已完成 |
| MISSING-04 | E2E | PASS | 三正式工作流 PG+PI E2E | 已完成 |
Codex 2026-09-12 再审计
| ID | 描述 | 状态 | 证据 |
|---|---|---|---|
| AUTH-TASK-RUN | /tasks/run 缺项目鉴权 |
PASS | handlers.go RequireProjectAccess;task_run_authz_pg_test.go |
| AUTH-TASK-SSE | /tasks/run/stream 鉴权在 Flush 前 |
PASS | sse.go;同上测试 |
| 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 演示项目污染列表 | 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 |
| 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-ADVISOR-BRIEF | 多意图 AdvisorBrief 丢失 | PASS | action_planner.go enrich;action_planner_test.go |
| TEST-V05-ARTIFACTS | V0.5 断言 3 vs 5 | PASS | types_test.go / full_link_e2e_test.go → 5 |
| TEST-CHAT-MEMORY | 语义记忆 sleep 竞态 | PASS | session_test.go deadline 轮询 |
| TEST-EMBEDDING-GATE | 默认打真实 embedding | PASS | kb/integration_test.go Short + RUN_KB_INTEGRATION=1 |
| HEALTH-SCHEMA-CACHE | health schema 启动缓存 | PASS | LiveSchemaVersion + health 实时读 |
| GO-VET-ASSET | asset handler resp before err | PASS | asset_handlers_test.go err-first |
| ENV-TEST-STALE | test 旧镜像/schema 漂移 | PASS | rebuild app;health schema_version=25 |
| ENV-DEV-STALE | dev 二进制/schema 漂移 | PASS | docker app 重建;schema_version=25 |
| ENV-MAIN-MISSING | main 未部署验收 | PASS | docker 创建 data/main;compose 注入 ADMIN/KB 密码;health/ready schema 25 |
| DOC-SSOT | 文档叙事漂移 | PASS | 本矩阵 + superseded 标记 + ops |
| OPS-AGENTS | 多 Agent 协作规范 | PASS | AGENTS.md / PROJECT.md / .doc/ops |
2026-09-13 现场问题
| ID | 描述 | 状态 | 证据 | 计划动作 |
|---|---|---|---|---|
| WORKFLOW-PLAN-FROZEN-OPTIONAL-DUTIES | active 项目仍展示可编辑职责表单,409 提示在长表单视口外;现有规划又不支持非必需文档“三权全空”,且后端缺少职责人在任成员复核 | PASS(设置页) | audit;test-report。项目 143 只读 frozen、A full+none 激活、B partial 不发 PUT、C 零治理拒绝、双标签转 frozen、成员无配置入口、刷新后 143 仍 frozen | 设置页矩阵 PASS;真实 PI full/none 长链已另签 Wave2 报告 |
| DOC-CONTENT-CANONICAL-HASH-DRIFT | 旧受控文档 bootstrap 裁剪 Markdown 双空格硬换行并将 canonical SHA 写入账本/DocGov,但未同步文件;正文读取把完整性冲突误报 404,lease/list sync 又放大并制造刷新后加载死锁 | PASS(真实 UI) | audit;UI report。代码已合 dev、schema 32、项目 143 定向 migration_repair;项目 143 clean-run3 与新项目 full-chain-final 主链及 restart 全部纯页面 PASS,目标 404=0 |
remediation。隔离 TestReconcile_LegacyRepair_PG 未执行,按用户“本轮只允许页面测试”的边界保留为工程测试债,不作为本轮 UI PASS 的替代证据 |
| CHAT-HISTORY-REFRESH | 工作流激活后刷新,对话正文被阶段过滤器清空,但分类数量与锚点仍按全量返回 | PASS | test-report;活验 live.json(项目 6252,window=categories=2,guest 403);代码:message_scope.go、chat_history_auth.go、goose 00026/00027 |
闲聊刷新已补。发布门禁「激活后文档任务 + 重登/重启」仍开放,不回退本 gap |
| CHAT-INTENT-STATE | 真实会话被诊断探针污染;只读查询误启动文档写任务;错误动作与编辑状态刷新后丢失 | PASS | audit;test-report;双标签活验项目 6275 / sess-p6275-u10(live.json + Docker 截图)。不删除 sess-p143-u9 历史探针 |
remediation。Wave 3–4 浏览器门已签;诊断污染消息仍不擅自删除 |
| ENV-RESTART-SOURCE | docker compose restart 只重启旧镜像,健康检查无法证明合入代码已部署 |
PASS | env-service.sh rebuild + 真实摘要重测 |
集成冒烟统一使用 dev rebuild |
| DOCREV-RUNTIME-404 | revision-state 404;账本内存丢失;块保存/overlay 无效;agent 假报告 | PASS | Round20 报告;audit | 运行时 UI 已闭环。change report 仍为 fallback,不冒充 PI。历史失败目录不删 |
| DOCREV-PG-ID-REMAP | 首次生成 PG 已写 snapshot/candidate,commit 因内存误删 baseline 而 not found | PASS | audit;Round19 归档 schema31-round19-ui03-advisor-briefing-docrevision-not-found(candidate id=175 / output snapshot 250,禁止写成 candidate 250);Round20 UI-03 V2/r0 |
已合入 dev@b258ab8;不忽略 ErrNotFound;不删证据 |
| DOCREV-UI03-CLIENT-SYNC | 小队完成后右栏仍模板;UI-03 选择器误命中 Banner;pending_author_confirmation 撞 chk;重试重复建 run |
PASS | audit;Round20 UI-03 | 历史失败不删;勿把 stub 当验收 |
| DOCREV-SSE-IDEM-BUSY | SSE WriteTimeout 断线后同 turn 再 POST 误 409 DOC_BUSY + 重复聊天 | PASS | audit;Round20 真实小队 202 | 不删证据 |
| DOCREV-QUALITY-SELF-POLLUTE | 自检表引用禁词致 score=40 quality_failed;auto_repair 未启用;UI 映射 completed | PASS | audit;Round20 UI-03 完成 | 不删证据;不删禁词 |
| DOCREV-ACTIVE-DOC-ROUTING | UI-05「当前受控文档」被法规关键词改路由到 feasibility_reg,intake 无 pending |
PASS | audit;Round20 UI-05 pending 停在 intake V2 | 不改弱 E2E;不删证据 |
| DOCREV-QUALITY-STATUS-FP | 行动计划表状态列「待续」被门禁当敷衍,两轮 repair 后 quality_failed 80 | PASS | audit;Round20 UI-03 | 不删禁词、不放宽正文;不删证据 |
| GOVERNANCE-ACTION-AUTHZ | 文档动作按职责鉴权;未激活 202-blocked;关闭创建直通 | PASS | test-report;audit 异态 | 不改 83 条 planning+key 夹具;none 长 PI 审批链另开 |
| DOC-RELIABILITY-PILOT | 受控文档写路径与 PG 事件交付尚未形成生产闭环;闭包副作用在崩溃/重启后不可重试审计,错误 scope 或 projection 缺失仍可能导致刷新失败 | PASS | 初审;Phase 1;Phase 2 复核;Phase 2 修订;U11–U12 报告;E1A;E1B;E1C;E2;复盘;notify live;advance live;projection live | 共享 notify/workflow_advance/projection 已 live;生产不再注册 OnOutbox= / AddOnApprovedHook(。FAV 仍 off。HTTP/PI 实施不纳入本行。项目 143 只读 |
发布门禁(test → main)
☑ go vet ./... 全绿
☑ go test -short ./... 全绿
☑ TEST_DATABASE_URL 下治理 PG 集成全绿(CI)
☑ 真实 PI Agent 三工作流治理 E2E 实录([test-report](../test-reports/2026-09-16-pi-three-workflow-e2e-test-report.md))
☑ 对话刷新恢复:激活前聊天 + 激活后文档任务 + 刷新/重登/重启可恢复,双用户负例通过([test-report](../test-reports/2026-09-16-chat-refresh-gate-test-report.md);项目 6359)
☑ lifecycle fix SQL 已在 dev 执行
☑ test/dev health schema_version=47
☑ main 环境部署冒烟(本地 8000;schema 对齐见 CURRENT)
☑ 前端:版本冲突刷新、终止 preview 人工抽检([test-report](../test-reports/2026-09-16-frontend-gate-b4-test-report.md);项目 6363)
结论: 发布门禁四框已签。文档账本运行时 UI Round20 PASS;CHAT-INTENT-STATE 双标签 busy PASS;DEMO-DB-SEED PASS;BUG-08 PASS。-race TempDir flake 与 U9–U12 / 软件自举 / FAV / 完整 PI change-report 叙事不挡首发。不得把 fallback change report 写成完整 PI 叙事。