merge: docs/partial-deferred-completion-plan
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
---
|
||||
title: "D7 对话数据留存与删除口径(草案)"
|
||||
status: proposed
|
||||
created: 2026-09-17
|
||||
updated: 2026-09-17
|
||||
compliance: pending-compliance-signoff
|
||||
owner: Cline
|
||||
related:
|
||||
- ../remediation/2026-09-16-partial-deferred-completion-plan.md
|
||||
- ../ops/short-term/2026-09-16-partial-deferred-completion.md
|
||||
- ../status/FEATURE-MATRIX.md
|
||||
---
|
||||
|
||||
# ADR:D7 对话数据留存与删除口径
|
||||
|
||||
## 状态
|
||||
|
||||
**提议 / 工程草案**(2026-09-17)。数字与删除口径标 `pending-compliance-signoff`:合规签字或改数前,W7 仅允许数据分类盘点与现状审计,不得按未签字数字执行物理删除或备份清除。接受后状态改为 `accepted`。
|
||||
|
||||
## 背景
|
||||
|
||||
FEATURE-MATRIX「对话数据治理(D7)」为 `deferred`。收口计划 W7 要求:数据分类盘点 → 留存/删除口径落 ADR → 库/备份/日志控制 → 敏感字段加密边界。工程不能单方面定合规数字,但必须提供可审草案,避免无限期停在 deferred。Track E / R13 / R18 / R22 已对日志脱敏与销毁门禁有硬约束,本 ADR 将其固化为 D7 口径。
|
||||
|
||||
## 决策(建议默认;待合规确认)
|
||||
|
||||
### 1. 数据分类与留存
|
||||
|
||||
| 数据类 | 留存 | 说明 |
|
||||
|--------|------|------|
|
||||
| 会话正文(chat sessions/messages) | 热库 **365 天**(可配置) | 超期 soft-delete → 观察窗 → 物理清理 |
|
||||
| 派生文档 / 私密文档 | 与聊天**独立周期**;回收站 **30 天**后物理清理 | 删除 UI 须说明影响范围(只删聊天 / 只删文档 / 两者) |
|
||||
| 审计元数据(导出/治理审计) | **180 天** | 不可被普通用户删除覆盖 |
|
||||
| Agent trace / workspace 非终态 | 任务结束后 **30 天**;nightly 仅合成数据 | 禁止当长期事实源 |
|
||||
| 日志 / dead-letter / reconciliation | 不按正文留存;**只存 ID、digest、typed error code、allowlist 摘要** | Track E 红线 |
|
||||
| FAV 终态制品 | `retention_class` + legal hold + delete ledger | 与聊天口径解耦 |
|
||||
|
||||
### 2. 删除路径
|
||||
|
||||
1. **用户删除**:soft-delete / tombstone → 观察窗 → 物理清理。
|
||||
2. **备份清除**:须二次批准 + 精确 delete manifest;对齐销毁门禁 R22(完整备份恢复演练、migration corpus、FAV coverage、manifest、用户批准)。
|
||||
3. **删除界面**:必须说明聊天源消息与派生文档的独立保留周期及本次操作影响范围。
|
||||
|
||||
### 3. 加密边界(首期)
|
||||
|
||||
- 首期范围:敏感字段**盘点** + 传输与备份访问控制。
|
||||
- **不默认**上字段级加密;选型待合规确认与威胁模型后再立实现任务。
|
||||
|
||||
### 4. 违规升级
|
||||
|
||||
盘点确认当前基线违反已确认的安全或合规要求 → **立即**写入 [`gap-matrix.md`](../remediation/gap-matrix.md),不得继续当普通 backlog;本行 `done` 让位于整改。
|
||||
|
||||
## 后果
|
||||
|
||||
- W7 可按本草案启动盘点;物理删除与备份清除在 `pending-compliance-signoff` 解除前禁止按建议数字自动执行。
|
||||
- 日志/DLQ/reconciliation 实现与审计须持续满足 Track E ID-only 红线。
|
||||
- 合规改数后:更新本 ADR 数字表、`updated` 日期,并将 `compliance` 改为 `signed` / `accepted`;再开 W7 整改实现。
|
||||
|
||||
## 相关链接
|
||||
|
||||
- 收口计划 §7.1:[../remediation/2026-09-16-partial-deferred-completion-plan.md](../remediation/2026-09-16-partial-deferred-completion-plan.md)
|
||||
- FEATURE-MATRIX D7 行:[../status/FEATURE-MATRIX.md](../status/FEATURE-MATRIX.md)
|
||||
- Track E Phase 2:[../remediation/2026-09-15-module-decoupling-ipc-phase2-remediation-plan.md](../remediation/2026-09-15-module-decoupling-ipc-phase2-remediation-plan.md)
|
||||
+6
-5
@@ -1,18 +1,19 @@
|
||||
# 当前焦点
|
||||
|
||||
**更新**: 2026-09-16
|
||||
**更新**: 2026-09-17
|
||||
**production_ready**: yes(门禁 B1–B4 已签;dev/test/main `schema_version=47`。不把 fallback change report 写成完整 PI)
|
||||
|
||||
## 焦点
|
||||
|
||||
1. **全量 backlog 覆盖 no-go**:P0–P7 已合入 `dev`;Playwright 双标签真浏览器 PASS 已合入([报告](../test-reports/2026-09-16-intent-plan-playwright-dual-tab-test-report.md))
|
||||
2. **运维**:nightly `DATA_DIR=dev` 已对齐;U8 PASS;FullNone product_fail 仍待收口
|
||||
3. **红线**:禁止整支 merge FAV;不默认升 `MULTI_INTENT_PLAN_TIER=full`;flag 默认 off;项目 143 只读
|
||||
1. **partial/deferred 全量收口**:[收口计划](../remediation/2026-09-16-partial-deferred-completion-plan.md)(W1–W7;§7 四项决策已确认 2026-09-17:D7 草案 ADR;W4 后可独立授权升 confirm 不升 full;REPLACE 默认不启用;FAV staging→artifact→publication、观察窗≥7 天、`FAV_DEGRADED_READ=false`);前序 P0–P7 与 Playwright 双标签 PASS 已合入
|
||||
2. **运维**:nightly `DATA_DIR=dev` 已对齐;U8 PASS;FullNone product_fail 仍待收口(并入收口计划 W1)
|
||||
3. **红线**:禁止整支 merge FAV;不默认升 `MULTI_INTENT_PLAN_TIER=full`(升 `confirm` 须 W4 闭环后独立授权);`SEMANTIC_SUMMARY_REPLACE` 不随 W2 开启;FAV live 顺序 staging→artifact→publication、每级观察窗证据驱动(下限 ≥7 天)、`FAV_DEGRADED_READ=false`;flag 默认 off;项目 143 只读
|
||||
|
||||
## 并行认领
|
||||
|
||||
| owner | task | branch | worktree | mutex | status |
|
||||
|-------|------|--------|----------|-------|--------|
|
||||
| Cline | 2026-09-16-partial-deferred-completion | docs/partial-deferred-completion-plan | - | architecture-docs | in_progress |
|
||||
| Cursor | 2026-09-16-intent-plan-playwright-dual-tab | feature/intent-plan-cards-playwright | .worktrees/feature-intent-plan-cards-playwright | web | done |
|
||||
| Cursor | 2026-09-16-full-backlog-override | docs/override-nogo-full-backlog | - | architecture-docs | done |
|
||||
| Cursor | 2026-09-16-gitea-nightly-docker-datadir | fix/gitea-nightly-docker-datadir | - | ci | done |
|
||||
@@ -108,7 +109,7 @@
|
||||
|
||||
| holder | phase | since | scope | queue |
|
||||
|--------|-------|-------|-------|-------|
|
||||
| - | idle | - | - | - |
|
||||
| Cursor | merging | 2026-09-17 | merge docs/partial-deferred-completion-plan → dev;随后 W1 FullNone | - |
|
||||
|
||||
**phase**: `idle` | `merging` | `smoke` | `e2e`
|
||||
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
---
|
||||
title: "partial/deferred 全量收口总控"
|
||||
status: in_progress
|
||||
created: 2026-09-16
|
||||
updated: 2026-09-17
|
||||
owner: Cline
|
||||
branch: docs/partial-deferred-completion-plan
|
||||
worktree: "-"
|
||||
mutex: architecture-docs
|
||||
---
|
||||
|
||||
# partial/deferred 全量收口总控
|
||||
|
||||
## 目标
|
||||
|
||||
按 [收口计划](../../remediation/2026-09-16-partial-deferred-completion-plan.md) 把 FEATURE-MATRIX 6 行 `partial` + 1 行 `deferred` 推进到 `done`;全程保持模块独立解耦(端口 + 组合根 + PG 事件 + 契约门禁,不新增 RPC 层),变更影响面不跨模块扩散。
|
||||
|
||||
## 授权
|
||||
|
||||
用户 2026-09-16 要求已设计功能尽量推进 done,并确认通信机制与系统契约。
|
||||
用户 2026-09-17 确认收口计划 §7 四项决策(D7 草案数字、confirm 可独立授权、REPLACE 默认不启用、FAV 顺序与观察窗);见计划 §7.1–§7.4 与 [D7 ADR 草案](../../adr/2026-09-17-d7-chat-data-retention.md)。
|
||||
|
||||
## 步骤
|
||||
|
||||
1. [ ] W1 CI/E2E 收口(mutex `ci`;secret/runner 配置 + FullNone product_fail + green nightly)
|
||||
2. [ ] W2 PU6 语义摘要 D3(mutex `chat`;shadow + 真实 PI + R13 + 负例;**不要求** REPLACE)
|
||||
3. [ ] W3 PU7 PI change-report 叙事(mutex `docgov`;开 flag + 真实 PI + fallback 负例 + UI 区分)
|
||||
4. [ ] W4 PU8 U9–U12(mutex `intent-plan`;逐 action 独立 flag,U9→U12 顺序;升 confirm 另开独立授权,不升 full)
|
||||
5. [ ] W5 纯软件自举(mutex `workflow-design`;SWBOOT-10 非 stub + 真实 PI + UI 二次验收)
|
||||
6. [ ] W6 FAV(mutex `events`;subscriber 审计 → shadow → live staging→artifact→publication;每级观察窗 ≥7 天;`FAV_DEGRADED_READ=false`;禁止整支 merge)
|
||||
7. [ ] W7 D7 数据治理(mutex `chat`,排在 W2 后;盘点 → 按 ADR 口径整改;合规签字前数字 `pending-compliance-signoff`;违规升 gap-matrix)
|
||||
8. [ ] 逐行升 done(保留 lineage)+ CURRENT / 契约状态同步
|
||||
9. [x] §7 四项开放问题决策落盘(2026-09-17)
|
||||
|
||||
## 验收标准
|
||||
|
||||
- [ ] 各波独立 short-term / feature 分支 / test-report / 回滚点(占用对应 mutex)
|
||||
- [ ] 计划 DoD 全勾(见 remediation 计划 §8;§7 四项决策项已勾)
|
||||
- [ ] `production_ready` 与 B1–B4 门禁零回归
|
||||
|
||||
## 相关链接
|
||||
|
||||
- Plan: [../../remediation/2026-09-16-partial-deferred-completion-plan.md](../../remediation/2026-09-16-partial-deferred-completion-plan.md)
|
||||
- D7 ADR 草案: [../../adr/2026-09-17-d7-chat-data-retention.md](../../adr/2026-09-17-d7-chat-data-retention.md)
|
||||
- 矩阵: [../../status/FEATURE-MATRIX.md](../../status/FEATURE-MATRIX.md)
|
||||
- 上位: [2026-09-16-full-backlog-override.md](./2026-09-16-full-backlog-override.md)(P0–P7 已完成,本总控承接其收口阶段)
|
||||
@@ -0,0 +1,226 @@
|
||||
---
|
||||
title: "FEATURE-MATRIX partial/deferred 全量收口计划"
|
||||
status: in_progress
|
||||
created: 2026-09-16
|
||||
updated: 2026-09-17
|
||||
type: refactor
|
||||
owner: Cline
|
||||
branch: docs/partial-deferred-completion-plan
|
||||
mutex: architecture-docs
|
||||
---
|
||||
|
||||
# FEATURE-MATRIX partial/deferred 全量收口计划
|
||||
|
||||
## 1. 背景
|
||||
|
||||
- **用户授权(2026-09-16)**:已设计的功能与特性尽量推进到 `done`,不停留在 `partial`/`deferred`;保持功能、模块的独立与解耦;确认模块间通信机制;建立系统契约,保证新功能添加、已有功能修改的影响面收敛在所属模块,不扩散到其他模块。
|
||||
- **收口对象**:[FEATURE-MATRIX](../status/FEATURE-MATRIX.md) 中 6 行 `partial` + 1 行 `deferred`(见 §3 总表)。
|
||||
- **上位约束**:`production_ready=yes` 与发布门禁 B1–B4 已签。本计划是**能力成熟度收口**,与发布门禁正交;`production_ready` 只由 [gap-matrix](./gap-matrix.md) 决定,本计划不得反向触碰已签门禁。
|
||||
- **通信机制结论先行**:本系统为模块化单体,模块间通信**不采用、也不应改成通用 IPC/RPC**;已确认的跨进程边界全部走 HTTP 与 PG 持久事件。详见 §2。
|
||||
|
||||
## 2. 通信与解耦机制确认(IPC/RPC 问题的回答)
|
||||
|
||||
**结论:系统是模块化单体([ADR 2026-09-14-modular-monolith-decoupling](../adr/2026-09-14-modular-monolith-decoupling.md)),模块级隔离靠「消费者窄端口 + 组合根唯一装配 + 契约门禁」实现,而非 RPC 层。**已确认的通信边界共四类:
|
||||
|
||||
| 边界 | 机制 | 状态 |
|
||||
|---|---|---|
|
||||
| Web ↔ server | `/api/v1/*` HTTP + SSE(typed error envelope) | 已运行 |
|
||||
| Go server ↔ PI Agent Runner | HTTP + Bearer(typed-result-v1) | 已运行 |
|
||||
| 单体内模块 | 消费者窄端口 + `internal/app` 组合根唯一装配 | 已运行 |
|
||||
| 跨进程领域事件 | PG outbox(envelope/delivery)+ `cmd/events` 独立 worker 原子 lease 消费 | 已运行(notify/advance/projection live) |
|
||||
|
||||
**为什么不把单体内端口改成 RPC**(依据 [IPC/RPC 现状评估](../ops/research/2026-09-15-module-decoupling-ipc-assessment.md)):RPC 会增加序列化、延迟、部分失败与运维成本,却不消除 locator、授权、幂等和事件消费缺口;真正的进程级解耦已由 `cmd/events` worker(经 PG lease,而非服务间直连)与两条 HTTP 边界承担。用户要求的「通过 IPC/RPC 通信」在本系统的正确落法即:**跨进程一律走既有 HTTP / PG 事件边界;模块级独立解耦靠端口与契约门禁**。若未来确需新增跨进程边界,须先立 ADR,沿用「HTTP 或 PG 事件」两种既有模式。
|
||||
|
||||
### 2.1 系统契约体系(防扩散的既存机制,本计划全部沿用)
|
||||
|
||||
| 契约 | 载体 | 强制方式 |
|
||||
|---|---|---|
|
||||
| Import / SQL write / path / event 边界 | `.doc/system-design/module-boundaries.yaml` | `internal/archtest` + `./scripts/arch-check.sh --mode block`;import/event 违规零容忍(block_kinds) |
|
||||
| 领域事件 schema 与生产者/消费者 | `events.Envelope` schema 1 + YAML allowlist ↔ `StaticContracts` parity | 构建期 parity 门禁;未登记事件不得投递 |
|
||||
| 任务幂等与产物 | `taskrun.RunManifest` canonical JSON + SHA-256 + idempotency key | 服务端强制;异 digest 冲突 |
|
||||
| HTTP 错误语义 | typed error envelope(details allowlist + 脱敏) | 已合入(H1–H3) |
|
||||
| PI Runner 协议 | typed-result-v1 + handshake;typed 字段存在但无效 → fail closed | 已合入 |
|
||||
| 能力灰度 | 每能力独立 flag,默认 off / legacy / shadow | 各契约预注册晋级阈值 |
|
||||
| 并行认领互斥 | FEATURE-MATRIX `mutex` 列 → CURRENT 认领表 | 同一 mutex 同时仅一个 `in_progress` |
|
||||
|
||||
### 2.2 变更影响面收敛守则(每个波次必须遵守)
|
||||
|
||||
1. 新能力一律落在**深模块**(模式参考 `internal/app/intentflow`、`internal/doccontent`),禁止把实现聚集回 coordinator/bizdev。
|
||||
2. 模块间只允许三种交互:消费者拥有的窄端口、组合根装配、领域事件;**禁止新增跨模块 import**(arch-check block 兜底)。
|
||||
3. schema 变更只走 additive migration;旧版本兼容读取;每个放量有独立回滚点。
|
||||
4. 每个能力一个独立 flag;默认 off;晋级按预注册阈值(shadow → confirm → live/replace),禁止共用开关批量上线。
|
||||
5. 新增事件必须同时补 YAML allowlist 与 `StaticContracts` 并过 parity 门禁。
|
||||
6. 修改声明范围须保留 before/after lineage 与义务迁移(矩阵更新规则 4);禁止缩口径假完成。
|
||||
|
||||
## 3. 收口对象与关闭条件总表
|
||||
|
||||
| # | 行 | 当前 | 目标 done 的关闭条件(依据矩阵「剩余工作/关闭条件」列) | mutex |
|
||||
|---|---|---|---|---|
|
||||
| P1 | CI / E2E | partial | Actions secret/runner 环境配置完成 + FullNone product_fail 收口 + 一轮绿色 nightly receipt | `ci` |
|
||||
| P2 | 语义摘要(D3) | partial | `SEMANTIC_SUMMARY_SHADOW` 开启并取得真实 PI + R13 + 负例证据;(可选)`SEMANTIC_SUMMARY_REPLACE` 灰度 | `chat` |
|
||||
| P3 | PI change-report 叙事 | partial | `PI_CHANGE_REPORT_NARRATIVE` 开启 + 真实 PI 叙事 + fallback 全量负例 + UI narrative/事实字段区分 | `docgov` |
|
||||
| P4 | 多意图扩面(U9–U12) | partial | U9→U12 逐 action 独立 flag 证据闭环(真实 PI + 浏览器 + 负例);tier 升级评估 | `intent-plan` |
|
||||
| P5 | 纯软件项目自举 | partial | SWBOOT-10 非 stub 实现 + 真实 PI 全链路 + UI 二次验收 | `workflow-design` |
|
||||
| P6 | Final Artifact Vault(FAV) | partial | subscriber 独立审计 → shadow → live;崩溃/重启幂等;`FAV_DEGRADED_READ=false` 保持;**禁止整支 merge 保持** | `events` |
|
||||
| P7 | 对话数据治理(D7) | deferred | 数据分类盘点 → 留存/删除口径 → 库/备份/日志控制 → 敏感字段加密边界;**发现违规 → 立即升 gap-matrix blocker** | `chat` |
|
||||
|
||||
**并行度**:P1 与其余全部可并行;P3/P4/P5/P6 各自 mutex 互不冲突可并行;**P2 与 P7 共用 `chat` mutex,须串行(先 P2 后 P7)**。Playwright 双标签升 `confirm/full` 属 `intent-plan` 辅助任务(见 [2026-09-16-intent-plan-playwright-dual-tab](../ops/long-term/2026-09-16-intent-plan-playwright-dual-tab.md))。
|
||||
|
||||
## 4. 分波次计划
|
||||
|
||||
每波通用流程:从 `dev` 开独立分支(`feature/<slug>`)→ CURRENT 登记 → worktree 编码与单测 → 占集成槽合并 `dev` + 冒烟(`go vet` / `go test -short` / `env-service.sh dev rebuild` + `/health`)→ test-report 归档 → FEATURE-MATRIX 行升 `done`(保留 lineage)。
|
||||
|
||||
### W1(mutex `ci`):CI / E2E → done
|
||||
|
||||
**现状**:nightly 入口 + 失败分类 + promotion-receipt 门禁已交付;TempDir race 已修;PR CI 不依赖外部模型。剩余:环境配置与 FullNone product_fail。
|
||||
|
||||
1. Actions secret 录入:`TEST_DATABASE_URL`、nightly 专用 `RUN_PI_E2E` / `RUNNER_AUTH_TOKEN`(隔离合成数据);runner 注册与自检。
|
||||
2. FullNone product_fail 收口:按 infra/product 分栏定位,修复产品失败或确认分类归属;nightly `DATA_DIR=dev` 保持对齐。
|
||||
3. 跑一轮完整 nightly → green receipt 归档。
|
||||
4. 矩阵行升 `done`(证据:[Wave2B](../test-reports/2026-09-16-wave2b-nightly-promotion-receipt-test-report.md)、[Wave2C](../test-reports/2026-09-16-wave2c-same-image-digest-test-report.md) + 新 green receipt)。
|
||||
|
||||
**回滚**:纯环境/CI 配置,不影响业务行为;secret 配置错误仅影响 nightly,不挡 PR CI。
|
||||
|
||||
### W2(mutex `chat`):PU6 语义摘要 D3 → done
|
||||
|
||||
1. dev 环境 `SEMANTIC_SUMMARY_SHADOW=on`(test 环境随后),收集 shadow 对账:authorized view only、无工具权限摘要器、R13 出站门。
|
||||
2. 真实 PI(MiniMax)摘要证据:freshness 标注、可解释 fallback。
|
||||
3. 负例矩阵:撤权消息不入摘要;injection 不能改权限;失败保留旧摘要/deterministic。
|
||||
4. 达预注册阈值后 **默认不启用** `SEMANTIC_SUMMARY_REPLACE`(见 §7.3);若另开授权再灰度(独立回滚:关 flag 回 deterministic)。
|
||||
5. 矩阵行升 `done`;[契约](../ops/long-term/2026-09-16-pu6-semantic-summary-contract.md)状态更新。
|
||||
|
||||
**路径**:`internal/ctxmgr/summarizer.go`、`internal/app/chatflow/`、`internal/server/chat_digest_api.go`、web 摘要组件。
|
||||
|
||||
### W3(mutex `docgov`):PU7 PI change-report 叙事 → done
|
||||
|
||||
1. dev `PI_CHANGE_REPORT_NARRATIVE=on`:真实 PI 只读消费 immutable diff+lineage+risk floor。
|
||||
2. typed schema `change_report_narrative_v1` + input digest 绑定;任意 schema/超时/注入 → 全量 fallback(负例必测)。
|
||||
3. UI 验收:narrative 与事实字段明确区分;禁止覆盖服务端风险/审批结论。
|
||||
4. 矩阵行升 `done`(deterministic fallback 仍是本行显式声明行为)。
|
||||
|
||||
**回滚**:关 flag,仅 deterministic fallback,无第二份 candidate。契约:[pu7](../ops/long-term/2026-09-16-pu7-pi-narrative-contract.md)。
|
||||
|
||||
### W4(mutex `intent-plan`):PU8 U9–U12 → done
|
||||
|
||||
**顺序 U9→U10→U11→U12,逐 action 独立 flag,禁止共用开关批量上线:**
|
||||
|
||||
1. U9 `MULTI_INTENT_U9_SEGMENT`:真实 LLM 分段 shadow→confirm;规则无法判断时才出 proposal;stub fail-closed 保持。
|
||||
2. U10 `MULTI_INTENT_U10_MUTATE`:dry-run + expected revision 门禁;未确认/越权/stale revision/重复提交 → 零越界副作用。
|
||||
3. U11(docgov)、U12(workflow/run-control):按各自契约同模式推进。
|
||||
4. 每个 action:真实 PI + Playwright 双标签 + 负例;独立报告与回滚点。
|
||||
5. 全部闭环后:评估 `MULTI_INTENT_PLAN_TIER` legacy→confirm(**独立任务、独立授权**,默认不升 full;full 另拆行/backlog)。
|
||||
6. 矩阵行升 `done`(声明范围 = 四个 action 的 flag 证据闭环;tier=full 不在本行关闭条件内)。
|
||||
|
||||
契约:[u9](../ops/long-term/2026-09-16-pu8-u9-segment-proposal-contract.md) / [u10](../ops/long-term/2026-09-16-pu8-u10-mutate-contract.md) / u11 / u12。
|
||||
|
||||
### W5(mutex `workflow-design`):纯软件项目自举 → done
|
||||
|
||||
1. SWBOOT-10 从 stub 收口为真实现(按 [short-term](../ops/short-term/2026-09-16-software-project-bootstrap.md) 与 [ADR keys](../adr/2026-09-16-software-project-bootstrap-keys.md))。
|
||||
2. 真实 PI 全链路:`software_bootstrap` 工作流 创建→规划→交付(首期 docs_only / read_only_repo)。
|
||||
3. Playwright UI 二次验收:服务端目录驱动的创建向导(停止前端固定克隆 7 份模板)、单人项目「无独立评审」显式标记。
|
||||
4. 矩阵行升 `done`(范围沿用现状调研的复用/新增边界,不改医疗三工作流语义)。
|
||||
|
||||
### W6(mutex `events`):FAV → done
|
||||
|
||||
1. subscriber 独立审计(沿用 U7 增量路径,**继续禁止整支 merge FAV 分支**)。
|
||||
2. publisher/consumer flag **shadow**:只计算 intended outcome,不执行业务副作用。
|
||||
3. shadow 阈值达标后按 §7.4 逐 consumer **live**(顺序 staging → artifact → publication;每级观察窗 ≥7 天或证据阈值):幂等(唯一键/no-replace);崩溃/重启重放无重复可见结果。
|
||||
4. `FAV_DEGRADED_READ=false` 保持默认;degraded 读取仅在显式开启时可用并有告警(不随 live 开启)。
|
||||
5. 矩阵行升 `done`(声明范围:不可变终态制品库闭环)。
|
||||
|
||||
### W7(mutex `chat`,排在 W2 后):D7 对话数据治理 → done
|
||||
|
||||
**前提**:留存/删除口径见 §7.1 与 [D7 ADR 草案](../adr/2026-09-17-d7-chat-data-retention.md)(数字 `pending-compliance-signoff`;合规签字前禁止按建议数字执行物理删除/备份清除)。
|
||||
|
||||
1. 数据分类盘点(产出 audit 文档):chat_sessions/messages、KB、日志、备份、event 表中的敏感字段清单与流转路径。
|
||||
2. 合规签字或改数后:更新 ADR 状态;库/备份/日志控制盘点。
|
||||
3. 差距整改:日志/dead-letter/reconciliation 只存 ID、digest、typed error code 与 allowlist 摘要(Track E 红线沿用)。
|
||||
4. 敏感字段加密边界决策与落地(首期默认不做字段级加密,见 §7.1)。
|
||||
5. **若盘点确认基线违规 → 立即写 gap-matrix blocker,本行 done 让位于整改**;无违规且口径落地 → 矩阵行升 `done`。
|
||||
|
||||
## 5. 测试方案(层级矩阵)
|
||||
|
||||
| 层级 | 适用波次 | 内容 | 通过标准 |
|
||||
|---|---|---|---|
|
||||
| Arch / contract | 全部 | `./scripts/arch-check.sh --mode block`;YAML ↔ `StaticContracts` parity | import/event 违规 = 0;无未登记事件 |
|
||||
| 单测 | 全部 | `go vet ./...` + `go test -short ./...`;相关包 `-race` | 全绿;无 data race |
|
||||
| PG 集成 | W2/W4/W5/W6/W7 | `TEST_DATABASE_URL` 下集成 + additive migration/回滚演练 | 持久化、恢复、旧版本兼容读取 |
|
||||
| 真实 PI | W2/W3/W4/W5 | 真实 PI Agent Runner + MiniMax;记录 model/protocol/typed result;R13 数据安全门(最小出站、租户绑定、脱敏、凭证最小权限、泄漏负例) | 无 stub 冒充;无敏感出站 |
|
||||
| 浏览器 | W2/W3/W4/W5 | Playwright:真实登录、双用户/职责负例、刷新/重登/重启 | 页面结果与 PG/账本一致 |
|
||||
| 部署 | 全部运行时波次 | 占集成槽 rebuild、`/health`、promotion receipt(same digest 晋升) | 可追到同一 commit + digest |
|
||||
| 回滚 | W2–W6 | disable/drain、旧版本兼容读取、无双 writer、孤儿状态检查 | 上一版本恢复且无孤儿状态 |
|
||||
|
||||
每波验收报告归档 `.doc/test-reports/`(遵循 test-reports-standard),回链本计划与对应契约;矩阵状态提升必须同时核对源码、迁移、artifact、API/runtime 与测试层级(上位计划 R5–R7)。
|
||||
|
||||
## 6. 风险与停走门
|
||||
|
||||
| 风险 | 停走门 |
|
||||
|---|---|
|
||||
| 授权旁路 / 跨用户泄漏 / 双 writer / main 或 prod fail-open | 任一波发现 → 停止全部扩面,写 gap-matrix |
|
||||
| B1–B4 门禁回归 | 每波合 dev 冒烟全绿;回归即停 |
|
||||
| stub / SKIP / deterministic fallback 冒充真实 PI | 验收报告必须记录真实 runner/model;SKIP 不得写成 PASS |
|
||||
| flag 批量上线 / 共用开关 | 一个能力一个 flag;违规合并打回 |
|
||||
| 缩小声明范围制造 done | 矩阵审查:before/after lineage 必须保留,义务迁移可追 |
|
||||
| 三环境隔离破坏 | 每波验证不跨环境读写;schema 迁移三环境同步(当前 47) |
|
||||
| FAV 整支 merge | 保持禁止;只走增量分支 + 独立审计 |
|
||||
|
||||
## 7. 已确认决策(原开放问题;2026-09-17 用户确认采纳建议默认)
|
||||
|
||||
> 决策冻结 ≠ 放量:不改生产默认 env / flag;各波仍按原 mutex 与独立授权推进。
|
||||
|
||||
### 7.1 D7 留存期限与删除口径(W7 前置)
|
||||
|
||||
**决策**:工程按下列草案落 ADR([2026-09-17-d7-chat-data-retention](../adr/2026-09-17-d7-chat-data-retention.md));数字标 `pending-compliance-signoff`,合规签字或改数后 W7 方可按口径整改。不得无限期停在 deferred。
|
||||
|
||||
| 数据类 | 留存(建议默认) | 删除路径 |
|
||||
|---|---|---|
|
||||
| 会话正文(chat messages) | 热库 **365 天**可配置;超期 soft-delete → 观察窗 → 物理清理 | 用户删除同路径;备份清除需二次批准 + 精确 delete manifest(R22) |
|
||||
| 派生文档 / 私密文档 | 与聊天**独立周期**;回收站 **30 天**后物理清理 | 删除 UI 必须说明「只删聊天 / 只删文档 / 两者」 |
|
||||
| 审计元数据(导出/治理审计) | **180 天** | 不可被普通用户删除覆盖 |
|
||||
| Agent trace / workspace 非终态 | 任务结束后 **30 天**;nightly 仅合成数据 | 禁止当长期事实源 |
|
||||
| 日志 / dead-letter / reconciliation | Track E:**只存 ID、digest、typed error code、allowlist 摘要** | 禁止存 payload/prompt/正文 |
|
||||
| FAV 终态制品 | `retention_class` + legal hold + delete ledger | 与 D7 聊天口径解耦 |
|
||||
|
||||
**加密边界**:首期「敏感字段盘点 + 传输/备份访问控制」;不默认上字段级加密。
|
||||
**违规门**:盘点确认基线违规 → 立即写 gap-matrix;本行 done 让位于整改。
|
||||
|
||||
### 7.2 `MULTI_INTENT_PLAN_TIER` 是否升 `confirm`
|
||||
|
||||
**决策**:W4(U9→U12)证据闭环后,**可启动独立授权任务**将默认从 `legacy` 升至 `confirm`;**永不默认升 `full`**(`full` 另拆矩阵行/backlog,按 action 逐项加入)。
|
||||
|
||||
升 `confirm` 硬前置(全部满足):
|
||||
|
||||
1. U9→U12 各自独立 flag 证据闭环(真实 PI + Playwright 双标签 + 负例)
|
||||
2. 停走指标全 0:未确认/越权副作用、安全红线绕过、hard-negative 自动执行、重复确认双跑、refresh/restart 权威差
|
||||
3. 独立 short-term + 用户显式授权(合入功能代码不得顺带改默认 env)
|
||||
4. 放量:`dev` 观察 → `test` → **不自动**推 `main`
|
||||
|
||||
### 7.3 `SEMANTIC_SUMMARY_REPLACE` 是否启用
|
||||
|
||||
**决策**:**默认不启用**。W2 升 `done` 只要求 `SEMANTIC_SUMMARY_SHADOW` + 真实 PI + R13 + 负例;**不依赖** REPLACE。REPLACE 为 W2 之后可选后置任务,须另开授权 + 接线 + fail-closed 灰度(`dev`→`test`;关 flag 回 deterministic)。
|
||||
|
||||
### 7.4 FAV live 消费者上线顺序与观察窗口
|
||||
|
||||
**决策**:固定顺序 **staging → artifact → publication**;每步 shadow → drain → live;观察窗证据驱动(每级下限 **≥7 天**或 ≥N 终态样本,取更严);`FAV_DEGRADED_READ` **全程保持 false**(不随 live 开启)。禁止整支 merge FAV;每 consumer 独立 flag;一窗失败则停在该级并回 shadow/off。
|
||||
|
||||
## 8. 验收标准(Definition of Done)
|
||||
|
||||
- [ ] W1–W6 各波 test-report 归档并回链;对应 FEATURE-MATRIX 行升 `done`(保留 lineage)。
|
||||
- [ ] W7 数据分类盘点与口径文档落地;或违规升级 gap-matrix(该行转为整改跟踪)。
|
||||
- [ ] 全程 `production_ready` 不翻转;gap-matrix 仅在真实 blocker 出现/关闭时变化。
|
||||
- [ ] `arch-check --mode block` 全程通过;无新增跨模块 import、无未登记事件。
|
||||
- [ ] 所有新 flag 保持独立且默认 off/legacy/shadow;每个放量有独立回滚点。
|
||||
- [ ] B1–B4 门禁零回归(每波合 dev 冒烟全绿)。
|
||||
- [x] 开放问题 §7 的四项决策均已获用户确认(2026-09-17;见 §7.1–§7.4)。
|
||||
|
||||
## 9. 相关链接
|
||||
|
||||
- 矩阵 SSOT: [../status/FEATURE-MATRIX.md](../status/FEATURE-MATRIX.md)
|
||||
- 连续性审计: [../audit/2026-09-16-feature-matrix-production-readiness-audit.md](../audit/2026-09-16-feature-matrix-production-readiness-audit.md)
|
||||
- 上位计划: [./2026-09-16-feature-matrix-production-readiness-plan.md](./2026-09-16-feature-matrix-production-readiness-plan.md)
|
||||
- 发布门禁: [./gap-matrix.md](./gap-matrix.md)
|
||||
- D7 留存 ADR 草案: [../adr/2026-09-17-d7-chat-data-retention.md](../adr/2026-09-17-d7-chat-data-retention.md)
|
||||
- IPC/RPC 调研: [../ops/research/2026-09-15-module-decoupling-ipc-assessment.md](../ops/research/2026-09-15-module-decoupling-ipc-assessment.md)
|
||||
- 模块解耦 Phase 2: [./2026-09-15-module-decoupling-ipc-phase2-remediation-plan.md](./2026-09-15-module-decoupling-ipc-phase2-remediation-plan.md)
|
||||
- 契约: `../ops/long-term/2026-09-16-pu6-*` · `pu7-*` · `pu8-u9…u12`
|
||||
- 总控 short-term: [../ops/short-term/2026-09-16-partial-deferred-completion.md](../ops/short-term/2026-09-16-partial-deferred-completion.md)
|
||||
@@ -3,6 +3,7 @@
|
||||
| 文档 | 说明 |
|
||||
|------|------|
|
||||
| [gap-matrix.md](./gap-matrix.md) | 发布缺口 SSOT |
|
||||
| [2026-09-16-partial-deferred-completion-plan.md](./2026-09-16-partial-deferred-completion-plan.md) | FEATURE-MATRIX 6 partial + 1 deferred 全量收口:通信机制确认(模块化单体,不新增 RPC 层)、7 项关闭条件、W1–W7 波次;§7 四项决策已确认(2026-09-17) |
|
||||
| [2026-09-16-feature-matrix-production-readiness-plan.md](./2026-09-16-feature-matrix-production-readiness-plan.md) | 能力状态与发布门禁解耦、证据校准、剩余 partial 收口和 production-ready 防回退计划([审计](../audit/2026-09-16-feature-matrix-production-readiness-audit.md)) |
|
||||
| [2026-09-14-module-decoupling-refactor-plan.md](./2026-09-14-module-decoupling-refactor-plan.md) | 纵向绞杀、UnitOfWork、高并发互斥、可靠事件、逐动作授权、FAV、迁移与恢复的详细重构计划 |
|
||||
| [2026-09-15-module-decoupling-ipc-phase2-remediation-plan.md](./2026-09-15-module-decoupling-ipc-phase2-remediation-plan.md) | Phase 2 修订版:Track E 持久事件交付先行;Track S 结构解耦独立 go/no-go;HTTP 与 PI 协议另立 remediation([审阅](../audit/2026-09-15-module-decoupling-phase2-plan-review.md);[调研](../ops/research/2026-09-15-module-decoupling-ipc-assessment.md)) |
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
| 多意图扩面(U9–U12) | U9 LLM 分段实验;U10 mutate;U11 docgov;U12 workflow/run-control | partial | deferred_enhancement | [设计](../system-design/2026-09-15-multi-intent-hitl-plan.md);[go/no-go GO](../ops/research/2026-09-16-wave3-pu6-pu8-go-no-go.md);[总控](../ops/short-term/2026-09-16-full-backlog-override.md);[报告](../test-reports/2026-09-16-pu8-u9-u12-flags-test-report.md) | 独立 flag 脚手架已合 `dev`;默认 legacy tier;未升 `confirm/full` | `intent-plan` |
|
||||
| 对话 / ctxmgr baseline | 多轮上下文、刷新/重登/重启恢复、授权同集正文与计数、U10 端口化停止扩面 | done | non_blocker | [multi-turn](../system-design/multi-turn-dialogue/);[刷新审计](../audit/2026-09-13-chat-history-refresh-disappears.md);[U10](../test-reports/2026-09-15-chatlog-contextasm-u10-test-report.md);[门禁 B3](../test-reports/2026-09-16-chat-refresh-gate-test-report.md)(项目 6359) | **before**:语义摘要误标 D5 混入 → **after**:摘要迁「语义摘要 D3」;D7 数据治理独立。U10 停止扩面 | `chat` |
|
||||
| 语义摘要(D3) | 授权后可见集合上的语义摘要;shadow → 可选替换 deterministic | partial | deferred_enhancement | [chat-agent-p6-backlog](../backlog/chat-agent-p6-backlog.md);[go/no-go GO](../ops/research/2026-09-16-wave3-pu6-pu8-go-no-go.md);[pu6](../ops/long-term/2026-09-16-pu6-semantic-summary-contract.md);[报告](../test-reports/2026-09-16-pu6-semantic-summary-test-report.md) | 已合 `dev`;`SEMANTIC_SUMMARY_SHADOW` 默认 off;开 flag 需真实 PI 证据 | `chat` |
|
||||
| 对话数据治理(D7) | 留存/删除口径、库·备份·日志控制、敏感字段加密边界 | deferred | deferred_enhancement(违规则升 blocker) | [计划](../remediation/2026-09-16-feature-matrix-production-readiness-plan.md) Scope Boundaries | 先数据分类与现状盘点;确认当前基线违规 → 立即写 gap-matrix | `chat` |
|
||||
| 对话数据治理(D7) | 留存/删除口径、库·备份·日志控制、敏感字段加密边界 | deferred | deferred_enhancement(违规则升 blocker) | [计划](../remediation/2026-09-16-feature-matrix-production-readiness-plan.md) Scope Boundaries;[收口 §7.1](../remediation/2026-09-16-partial-deferred-completion-plan.md);[D7 ADR 草案](../adr/2026-09-17-d7-chat-data-retention.md) | 口径草案已确认(365/180/30;`pending-compliance-signoff`);先盘点;确认违规 → 立即写 gap-matrix | `chat` |
|
||||
| 智能体小队 | 角色-任务-工作区-黑板 | done | non_blocker | [agent-squad](../system-design/agent-squad/);[test 2026-09-07](../test-reports/2026-09-07-dynamic-squad-planning-test-report.md) | 非关键步骤降级(A5/A6)属 backlog | `squad` |
|
||||
| 工作流治理 | 三正式工作流、设置页/DutyMode、动作级鉴权、真实 PI 三工作流 E2E、full/none 混合长链 | done | non_blocker | [三工作流整改](../remediation/2026-09-12-three-workflows-strict-governance-remediation.md);[409/职责](../test-reports/2026-09-14-workflow-plan-409-frozen-and-optional-duties-test-report.md);[鉴权](../test-reports/2026-09-14-governance-action-level-authz-test-report.md);[PI E2E](../test-reports/2026-09-16-pi-three-workflow-e2e-test-report.md);[Wave2 full/none](../test-reports/2026-09-16-wave2-real-pi-evidence-test-report.md) | full 跨用户审批 + none 免审批不阻塞已签。纯软件自举仍独立 planned | `workflow` |
|
||||
| 纯软件项目自举 | 软件项目创建、Bootstrap、Delivery、受控工程交接 | partial | deferred_enhancement(明确不挡首发) | [设计](../system-design/2026-09-14-software-project-bootstrap-workflow.md);[ADR](../adr/2026-09-16-software-project-bootstrap-keys.md);[L1 报告](../test-reports/2026-09-16-software-project-bootstrap-test-report.md);[总控](../ops/short-term/2026-09-16-full-backlog-override.md) | SWBOOT-00…09 已合 `dev`;SWBOOT-10 stub only;真实 PI/UI 仍待二次验收 | `workflow-design` |
|
||||
|
||||
Reference in New Issue
Block a user