- batch_runner: sanitize paper_id to disk dir name (was skipping all
papers whose paper_id contains :/()); keeps explicit result path
compat; verified 5/5 no-skip on paren-DOI papers
- qdrant_loader: batch embed via Ollama array input (32/batch, 14x:
2.7 -> 36.9 texts/s, 24.5k points ~10min vs 2.5h); per-batch fail
falls back to single; checkpoint format unchanged
- entity_alias_aqua: +Streptococcus agalactiae (GBS), RAS
(forbidden_expansions), Danio rerio; merged vernacular/Chinese
aliases for O. niloticus / O. mykiss / S. salar / L. vannamei;
g02 gap entities now normalize correctly
- note for P3: ingest manifest MUST carry paper sidecar (pilot
manifest_pilot.json does not - would emit paper_id="result" dirt)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>