Skip to content

Latest commit

 

History

History
67 lines (46 loc) · 9.39 KB

File metadata and controls

67 lines (46 loc) · 9.39 KB

下一任务(当前修复完成后):实施 P2-07 最小恢复验证切片

状态:planned;P2-07 独立计划、工作日志与 ADR-0016 已建立,功能实现尚未开始 对应阶段:Phase 2 — Reliability 当前计划:Phase 2 恢复与运维闭环 当前日志:2026-08-28 P2-07 工作日志 当前决策:ADR-0016,exact-head amendments ADR-0017 / ADR-0018 决策基础:ADR-0005ADR-0009ADR-0010ADR-0011ADR-0015

当前事实

P2-01 已完成,不再重复资格或“重跑碰绿”。P2-06 也已完成:implementation SHA 9a20676dcf545040782f04c166205d0043345753 的 clean-SHA capacity/9/9 acceptance 与 run 33164609388 4/4 通过;evidence-doc commit ec2959680459a14aa308bd4d9ebcc6bb7bfcf3a6run 33165775037 也精确 4/4 通过。

当前 P2-06 已按 ADR-0015 实现:

  • P2-06 的 20260828_0005 新增 worker_processes 和 bounded audit scan indexes;20260829_0006 仅修复早期 0004 三索引缺口。当前应用 head 20260830_0007 只按显式 hard reservation 语义重算 scope overdrawn,不改变 13 表 schema/importer/archive 合同、never-delete ledger 或 actual usage。SQLite→PostgreSQL importer 继续做 13 表精确 digest,拒绝 live generation 并复制 stopped/stale facts;表非空时 0005 -> 0004 在 DDL 前拒绝。
  • 长运行 Worker 注册唯一 generation,只在真实 scan/claim/lease-heartbeat/progress 后按 DB UTC 合并刷新;/tasks/metrics 和 exporter 只公开 expected/registered/live/stalled/shortfall 与聚合时间。dependency probe 固定声明不检查 main-loop progress。
  • GET /api/v1/metrics/prometheus 输出固定 Prometheus text 0.0.4 gauge,使用一个 DB-time 快照、有界 15 分钟 audit 与 1 小时 latency 窗口、固定 enum label、整次 fail-closed 和每 API 进程 single-flight。
  • deploy/observability/ 提供固定八条告警规则、抓取示例与对应 Operations Runbook;仓库不部署 Prometheus、Alertmanager、OTel 或通知发送器。
  • llmbenchlab-audit-retention archive|verify|reconcile|restore|delete 提供 canonical JSONL v1、严格文件/权限/大小/schema/hash/rollup 校验、真正离线 verify、精确 digest 绑定、默认不删除和 commit-outcome 分类。它不提供签名/WORM,也不替代整库+keyring backup。
  • 全生产日志调用受字面量/无格式参数静态门禁;第三方动态消息固定化、结构化数值有限化,raw Uvicorn access handler 关闭。

0006 兼容修复已完成本地 migration/full test/lint/Mock smoke、真实失败备份副本升级和当前重建库 startup/check;实现 SHA 8fb51b690ae6335b8ef93b3cbe54e039781fb173 已 push,run 33263405214 4/4 成功,因此该维护任务为 completed,不改变 P2-07 的 planned 状态或范围。

2026-08-30 的个人本地维护又从最新逻辑非空的 SQLite 一致性备份在 staging 中前进迁移并恢复 Demo 数据,同时让 make dev 默认把 API/Worker/Vite 详细输出分流到私有 Git 忽略日志。实现 commit 5075bdb5e9b53f527a43e5aff7b7d2c7b48c5c9brun 33265171953 4/4 成功;该维护只处理默认本地开发库和启动体验,不提供 PostgreSQL+keyring backup/restore、Redis rebuild 或告警演练,因而不算 P2-07 功能实现;本文件的下一切片保持不变。

同日又把 artifacts/benchmarks/ 中已存在的 GPQA-Diamond 与两种 MMLU-Pro profile 通过正式导入 API 加载到默认个人 SQLite,当前为 4 个 Benchmark、24,277 题,原 Model/Run/Response 保持且没有 Provider 调用。记录 commit 0163b67c00eb59ae59db5f3adb679ad85c799142 已 push,其精确 SHA run 33266167547 4/4 成功;该本地数据操作不提交第三方题目、不改变产品实现或路线图,P2-07 的下一任务仍保持不变。

Observational Token overdraw 修复 已完成。ADR-0018 已把非显式 input 估算与 hard reservation 分离,并把 data-only head 定为 20260830_0007;该 revision 只重算 governance_scopes.overdrawn,upgrade/downgrade 均拒绝 active reservation,历史 ledger/actual/Response/Run 终态保持。本地完整验证、当前个人 SQLite 迁移、修正 SHA cb00924… 的 real-Compose 9/9 与 exact-SHA CI run 33271095910 4/4 均通过。P2-07 前置阻碍已解除,但本次任务到此停止。

P2-06 本地与 clean evidence 数值保持记录不变:合并定向、lint/test/smoke、双方言 migration、真实 PostgreSQL/Redis integration、frontend build、Compose config、Prometheus 规则、clean capacity/acceptance 与技术/安全终审均已通过;原始 evidence 仍不得公开。P2-06 当时未擅自迁移默认用户 SQLite;随后的兼容修复已在自动备份后将当时重建库前进到 0006 并通过 startup/check。

已完成:建立 P2-07 工作包

  1. 已按 AGENTS/PLANS 新建独立执行计划与工作日志,记录目标、非目标、验收、风险和实施步骤。
  2. 已勘察 PostgreSQL backup/restore、keyring、Redis consumer group、告警 Runbook 与 Compose/CI 边界,并以 ADR-0016 冻结关键取舍。
  3. 已把后续工作拆成 verifier、Redis/Worker、rules/recovery harness 和最终门禁;本轮按用户要求停止,没有实施代码或脚本。
  4. 后续自动化仍只能使用 Mock/Stub;任何数据库/volume/keyring 删除或替换必须使用隔离、精确目标和 fail-closed guard,不触碰默认用户数据。

P2-07:下一独立切片

P2-07 当前为 planned、尚未实现。恢复实施时按当前计划从最小只读 verifier 切片开始,之后才依次完成:

  • PostgreSQL backup → 空目标 restore → Alembic 20260830_0007 exact head → 13 表 count/PK/content fingerprint → managed Run/ledger/audit/Worker stopped-or-stale facts 可读。
  • 数据库与数据库外 keyring 独立备份/恢复:匹配 keyring 能解密,缺失/错误 keyring fail closed;日志/证据不得回显 Key 或 envelope。
  • Redis 重建/consumer group 恢复、Worker 扩缩、八条告警响应、dead-letter、commit outcome unknown、governance integrity 与 remaining cancel/retry/lease/budget crash matrix 的真实 PostgreSQL/Redis 演练。
  • audit archive 作为数据库恢复后的精确校验/补回工具参与演练,但不得把 archive 自身 restore 冒充整库、PITR、RPO/RTO 或 WORM 认证。

不变量与非目标

  • 不改变 llmbenchlab-protocol-v1 的评分、分母、完成率、answered accuracy、排行榜隔离或不可变历史快照。
  • API/Worker managed Run 继续以数据库/ledger 为事实来源;Redis、Prometheus、告警、日志、进程内 gate 和 materialized counter 都不是第二状态机。
  • Provider 调用不是 exactly-once;本地幂等、ledger 和保守结算不能证明外部调用或账单恰好一次。
  • 保留 write-only Key、AES-GCM credential、数据库外 keyring、legacy environment、真 SSE、严格 [DONE]、nullable max_tokens 和既有安全限制。
  • 不新增 Phase 3 Benchmark、代码沙箱、Judge、Arena、Agent、认证、多租户、公共部署、Kubernetes 或生产 HA 声明。

Definition of Done

  • P2-06 已完成,不再重复其资格或证据门禁。
  • P2-07:backup/restore、Redis 重建、告警处置与约定故障矩阵必须有隔离真实 PostgreSQL/Redis、Mock-only Compose、秘密审查、独立 commit/push 和精确 SHA CI 证据,才能标记 completed。
  • Phase 2:只有 P2-07 也完成后才可评估 completed;在此之前保持 in_progress,不得宣称生产 HA、灾难恢复 SLA、无限横向扩展、WORM 或 Provider exactly-once。

可直接复制给 Codex 的任务指令

确认 observational Token overdraw 修复已完成本地/远程门禁且当前应用 head 为 20260830_0007 后,再继续执行 docs/NEXT_TASK.md。P2-07 的 ADR-0016、独立计划和工作日志已建立,不要重复设计或扩大范围。先只实现计划步骤 2 的最小只读 recovery verifier 及其目标测试;完成、复核并记录后再决定是否进入 Redis/Worker 或 rules/harness。自动化只用 Mock/Stub,所有 destructive 操作只针对隔离、精确目标;Phase 2 在 P2-07 完成前保持 in_progress。