# Diagnostics Consolidation Diff Log
# Branch: epimetheus/consolidate-infra
# Date: 2026-04-13

## Files with multiple copies — resolution

### alerting.py
- ROOT diagnostics/alerting.py (22320 bytes) — KEPT (newer: has _ALLOWED_DIM_EXPRS SQL injection protection, stricter dim_expr validation)
- ops/diagnostics/alerting.py (22039 bytes) — OVERWRITTEN (missing SQL injection guards)
- VPS /opt/teleo-eval/diagnostics/alerting.py (22039 bytes) — matches ops/ version, needs deploy

### alerting_routes.py
- ROOT diagnostics/alerting_routes.py (4216 bytes) — KEPT (newer: proper try/finally/conn.close, ValueError catch on hours param)
- ops/diagnostics/alerting_routes.py (4043 bytes) — OVERWRITTEN (missing error handling, missing conn.close)
- VPS /opt/teleo-eval/diagnostics/alerting_routes.py (4043 bytes) — matches ops/ version, needs deploy

### vitality.py
- ROOT diagnostics/vitality.py (25548 bytes) — KEPT (only copy in repo, larger than VPS)
- VPS /opt/teleo-eval/diagnostics/vitality.py (18539 bytes) — older version, needs deploy
- MOVED TO: ops/diagnostics/vitality.py

### vitality_routes.py
- ROOT diagnostics/vitality_routes.py (10824 bytes) — KEPT (only copy in repo, larger than VPS)
- VPS /opt/teleo-eval/diagnostics/vitality_routes.py (9729 bytes) — older version, needs deploy
- MOVED TO: ops/diagnostics/vitality_routes.py

## Files moved

| From | To | Reason |
|------|-----|--------|
| diagnostics/vitality.py | ops/diagnostics/vitality.py | Consolidate to canonical location |
| diagnostics/vitality_routes.py | ops/diagnostics/vitality_routes.py | Consolidate to canonical location |
| diagnostics/alerting.py | ops/diagnostics/alerting.py | Newer version overwrites older |
| diagnostics/alerting_routes.py | ops/diagnostics/alerting_routes.py | Newer version overwrites older |

## Root diagnostics/ after consolidation
- PATCH_INSTRUCTIONS.md — kept (documentation, not code)
- evolution.md — kept (documentation)
- weekly/2026-03-25-week3.md — kept (report)
- ops/sessions/*.json — kept (session data)
- alerting.py, alerting_routes.py REMOVED by this consolidation
- vitality.py, vitality_routes.py were already absent (moved in prior commit)
- No .py files remain in root diagnostics/

## VPS .bak files inventory (30+ files)
All in /opt/teleo-eval/diagnostics/. Git is the backup now. Safe to delete after consolidation verified.

## VPS deploy needed after merge
alerting.py, alerting_routes.py, vitality.py, vitality_routes.py — all local versions are newer than VPS.

---

## Root Patch Script Audit (Epimetheus's 7 patches)

### patch-prompt-version.py — APPLIED
- **Target:** db.py, merge.py, extract.py, extraction_prompt.py
- **What:** Schema v17 migration for prompt_version/pipeline_version columns, version stamping on PR discovery, feedback param for re-extraction
- **Status:** All 4 targets have changes. Schema is at v19 (includes this migration). merge.py stamps versions. extract.py has feedback param. extraction_prompt.py has previous_feedback.
- **Action:** SAFE TO DELETE

### tmp-patch-research-state.py — APPLIED
- **Target:** research-session.sh
- **What:** Integrates agent-state hooks (state_start_session, state_update_report, state_journal_append)
- **Status:** All hooks present in research-session.sh (STATE_LIB sourcing, HAS_STATE init, session lifecycle calls)
- **Action:** SAFE TO DELETE

### patch-dashboard-cost.py — STALE (superseded)
- **Target:** dashboard_routes.py
- **What:** Adds per-PR cost queries via audit_log (cost_map, triage_cost_map)
- **Status:** Cost tracking implemented differently in current codebase — uses `costs` table and p.cost_usd column, not audit_log aggregation. Patch logic abandoned in favor of newer approach.
- **Action:** SAFE TO DELETE (superseded by different implementation)

### patch-dashboard-prs-cost.py — STALE (superseded)
- **Target:** dashboard_prs.py
- **What:** Adds Cost column header, fmtCost() function, cost cell in row template
- **Status:** Cost KPI card exists (line 101) but implemented as card-based KPI, not table column. fmtCost() not present. Different UI approach than patch intended.
- **Action:** SAFE TO DELETE (superseded by card-based cost display)

### patch-cost-per-pr.py — NOT APPLIED
- **Target:** evaluate.py
- **What:** Adds _estimate_cost() helper function, cost instrumentation to audit events (haiku_triage, domain_rejected, approved, changes_requested)
- **Status:** _estimate_cost not found in evaluate.py. No cost fields in audit events. eval_checks.py has its own estimate_cost but for bot responses, not pipeline eval.
- **Action:** SAFE TO DELETE — eval_checks.py already has cost estimation for its own use case. The pipeline eval cost tracking was a different approach that was never completed.

### patch-dashboard-prs-version.py — NOT APPLIED
- **Target:** dashboard_prs.py
- **What:** Adds version badges (prompt_version, pipeline_version) to eval chain section and agent cell
- **Status:** No version badges in dashboard_prs.py. prompt_version/pipeline_version not displayed anywhere.
- **Action:** SAFE TO DELETE — version columns exist in schema (v17 migration) but UI display was never built. Low priority feature, can be re-implemented from schema when needed.

### patch-dashboard-version.py — NOT APPLIED
- **Target:** dashboard_routes.py, shared_ui.py
- **What:** Adds prompt_version/pipeline_version to SELECT query, version badges to shared_ui
- **Status:** Version fields not in SELECT. shared_ui.py exists but without version display.
- **Action:** SAFE TO DELETE — same reasoning as patch-dashboard-prs-version.py.

### Summary

| Script | Status | Action |
|--------|--------|--------|
| patch-prompt-version.py | APPLIED | Delete |
| tmp-patch-research-state.py | APPLIED | Delete |
| patch-dashboard-cost.py | STALE (superseded) | Delete |
| patch-dashboard-prs-cost.py | STALE (superseded) | Delete |
| patch-cost-per-pr.py | NOT APPLIED (abandoned) | Delete |
| patch-dashboard-prs-version.py | NOT APPLIED (low priority) | Delete |
| patch-dashboard-version.py | NOT APPLIED (low priority) | Delete |

All 7 safe to delete. 2 were applied, 2 were superseded by different implementations, 3 were never applied but the features either exist differently or are low priority.

---

## Root Orphan Files

### extract.py (693 lines)
- **Location:** Pentagon workspace root
- **Canonical:** teleo-codex/ops/pipeline-v2/openrouter-extract-v2.py (Apr 7+)
- **Status:** Older draft (Apr 1). Confirmed by Cory as safe to delete.
- **Action:** DELETE

### cascade.py (274 lines)
- **Location:** Pentagon workspace root
- **Canonical:** teleo-codex/ops/pipeline-v2/lib/cascade.py (10372 bytes, Apr 13)
- **Status:** Older draft. Confirmed by Cory as safe to delete.
- **Action:** DELETE

---

## Argus's Patch Scripts (in root diagnostics/)

8 patch scripts owned by Argus — audit responsibility is Argus's:
- diagnostics/compute_profile_patch.py
- diagnostics/dashboard_compute_patch.py
- diagnostics/patch_4page.py
- diagnostics/patch_dashboard_tokens.py
- diagnostics/patch_evaluate_costs.py
- diagnostics/patch_llm_cli.py
- diagnostics/patch_prs_page.py
- diagnostics/patch_vps_app.py

These remain in root diagnostics/ until Argus completes his audit.
