diff --git a/docs/EXTRACTION_SERVICE_ROADMAP.md b/docs/EXTRACTION_SERVICE_ROADMAP.md index 13e294d1..27797f77 100644 --- a/docs/EXTRACTION_SERVICE_ROADMAP.md +++ b/docs/EXTRACTION_SERVICE_ROADMAP.md @@ -393,3 +393,32 @@ A shared extraction microservice that uses Google's LangExtract library to extra - Phase 3 consumer integration uses new endpoints/routes — existing triage/transcript flows remain untouched - If extraction-service is down, consumers fall back to their existing behavior (MindLyst mock triage, LysnrAI raw transcripts) - The `@bytelyst/extraction` package is optional — dashboards only import it for new extraction features + +--- + +## Completion Status + +**All 68 roadmap items (Phases 0–6) are implemented and checked.** ✅ + +### Deferred Items (TODO — Require User Action) + +The following items are functionally complete but have deferred sub-tasks that need manual steps or external dependencies: + +| # | Item | What's Done | What's Deferred | Action Needed | +| -------- | ------------------------------- | -------------------------------------------------------------------------------------- | ----------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| **4.3** | Dockerfile build verification | 3-stage Dockerfile created and structure validated | Full `docker build` has not been run | Run `docker build -f services/extraction-service/Dockerfile .` from common platform root | +| **4.11** | CI workflow execution | `.github/workflows/ci-extraction-service.yml` created | GitHub Actions disabled due to billing | Re-enable GitHub Actions or rename `disabled.yml` back to `ci.yml` | +| **5.4** | Usage persistence in Cosmos DB | In-memory usage tracking works with daily quota enforcement | Cosmos `extraction_usage` container not created | Implement Cosmos persistence in Phase 7 when ready | +| **6.2** | Visualization artifact storage | Recharts components render in admin dashboard | Azure Blob Storage for saved visualizations not wired | Wire `@bytelyst/blob` when visualization export is needed | +| **6.4** | Webhook callback for async jobs | Job queue with progress polling works (`POST /extract/jobs` → `GET /extract/jobs/:id`) | No webhook/callback on completion | Add webhook URL field to job creation when consumers need push notifications | + +### Verification Summary + +| Check | Status | +| ------------------------------------------------- | ------------------- | +| `pnpm --filter @lysnrai/extraction-service build` | ✅ Clean | +| `pnpm --filter @lysnrai/extraction-service test` | ✅ 46 tests passing | +| `pnpm --filter @bytelyst/extraction build` | ✅ Clean | +| `npx tsc --noEmit` (admin-dashboard-web) | ✅ Clean | +| `npx tsc --noEmit` (mindlyst-native/web) | ✅ Clean | +| Python sidecar tests (29 tests) | ✅ Passing |