- extract-cron.sh: replaced by lib/extract.py (disabled on VPS since v2 cutover)
- evaluate-trigger.sh: replaced by lib/evaluate.py + merge.py
- batch-extract-50.sh: replaced by pipeline daemon extraction stage
- Updated deploy scripts to stop referencing batch-extract-50.sh
- Updated deploy-manifest.md and schema-change-protocol.md references
- Broadened .gitignore __pycache__/ to cover all directories
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Pipeline takes ~15s to initialize all 7 stages. The 5s sleep was causing
the health check to fail on every deploy, preventing stamp updates.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Removed pr-log.md (1,211 entries from Mar 25), evolution.md, weekly report,
and PATCH_INSTRUCTIONS.md (superseded by ops/AGENT-SOP.md). All regenerable
from pipeline.db on demand.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
claim_title payloads wrote unresolvable human-readable titles into
frontmatter related fields. Switched to claim_path with slug extraction
so reciprocal edges in merge.py can resolve targets. Renamed
neighbor_titles→neighbor_slugs throughout for consistency.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
TELEO_APP_TOKEN secret is not configured, so every push to main
triggered a failing workflow run. Kept manual trigger (workflow_dispatch)
for when we're ready to re-enable.
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>
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>