fix: restart the stalled autonomy pipeline and make calibration honest
Archive ingestion had been dead since 2026-08-02 because nothing in the compose stack actually ran it. Everything downstream starved from there. - add ingest + enrichment services. server.js only starts the scheduler when DURIIN_RUN_SCHEDULER is not "false", and workers/index.js was not running at all, so articles never got event_id/content/has_embedding and the coordinator had nothing to lease. - pass an explicit origin from coordinatorWorker. it was never passed, so acceptProposal defaulted to 'live' and 464 historical backfill predictions were recorded as live. that also meant verifyEvidence got a null cutoff and skipped its date check entirely. - coarsen cohortKey to event families + horizon buckets. 201 free text event types produced 221 cohorts averaging 2.76 samples, so the n>=30 gate could never be reached and everything abstained for the wrong reason. - gate on cohort diversity, not just sample count. one ticker was roughly half of all resolved outcomes, so a pure count gate was measuring one company. unknown diversity abstains rather than passing. - resolve the admin archive db explicitly and probe it. it relied on a Dockerfile symlink, and without it better-sqlite3 quietly creates an empty file and serves a phantom archive. - clamp implausible future publication dates at ingest. - pin the db backend to sqlite by default. compose hardcoded postgres "true", which would have overridden the operator's own .env on the next redeploy and pointed everything at a stale snapshot. scripts/repair-autonomy-labels.js relabels the affected rows. it is dry run by default and has not been applied. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WnNxwxfXSbeNtjvtz5gayb
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
<link rel="stylesheet" href="/admin/assets/css/base.css?v=20260804-3">
|
||||
<link rel="stylesheet" href="/admin/assets/css/layout.css?v=20260804-3">
|
||||
<link rel="stylesheet" href="/admin/assets/css/components.css?v=20260804-3">
|
||||
<link rel="stylesheet" href="/admin/assets/css/autonomy.css?v=20260804-3">
|
||||
<link rel="stylesheet" href="/admin/assets/css/autonomy.css?v=20260829-1">
|
||||
</head>
|
||||
<body class="page-autonomy">
|
||||
|
||||
@@ -98,6 +98,8 @@
|
||||
<div><span>Calibration cohorts</span><strong id="perf-cohorts">0</strong></div>
|
||||
</div>
|
||||
<p class="performance-note" id="performance-note">Duriin will only claim an edge after predictions mature and are measured out of sample.</p>
|
||||
<div class="performance-facts" id="origin-split"></div>
|
||||
<p class="performance-note" id="origin-note">Historical backfill and walk-forward replay are shown separately. Neither is evidence of live edge.</p>
|
||||
</aside>
|
||||
</div>
|
||||
|
||||
@@ -138,10 +140,20 @@
|
||||
<div><span>Watermark</span><strong id="replay-watermark">—</strong></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="panel" aria-label="Calibration cohorts">
|
||||
<div class="section-head"><div><span class="section-index">07</span><h3>Calibration cohorts</h3></div><span class="mode-pill">Needs 30 samples · 5 tickers · max 50% in one</span></div>
|
||||
<div class="table-wrap">
|
||||
<table>
|
||||
<thead><tr><th>Cohort</th><th>Source</th><th>Samples</th><th>Distinct tickers</th><th>Top ticker share</th><th>Status</th></tr></thead>
|
||||
<tbody id="cohort-list"><tr><td colspan="6" class="empty-state">No calibration snapshots yet.</td></tr></tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<div id="toast"><span class="toast-dot"></span><span id="toast-msg"></span></div>
|
||||
<script src="/admin/assets/js/app.js?v=20260804-3"></script>
|
||||
<script src="/admin/assets/js/autonomy.js?v=20260804-3"></script>
|
||||
<script src="/admin/assets/js/autonomy.js?v=20260829-1"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user