Avoid 400 errors from OpenAI when chunker yields empty strings by filtering invalid texts in LeannBuilder.build_index. Add validation fail-fast in OpenAI embedding path to surface upstream issues earlier. Keeps passages and embeddings aligned during build. Refs #54