Skip to content

Uncertainty engine: orphan sweep cron (#100)#111

Merged
ssilvius merged 2 commits intofeat/uncertainty-routesfrom
feat/uncertainty-orphan-cron
Apr 28, 2026
Merged

Uncertainty engine: orphan sweep cron (#100)#111
ssilvius merged 2 commits intofeat/uncertainty-routesfrom
feat/uncertainty-orphan-cron

Conversation

@ssilvius
Copy link
Copy Markdown
Contributor

Closes #100. Stacks on #110.

Pure sweep function in api/lib/uncertainty/orphan-sweep.ts: flips state='emitted' -> 'orphaned' where orphan_after < now, returning the count and cutoff. Uses the existing (state, orphan_after) index from the migration.

Exposed at POST /api/uncertainty/internal/orphan-sweep, gated by a CRON_SECRET bearer token.

The Astro Cloudflare adapter does not expose a scheduled() entrypoint, so the wrangler hourly trigger calls the internal endpoint via an external scheduler (or a future companion worker) rather than a worker-internal scheduled handler. Trigger pattern '0 * * * *' is wired in wrangler.jsonc.

Closes #100. Phase 1 of the uncertainty engine spike.

Pure sweep function in api/lib/uncertainty/orphan-sweep.ts:
flips state='emitted' -> 'orphaned' where orphan_after < now,
returning the count and cutoff. Uses the existing
(state, orphan_after) index from the migration.

Exposed at POST /api/uncertainty/internal/orphan-sweep, gated by a
CRON_SECRET bearer token. The Astro Cloudflare adapter does not
expose a scheduled() entrypoint, so the wrangler hourly trigger
calls the internal endpoint via an external scheduler (or a future
companion worker) rather than a worker-internal scheduled handler.
The trigger pattern "0 * * * *" is wired in wrangler.jsonc.

Tests document the WHERE-clause shape so the index choice stays
load-bearing in the unit suite.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@ssilvius ssilvius merged commit 5bbd485 into feat/uncertainty-routes Apr 28, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant