Files
Agent-System/.doc/ops/long-term/2026-09-19-audit-remainder.md
T
weichenandCursor 26d14b534b docs(test): record schema 53 rebuild and login fanout on dev
The rebuilt workbench issues one member request and one session list request. Slow-network samples improved, but twenty-run percentiles and the restart matrix are still open.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-19 13:22:38 +00:00

7.0 KiB
Raw Blame History

title, status, created, updated
title status created updated
2026-09-19 审计剩余项(medium/low,不挡已合入批 1–4) planned 2026-09-19 2026-09-19

2026-09-19 审计剩余项

动机

系统深度体检 的 C1–C4 与 H1–H10 已按四批合入 dev。下列 medium/low 仍真实存在,但不进入本轮发布回退。

成功标准

  • 每条有独立 short-term、负例测试或明确关闭理由后再标 done
  • 不把本清单自动写成 gap-matrix blocker

依赖

  • 批 1–4 已在 dev:844f757、08f4e0b、a2a49a6、d73bc79

暂不启动原因

本轮范围只到 critical + high。下列项要么是加固、要么需要产品/合规决策,要么改动面大于收益。

进展(2026-09-19,fix/audit-remainder-closeout)

ID 结果
M1 done。nosniff / DENY / Referrer-Policy / 本站 CSP。TestP0_SecurityHeaders
M2 done。TTL 钳到人工 15 分钟、小队 30 分钟;人工租约前 CheckHumanCanEdit。TestAcquireLeaseClampsHumanTTL
M3 done(本项可落地部分)。低置信度才做关键词改道;称呼取用户名。高置信度意图层改造不在本项把模板整段搬走
M4 done。parseDecimalID 拒绝 u_sess_*。TestParseDecimalIDRejectsSessionTokens
M5 done。Server.Start 不再二次启动并吞错。main 仍调用 Runtime.Start,该方法本身已幂等
M6 done(上限)。硬上限 4096,淘汰最久未访问。会话 id 仍由客户端提供,因为历史恢复按该 id 查找;改成只接受服务端签发会打断现有对话协议
M9 done。dev compose 不再声明 SEMANTIC_SUMMARY_REPLACE。dev=MiniMax-M2.7-highspeed、test/main=MiniMax-M3 确认为有意分叉,已写在 compose 注释
M10 done(写明路径,不放开门闩)。OpsCutoverPromotionPath:dev 观察后用晋升回执写 test,再写 main。ValidateOpsCutover 仍拒绝 test/main
M13 done。SQL 迁到 deploy/postgres/archive/pre-goose/。代码与脚本无引用
M14 done。冻结计划找不到职责行则报错;显式空三权仍为 0。TestResolveDocTask_NoneDutiesStayZero
L1 done。健康检查 2 秒缓存 + 2 秒 DB 超时
L2 done。SSE marshal 失败写 event: error 帧
L3 done。ReplayPlan.Digest 含 DryRun;dry-run 摘要不能授权 apply
M15 done。生产 claimSQL 与 MemoryBus 共用 VersionClaimable:版本 0 可领,版本化事件不能跳过 checkpoint。checkpoint 只前进。TestVersionClaimableMatchesMemoryBusGap、TestGapDoesNotSkipVersion
H3 负例 done。TestListChatSessions_CrossUserIs403
FE 缓存 done(版本字段)。窗口缓存写入 {schema,data},无 schema 的旧载荷丢弃。window cache: 无 schema
FE lucide 关闭理由:package-lock.json 锁定 lucide-react@1.42.0,来源 registry.npmjs.org,带 integrity。^1.16.0 是合法的 1.x 范围,不是来源不明的包
M7 done(出站意图 + 同键重放)。document_content_projections 与账本同一事务写入;投影成功才销账。TestDocRevision_PatchOrder_RetryProjectsWithoutSecondLedgerCommit。账本库与正文库仍不是一个 SQL 事务,进程退出后靠未投影行重放,不靠客户端记忆
FE App.tsx 部分。登录壳不再静态引用重模块。本地缓存、登录同步、文档补水、服务端文档同步、生命周期、发送消息、块编辑、对话流/任务流重试、卡片动作、立项和成员写操作已分别抽出。工作台壳仍在 App.tsx
H1-del 关闭理由:allowLegacyTestPrincipal 仍被 AllowInMemory && ContextDbHost=="" 的 dev/test 内存测试使用。删除会把这批测试变成未登录 401。保留告警,删除另开、先改测试夹具

仍开放:rdev P3 三样本真 PI、首次加载 U1 的 20 次分位数、U7 重启矩阵、工作台壳继续拆出 App.tsx。dev 容器已在 fix/audit-remainder-closeout 重建:goose 53,表 document_content_projections 存在,入口 index-DOO0-Yh7.js。U4 在该包上 n=5 为成员 1、会话列表 1。U3 首屏资源无 katex/mermaid/docx,匿名 JS 传输 172,417 B。U6 关闭理由:瓶颈是成员扇出,重建后已消失,没有对应慢 SQL,不加索引。H2 HTTP 负例:TestDocGovCommentsAndAudit_NonMemberIs403_PG 在隔离库 127.0.0.1:5436 PASS。慢网 n=3 已低于拟定预算,但不足 20 次,U1 不关。test/main 仍是 schema 52,本轮不晋升。

红线关闭(不是实现):

  • SWBOOT-10:保持 fail-closed stub。未获独立授权前不接真实仓库写入。
  • FAV live:禁止整支 merge;FAV_DEGRADED_READ=false;live 需要各阶段至少 7 天观察窗,本轮不放量。
  • D7:合规签字前禁止按留存口径物理删除。盘点已完成,口径仍 pending-compliance-signoff。

清单

ID 项 位置 说明
M1 安全响应头 internal/server/server.go CORS 中间件 补 nosniff / X-Frame-Options / Referrer-Policy / 收敛 CSP
M2 租约 TTL 无上限 handlers.go AcquireLease clamp 到 DefaultHumanLeaseTTL,Acquire 前校验编辑权
M3 关键词改写意图 + 硬编码「张工」 internal/coordinator/engine.go 移到意图层并加置信度;称呼取用户名
M4 fmt.Sscanf 解析 u_sess_* 得到 UserID=0 同上 统一数字 ID
M5 Runtime.Start 双调用且吞错 cmd/server/main.go 与 server.go sync.Once 或删 Server.Start 内调用
M6 sessions 无硬上限 server.go cleanStaleSessionsLocked LRU + 服务端发 session id
M7 修订三阶段写无事务 document_revision_handlers.go 已落地:00053 投影意图与账本同事务;成功后销账。见进展表
M9 SEMANTIC_SUMMARY_REPLACE 只在 dev compose 声明;dev/test 默认模型不一致 compose 删未接线 flag 并钉死测试;确认 M3 是否刻意
M10 cutover 只允许 dev internal/events/cutover.go 写明 test/main 切换路径
M13 deploy/postgres/migrations/ 死目录 与 goose 重复 确认无外部依赖后归档
M14 ResolveDocTask 静默 0 值三权 orchestrator.go 找不到 duties 应报错
M15 PG 投递允许乱序,MemoryBus 有 gap dispatcher.go vs bus.go 对齐测试替身与生产顺序语义
L1 health 每次打两次 DB handlers.go 短缓存 + 超时
L2 SSE marshal 错误被吞 task_run_handlers.go 失败写 error 帧
L3 ReplayPlan digest 不含 DryRun replay.go 纳入 digest
H1-del 删除 legacy user-id=1 兜底 auth_middleware.go 已加日志;删除前盘点调用方
FE App.tsx 巨石、localStorage 无版本、lucide 版本确认 web/ 拆 hook;缓存加 version;确认包来源

相关链接