Files
Agent-System/.doc/remediation/gap-matrix.md
T
weichen b739f358f8 docs(test): non-author member deny_only_submit PI evidence and MATRIX
Archive real PI acceptance for member run/edit vs submit duty gates;
register ISSUE/LESSON and refresh MATRIX/gap/authz matrix evidence.
2026-09-24 12:13:31 +00:00

17 KiB
Raw Blame History

整改缺口复核矩阵(SSOT)

更新: 2026-09-22 分支: test @ rc-v1.1.0-beta.1(83c6a12a);dev @ 591ea601 production_ready: yes(2026-09-22 门禁区段已签;dev/test schema_version=61。embedding 401 为非 blocker 运维债;U9–U12 / 软件自举 / FAV / D7 不挡;main 未在本轮晋升) 协作焦点: ../ops/CURRENT.md Agent 手册: AGENTS.md · PROJECT.md 能力矩阵: ../status/FEATURE-MATRIX.md(Wave 0 校准;与本文件正交) 本轮报告: ../test-reports/2026-09-22-dev-gate-and-test-promotion-test-report.md

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 历史(2026-09-12 区段):rebuild 后曾为 schema 25。现行:test @ rc-v1.1.0-beta.1 health schema=61(见下方 2026-09-22 区段)
ENV-DEV-STALE dev 二进制/schema 漂移 PASS 历史:docker app 重建后曾为 schema 25。现行:dev health schema=61
ENV-MAIN-MISSING main 未部署验收 PASS 历史:本地 main 冒烟曾对齐 schema 25。现行:main 本轮未晋升(见 2026-09-22 区段)
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。Wave 3(2026-09-18)已在隔离 docker PG(5436)执行 TestReconcile_LegacyRepair_PG 一次并 PASS,工程测试债关闭,见 test-report
CHAT-HISTORY-REFRESH 工作流激活后刷新,对话正文被阶段过滤器清空,但分类数量与锚点仍按全量返回 PASS test-report;闲聊 live.json(6252,window=categories=2,guest 403);B3 gate(6359,activate+task window=4,rebuild 4→4);代码 tip 364ed7f1:message_scope.go、chat_history_auth.go、goose 00026/00027;口径裁定 已修且 B3 ☑。红线仍生效:禁空 stage_key 一律放行;禁 localStorage 掩盖服务端空/错。handoff/remediation 已关闭
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 异态;2026-09-24 deny_only_submit 不改 83 条 planning+key 夹具;after 2026-09-24:run/edit 成员级,submit/review/approve 仍职责门禁
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=61(历史门禁框曾写 47;以 2026-09-22 区段为准)
☑ main 环境部署冒烟(历史本地 8000;**本轮未晋升 main**,见 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 叙事。


2026-09-20 P0 现场问题(同日收口)

ID 描述 状态 证据
P0-MIG 00054 空洞 + chat_summaries 静默失败 PASS 重编号 00058;dev/main health schema=58;报告
P0-IDOR 偏好写 / session 项目读 / 重分类越权 PASS 单元 + 真实 curl 403/400;同上报告
P0-PANIC-RACE taskrun closed-channel panic + 同步 chat 无锁 PASS 持锁 fanout;WithExecLock;-race Subscribe 测试
P0-XSS math 错误分支未转义 PASS BlockEditorModal/MathBlockView + escapeHtml 单测
P0-CRED backup 硬编码口令 + push URL token + 生产口令轮换 PASS 脚本无硬编码;docker 网旧口令 FATAL、新口令 OK;main health ok

不改 production_ready。main git 分支对齐仍为 backlog(T20-I7)。本区段当时环境库曾至 schema 58;现行 dev/test = schema 61(见下方 2026-09-22 区段)。


2026-09-20 追踪留存分类(不改发布门禁)

ID 描述 状态 证据 计划动作
D7-TRACE 项目追踪索引与阶段回溯记录的留存类别 已分类,未授权删除 设计 §9。project_trace_*、stage_reopen_requests、stage_recheck_marks 为 record。源文档依法清除时条目 tombstone,边与决议保留 不签 D7 对话 ADR。禁止物理删除,禁止把追踪表当可丢缓存重建。实施见 T2,不挡首发

2026-09-22 schema 61 门禁复验与 test 晋升

ID 描述 状态 证据
GATE-ARCH arch-check --mode block PASS 边界 SSOT 同步后 block 绿;晋升候选重跑
GATE-VET-SHORT go vet + go test -short PASS 门禁轮次 + 晋升候选 /tmp/promote-test-short.log
GATE-PG-ISO 隔离 TEST_DATABASE_URL(gate-pg :5436) PASS fixture 修复合入;nightly/FullChain 使用
GATE-WEB 前端 test/build PASS 前序门禁轮次
GATE-ABAC 项目上下文成员校验 PASS guest 403 / admin 200 live smoke
GATE-PI-NIGHTLY U8 + FullNone 真实 PI PASS receipt 591ea601…json;model MiniMax-M2.7-highspeed
GATE-PI-FULLCHAIN main / product_manager / test_manager FullChain PASS evidence-fullchain-591ea601-20260922T121108Z
GATE-REFRESH 重登/HTTP 刷新恢复抽查 PASS chat-refresh-smoke + U8 step 6
GATE-DATADIR 真实 PI 工作区挂载对齐 PASS piAgentSharedDataDir → repo data/dev;修复合入 591ea601
PROMOTE-TEST dev→test rc + push + 部署 PASS origin/test@83c6a12a;rc-v1.1.0-beta.1;test health schema=61 / Runner MiniMax-M3
OPS-EMBED-401 embedding 端点 401 非 blocker WARN only;全文材料仍注入;待运维换钥

production_ready 以本区段 + 报告 为准,覆盖 2026-09-17 @ schema 48 旧结论。main 分支对齐仍为 backlog。