From 7c6eed8d72c2a18cb53b6a5e898782df57358f19 Mon Sep 17 00:00:00 2001 From: agent-company Date: Mon, 18 May 2026 21:29:14 +0000 Subject: [PATCH] Update ROADMAP.md to mark completed P1 and P2 items as done Move seven completed items from the P1 and P2 sections into the Completed section: in-memory jobs persistence, export endpoint tests, tracked company admin tests, webhook integration tests, S3 storage tests, auto-download path tests, and scheduler DatabaseClient refactor. The P2 section now only lists the two genuinely open items: cursor-based pagination (Issue #1669) and request validation (Issue #1670). Closes leeworks-agents/SPARC#1678 Co-Authored-By: Claude Opus 4.6 (1M context) --- ROADMAP.md | 67 ++++++++++++++++++++++++------------------------------ 1 file changed, 30 insertions(+), 37 deletions(-) diff --git a/ROADMAP.md b/ROADMAP.md index 5b177d9..0e86ab5 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -81,57 +81,50 @@ Items that have been implemented and merged into main. - ~~OpenAPI client generation.~~ TypeScript API client auto-generated from FastAPI spec with CI freshness check. +### Resilience + +- ~~`_jobs` dict is in-memory only.~~ Database-backed job persistence + implemented using `db.list_jobs()` and `mark_stale_jobs_failed()`. The + in-memory `_jobs` dict has been removed. + +### Test coverage (P1/P2) + +- ~~Export endpoint tests.~~ Tests added for CSV and PDF export endpoints. +- ~~Tracked company admin endpoint tests.~~ Tests added for `/admin/tracked` + CRUD endpoints and scheduler integration. +- ~~Webhook integration tests.~~ Tests added for retry logic, Slack/Discord + payload format, and multi-URL dispatch. +- ~~S3/MinIO storage backend tests.~~ Unit tests added for the S3 backend + (read, write, exists, delete, error handling). +- ~~`analyze_single_patent` auto-download path tests.~~ Tests added for the + auto-download fallback (cache lookup, PDF download, FileNotFoundError). + +### Code quality + +- ~~Scheduler creates its own DatabaseClient.~~ Refactored to use the + application-level pooled `get_db_client()`. + --- ## P1 -- High Priority -These items address correctness, reliability, and coverage gaps that should be -resolved before broader production use. - -### Resilience - -- **`_jobs` dict is in-memory only.** Job state is lost on API restart. - Persist job status in PostgreSQL or Redis so async batch results survive - restarts. - -### Test coverage gaps - -- **Export endpoint tests.** The CSV and PDF export endpoints (`/export/`) - lack test coverage. Add tests covering auth, success, 404, and edge cases. - *(Issue #1655)* -- **Tracked company admin endpoint tests.** The `/admin/tracked` CRUD - endpoints and scheduler integration lack test coverage. *(Issue #1656)* +No outstanding P1 items. All previously listed items have been completed and +moved to the Completed section above. --- ## P2 -- Medium Priority -Improvements to reliability, test coverage, and code quality. - -### Test coverage - -- **Webhook integration tests.** The retry logic, Slack/Discord payload - format, and multi-URL dispatch in `webhooks.py` need test coverage. - *(Issue #1657)* -- **S3/MinIO storage backend tests.** `storage.py` has local filesystem tests - but no unit tests for the S3 backend (read, write, exists, delete, - error handling). *(Issue #1660)* -- **`analyze_single_patent` auto-download path tests.** The auto-download - fallback (cache lookup, PDF download, FileNotFoundError) in - `analyzer.py` lacks test coverage. *(Issue #1661)* - -### Code quality - -- **Scheduler creates its own DatabaseClient.** `scheduler.py` bypasses the - application-level pooled client, creating a new connection on every tick. - Refactor to use `get_db_client()`. *(Issue #1658)* +Improvements to the API surface. ### API improvements -- **API pagination.** The `/analyze/batch` and `/jobs` endpoints could benefit - from cursor-based pagination for large result sets. +- **API pagination.** The `/analyze/batch` endpoint needs cursor-based + pagination for large result sets. The `/jobs` endpoint already has cursor + pagination. *(Issue #1669)* - **Request validation improvements.** Add stricter input validation for company names (disallow special characters, enforce length limits). + *(Issue #1670)* ---