Wave 8 P3.2 模型版本追蹤 + ADR-100 SLO 自我治理 + 配套: P3.2 — Model Version Tracking: - model_version_probe.py (268 行) — 探測 Ollama / OpenRouter 等 provider 的 model version - model_version_tracker.py (101 行) — 對齊 PG provider_version_history 表 - migrations/p3_2_provider_version_history.sql + rollback — 25 行 schema - db/models.py +32 行 — ProviderVersionHistory ORM ADR-100 — AI 自主化 SLO: - docs/adr/ADR-100-ai-autonomous-slo.md (167 行) — 飛輪 SLO 設計與閾值 - ops/monitoring/slo-rules.yml (254 行) — Prometheus SLO recording rules + alerts - ops/monitoring/tests/test_slo_rules.yaml (242 行) — promtool unit tests 整合修改: - main.py +72 行 — Lifespan 啟動 model_version_probe + KB rot cleaner schedule - gitea_webhook.py +45 行 — webhook 接收 model 版本變化通知 - ci_auto_repair.py / evidence_snapshot.py / pre_decision_investigator.py — 配合接線 新測試: - test_kb_rot_cleaner_schedule.py (120 行) — 9 tests pass - test_slo_rules.yaml — promtool 驗收 Tests: 9 passed (test_kb_rot_cleaner_schedule) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-Authored-By: Multiple Engineers (P3.2 + ADR-100) <noreply@anthropic.com>
26 lines
938 B
PL/PgSQL
26 lines
938 B
PL/PgSQL
-- 2026-04-27 P3.2.2 by Claude — Provider 版本歷史表
|
||
-- 功能:記錄每次 AI Provider 版本探測結果,偵測版本變更
|
||
-- 回滾:p3_2_provider_version_history_rollback.sql
|
||
BEGIN;
|
||
|
||
CREATE TABLE IF NOT EXISTS ai_provider_version_history (
|
||
id SERIAL PRIMARY KEY,
|
||
provider VARCHAR(40) NOT NULL,
|
||
model VARCHAR(100) NOT NULL,
|
||
version VARCHAR(200),
|
||
digest VARCHAR(80),
|
||
captured_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||
prev_version VARCHAR(200),
|
||
changed BOOLEAN NOT NULL DEFAULT FALSE
|
||
);
|
||
|
||
COMMIT;
|
||
|
||
-- CREATE INDEX CONCURRENTLY 不能在 transaction block 內執行
|
||
CREATE INDEX CONCURRENTLY IF NOT EXISTS ix_provider_version_captured
|
||
ON ai_provider_version_history (provider, captured_at DESC);
|
||
|
||
CREATE INDEX CONCURRENTLY IF NOT EXISTS ix_provider_version_changed
|
||
ON ai_provider_version_history (changed, captured_at DESC)
|
||
WHERE changed = TRUE;
|