Skip to content

CorTeX v0.6.0 — scaling toward full-arXiv conversion

Latest

Choose a tag to compare

@dginev dginev released this 21 Jun 16:09

CorTeX v0.6.0 hardens the dispatch pipeline, sharpens the admin + agent surface for large runs, and lifts conversion throughput — readying CorTeX to convert the entire arXiv corpus.

⚡ Performance — toward full-arXiv scale

  • Input page-cache prefetcher (D-20): the ventilator warms each batch's source archives into the OS page cache ahead of dispatch, so the dispatch-hot-path read is served from RAM rather than cold storage — the binding limit at full-corpus scale.
  • Batched lease marking: task leasing collapses a per-row update loop into one bulk UPDATE … SKIP LOCKED.
  • maxperf worker profile: a fat-LTO cortex_worker build lifted validated sandbox throughput ~22% (peak 1392 vs 1137 tasks/min on a single host), fully worker-bound.
  • Run-completion-on-drain with a wall-clock lease timeout coupled to the worker's conversion cap.

🛡️ Robustness — the prime directive

  • Honest worker accounting: empty-queue heartbeat pings no longer inflate total_dispatched — "outstanding" now tracks true in-flight work instead of drifting into the thousands on an idle fleet.
  • Wall-clock lease reaper (D-19): timed-out leases are recovered on a fixed cadence even when the dispatcher is idle or under backpressure — not only when a request happens to arrive.
  • Graceful sink shutdown (D-16): the dispatcher terminates cleanly on restart instead of hanging to SIGKILL.
  • No silently-dropped work (D-18): empty / unreadable worker results are retried rather than stamped terminal-Fatal without a message; Fatal:invalid:* now maps to the distinct Invalid outcome (Perl parity).
  • Single source of truth for tokens (the JSON token file), and deterministic test isolation — the suite passes whether or not a dispatcher is co-located.

🖥️ Admin UI for large-scale work

  • Per-service conversion-runtime page + agent API: a runtime-distribution histogram and a paginated slowest-conversions table (/runtimes/<service>, /api/services/<service>/runtimes) — surface the slow tail across hundreds of thousands of papers.
  • Live dispatcher-activity stream and a unified progress + outcomes report per run.
  • Per-service lease timeout exposed across CLI, agent API, and the service registry (with inline guidance).
  • Productized service registry on the shared design-system table, standardized accessible pagination, and a WCAG-AAA pass (contrast, motion, focus, link purpose).

…among others

  • Structured logging (--log-format=json) and a read-only live-activity feed.
  • Sandbox corpora: carve QA subsets from a parent by message-condition — e.g. the tcolorbox / tikz-cd / xy package corpora.
  • Published themed agent-API docs; dependency bumps + dead-dep cleanup; pruned the known-issues ledger.

Throughout, the symmetry contract holds: every human screen action has a 1:1 documented agent API, and both see the same live + historical run state.