Extract.py was discarding LLM-provided connections — related_claims went into
frontmatter as wiki-links but supports/challenges/depends_on from the
connections field were ignored entirely. This is the primary driver of 50%+
orphan ratio.
Now: connections[] → typed edge fields (supports/challenges/related) in YAML
frontmatter. related_claims fall back to related edges. Post-write
connect_new_claims() adds vector-search edges for claims the LLM missed.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Three bugs fixed:
1. triage_pr() returns 3 values but line 611 unpacked 2 → ValueError on every
non-deterministic PR (circuit breaker opened, 5 PRs stuck)
2. costs import was inside triage else-block → NameError on deterministic routes
3. pr_cost never written to prs.cost_usd → 0% cost tracking across 1,118 PRs
Cost tracking now covers all 4 exit paths: domain failed, domain rejected,
Leo failed, and normal completion. Uses additive UPDATE (cost_usd + ?) so
re-evals accumulate correctly.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Ganymede review finding — the review-summary API no longer returns
disagreement_types, so the card always showed "No disagreements."
Removed the JS loop and HTML table.
Pentagon-Agent: Epimetheus <0144398e-4ed3-4fe2-95a3-3d72e1abf887>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
dashboard_routes.py — root copy is superset:
- Extraction yield query: source_url→path, s.url→s.path (truth audit)
- insufficient_data flag on cascade-coverage endpoint
- Rejection reasons fallback to prs.eval_issues when review_records empty
- rejection_source field replaces disagreement_types in review-summary
- New /api/agent-scorecard endpoint (Argus truth audit)
- Route registration for agent-scorecard
alerting.py — merged from both copies:
- FROM ROOT: "unknown" agent filter in check_agent_health (bug #3)
- FROM ROOT: prs.eval_issues queries in check_rejection_spike,
check_stuck_loops, check_domain_rejection_patterns,
generate_failure_report (truth audit correction Apr 2)
- FROM CANONICAL: _ALLOWED_DIM_EXPRS SQL whitelist + validation
in _check_approval_by_dimension (Ganymede security fix)
Files verified canonical=newer (no changes needed):
IDENTICAL: dashboard_prs.py, shared_ui.py, dashboard_ops.py,
dashboard_health.py, research_tracking.py, response_audit_routes.py
CANONICAL WINS: dashboard_epistemic.py, tier1_metrics.py,
dashboard_agents.py, alerting_routes.py, tier1_routes.py
NOTE: dashboard_routes.py review-summary API no longer returns
disagreement_types, but canonical dashboard_epistemic.py still renders
it — UI will show empty data. Flag for Ganymede review.
Root /diagnostics/ copies are now safe to delete for these 2 files.
Remaining root files already match or are older than canonical.
Pentagon-Agent: Epimetheus <0144398E-4ED3-4FE2-95A3-3D72E1ABF887>
- What: 3 NEW claims (society-of-thought emergence, LLMs-as-cultural-ratchet, recursive spawning) + 5 enrichments (intelligence-as-network, collective-intelligence-measurable, centaur, RLHF-failure, Ostrom) + 2 source archives
- Why: Evans, Bratton & Agüera y Arcas (2026) and Kim et al. (2026) provide independent convergent evidence for collective superintelligence thesis from Google's Paradigms of Intelligence Team. Kim et al. is the strongest empirical evidence that reasoning IS social cognition (feature steering doubles accuracy 27%→55%). ~70-80% overlap with existing KB = convergent validation.
- Source: Contributed by @thesensatore (Telegram)
Pentagon-Agent: Theseus <46864dd4-da71-4719-a1b4-68f7c55854d3>
- watchdog.py: tier0 auto-recovery (3 retries, 1h cooldown, audit trail) — pending Ganymede review
- stale_pr.py: new module, closes extraction PRs open >30 min with zero claims
- deploy.sh: expanded with new deployment features
- validate.py, extract.py, cascade.py, db.py: minor fixes
- backfill-descriptions.py: utility script
- review_queue.py: minor fix
Note: watchdog + stale_pr not yet deployed to VPS (reverted after missing import crash)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Files consolidated:
- dashboard_routes.py: root copy (39K) overwrites teleo-codex (34K) — has cost fix + connection leak fix
- dashboard_prs.py: root copy overwrites — has cost display rewrite
- dashboard_epistemic.py: root copy overwrites — has Ship rename
- research_tracking.py: new file, existed only in root /diagnostics/ (reviewed by Ganymede, never committed here)
- research_routes.py: new file, same situation
- ops/db.py: new file, unique to root /diagnostics/ops/
After this commit, root /diagnostics/ contains only stale copies and patch files — safe to delete.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Move vitality.py/vitality_routes.py from root diagnostics/ to ops/diagnostics/ (canonical location).
Overwrite ops/diagnostics/alerting.py and alerting_routes.py with root versions (newer: SQL injection protection via _ALLOWED_DIM_EXPRS, proper error handling + conn.close).
Remove root diagnostics/*.py — all code now in ops/diagnostics/.
Include diff log documenting resolution of each multi-copy file.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>