v2.7.10: ECitMatch fixes: HTTP 500 retry, dropped row reconciliation, validation
ECitMatch fixes: HTTP 500 retry, dropped row reconciliation, validation
Three fixes to the ECitMatch/lookup_citation pipeline.
Fixed:
- HTTP 500 retry — NCBI eutils proxy returns 500 for transient mesh-layer failures; reclassified as ServiceUnavailable at the api-client boundary so withRetry picks them up. 501 stays non-retryable. (#62)
- Dropped citation reconciliation — eCitMatch omits response lines for citations it cannot classify; results are now reconciled against submitted citations, with synthesized not_found rows for any gaps. (#54)
- Citation validation — pubmed_lookup_citation now requires at least journal or year per citation; author-only and volume-only inputs that ECitMatch cannot match are rejected before the API round-trip. (#39)
776 tests pass; bun run devcheck clean.