Skip to content

Latest commit

 

History

History
22 lines (18 loc) · 2.25 KB

File metadata and controls

22 lines (18 loc) · 2.25 KB
summary Opt-in local SQLite mirror for offline study search and count (CT_MIRROR_* env vars)
breaking false
security false
agent-notes New mirror/ module under src/services/clinical-trials/. Disabled by default (CT_MIRROR_ENABLED=false). No schema changes; no changes to existing tool behavior when mirror is disabled.

2.6.2 — 2026-06-04

Adds an opt-in, self-refreshing SQLite+FTS5 local mirror of the ClinicalTrials.gov study corpus (#56). Disabled by default; requires explicit CT_MIRROR_ENABLED=true to activate.

Added

  • src/services/clinical-trials/mirror/ — new MirrorService module: index.ts (init/accessor, initMirror/getClinicalTrialsMirror), ingester.ts (bulk bootstrap and incremental refresh), types.ts (StudyMetaRow, MirrorStatus). Backed by @cyanheads/mcp-ts-core/mirror (MirrorService, Mirror, QueryFilter).
  • getMirrorConfig() in src/config/server-config.ts — lazy-parsed mirror config from four new env vars: CT_MIRROR_ENABLED, CT_MIRROR_PATH, CT_MIRROR_REFRESH_CRON, CT_MIRROR_FALLBACK_LIVE.
  • ClinicalTrialsService.mirrorStatus() — returns current MirrorStatus (study count, last sync time, ready flag) or undefined when disabled.
  • Mirror routing in searchStudies and getStudiesBatch — routes to mirror first when enabled and ready; falls back to live API transparently for geo filters, AREA[] expressions, pageToken continuations, and any query the mirror cannot answer.
  • Scheduler wiring in src/index.ts — on HTTP transport, schedules an incremental mirror refresh job via schedulerService using CT_MIRROR_REFRESH_CRON (default 0 3 * * *, 3 AM daily). No persistent scheduler on stdio transport.
  • tests/services/clinical-trials/mirror/mirror.test.ts — unit tests for mirror init, status, routing, and fallback behavior.
  • CT_MIRROR_ENABLED, CT_MIRROR_PATH, CT_MIRROR_REFRESH_CRON, CT_MIRROR_FALLBACK_LIVE documented in README, .env.example, server.json, manifest.json, CLAUDE.md, and AGENTS.md.
  • @cloudflare/workers-types added to devcheck.config.json outdated-deps allowlist (daily-release package; version churn is expected and non-blocking).