t1-p1-03draft3–6h

Embedding and vector storage pipeline

requires: t1-p1-02

Embed all chunks with a single embedding model and store the vectors with metadata columns (source, chunk_strategy, token_count). Expose GET /health/index returning the indexed chunk count and the embedding model identifier.

One model for the whole corpus, deliberately. Mixing embedding models across a corpus produces a vector space where distances are meaningless - a bug that looks like poor retrieval and is nearly impossible to diagnose after the fact.

No result yet. Run `learn verify t1-p1-03` locally, or push to trigger CI.

contractcontract: t1_p1_03_index
unrun