Record recommended approaches, risks, acceptance, and product/env blockers for audit-remainder design items; cross-link F5/I8 to lowrisk.
6.0 KiB
6.0 KiB
title, task_id, status, created, updated, owner, task_type, task_tier, policy_revision, branch, worktree, base_dev_sha, write_scope, allowed_environments, head_sha, mutex, review_state, integration_state, deployment, cleanup, cleanup_owner, cleanup_trigger, remote_sync
| title | task_id | status | created | updated | owner | task_type | task_tier | policy_revision | branch | worktree | base_dev_sha | write_scope | allowed_environments | head_sha | mutex | review_state | integration_state | deployment | cleanup | cleanup_owner | cleanup_trigger | remote_sync | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| T20 设计项决策批(W4) | t20-design-items-2026-09-22 | done | 2026-09-22 | 2026-09-22 | Cursor | research | small | AGENTS.md + 2026-09-21-policy-registry @ base_dev_sha | feature/t20-design-items-2026-09-22 | .worktrees/t20-design-items-2026-09-22 | 364ed7f1a3 |
|
t20-design-docs | pending | pending | not_required | pending | 独立集成/维护执行者 | tip 为 origin/dev 祖先且无进程占用后复查 remove | not_requested |
T20 设计项决策批(W4)
设计正文(taxonomy:system-design/):../../system-design/2026-09-22-t20-hardening-design.md。
用户目标与授权
- 用户目标:对 audit-remainder T20 增补区 中需设计的项产出推荐做法 / 风险 / 验收 / 是否卡产品或鉴权,非完整实现(除非 trivial 且安全)。
- 交付终点:本任务文 + 系统设计决策文;本 worktree 提交;不 push;不合入;不改业务代码。
- 明确禁止:实现 B1/B3/B4/B5/B7/B11/F1/F4/F7/F8/I1/I4/I6;不操作共享环境;不 push;I6 不写宿主调度。
- I6 仅文档化;实施需环境授权。
范围与非目标
| ID | 项 | 本批产物 |
|---|---|---|
| B1 | XFF trusted proxy | 设计决策 |
| B3 | docgov/docrevision 锁拆分 | 设计决策 |
| B4 | statement_timeout 分级 | 设计决策 |
| B5 | chat/turn 原子性(已有补偿) | 设计决策(不重做补偿) |
| B7 | graceful shutdown vs AGENT_TIMEOUT | 设计决策 |
| B11 | GET→POST EventSource | 设计决策 |
| F1 | useChatWindow generation 所有权 | 设计决策 |
| F4 | adminResetPassword 产品选择 | 设计决策(卡产品) |
| F7 | HttpOnly cookie | 设计决策(卡鉴权专项) |
| F8 | poll dedupe + App.tsx stats generation | 设计决策 |
| I1 | non-root + limits | 设计决策 |
| I4 | init mount 统一 | 设计决策 |
| I6 | backup 调度 | 仅文档;卡环境授权 |
不重复(已在低风险批)
| ID | 状态 | 交叉链接 |
|---|---|---|
| F5 ErrorBoundary 分栏 | 已在 W2 实现(AppShell 聊天栏/文档栏各包一层) |
t20-lowrisk-hardening · worktree .worktrees/t20-lowrisk-hardening-2026-09-22 |
| I8 short 跳过外网 docker | 已在 W2 实现(testing.Short() Skip) |
同上 |
本批不再设计或实现 F5/I8。
决策一览
| ID | 推荐 | 卡产品/鉴权? | 实施前置 |
|---|---|---|---|
| B1 | 默认忽略 XFF;仅 TRUSTED_PROXY_CIDRS 命中 RemoteAddr 时按 hops 解析 |
否(运维配置) | 配置项 + 负例测试 |
| B3 | 锁外 hydrate;按 doc_id 分锁;DB 写用短临界区 + fencing |
否 | 竞态基准 + 回归 |
| B4 | 主池默认 statement_timeout=30s;长任务 SET LOCAL 抬高 |
否 | 池工厂统一入口 |
| B5 | 保留 FailChatTurn 补偿;补齐可观测与孤儿清理;同事务列为可选后续 |
否 | 指标/扫描即可先落地 |
| B7 | 独立 SHUTDOWN_DRAIN(默认可对齐 AGENT_TIMEOUT);停机拒新任务;compose grace 对齐 |
否(运维调参) | compose/env 对齐 |
| B11 | 生产仅 POST;GET 默认 405 且永不读 message query |
否 | 前端已 POST;后端收紧 |
| F1 | 所有窗口写路径共用 generation + abort;过期响应禁 setState/写缓存 | 否 | 单测扩面 |
| F4 | 隐藏按钮直至真实 API;或产品选「服务端生成临时口令 + 强制改密」 | 是(产品) | 产品选路径后再编码 |
| F7 | 专项:Set-Cookie HttpOnly + SameSite + 全局 401 清会话 |
是(鉴权专项) | 独立授权/ADR |
| F8 | 统一 in-flight Map 按 key 去重;stats 绑 generation;blob revoke | 否 | 前端小改 |
| I1 | Dockerfile USER + compose mem/cpus;先非 privileged |
否(运维;部署共享环境另授权) | 卷权限验证 |
| I4 | 三环境统一挂 extensions_init.sql;表只走 goose |
否 | 全新卷冒烟 |
| I6 | systemd/cron 调 backup-system-db.sh;RPO 60m |
是(环境授权) | 仅文档;不实施 |
详细论证见 2026-09-22-t20-hardening-design.md。
步骤与验收
- 核对代码与 audit-remainder 条目
- 交叉确认 F5/I8 在 lowrisk worktree
- 写入 short-term + system-design;INDEX/README 回链
- Conventional Commit(不 push)
| 范围 | 命令 | 预期 | 实际 |
|---|---|---|---|
| 文档 | short-term + system-design + 索引 | 可审、taxonomy 正确;无业务行为变更 | 本分支提交 |
收口与交接
review_state=pending;integration_state=pending;deployment=not_required;remote_sync=not_requested。- 实施跟进:可并行小改(B1/B11/F1/F8、F4-A 隐藏按钮)与需决策项(F4-B/F7/I6)拆批;B3/B4/B7/I1/I4 需回归与环境冒烟。
- 待用户决策:F4 选隐藏 vs 真实临时口令 API;F7 鉴权专项授权;I6 目标环境与备份路径授权。
- cleanup:合入后由独立维护者复查 remove。
相关链接
- 清单:../long-term/2026-09-19-audit-remainder.md
- 审计:../../audit/2026-09-20-system-triage-audit.md
- 设计正文:../../system-design/2026-09-22-t20-hardening-design.md
- 低风险批(F5/I8):./2026-09-22-t20-lowrisk-hardening.md(合入前见 worktree
t20-lowrisk-hardening-2026-09-22)