Proposition Vector Index Convergence
Makes the proposition vector index once there is a model to make it at.
THE INDEX IS CREATED AT THE EMBEDDING MODEL'S DIMENSION, so a host that starts without a model cannot register one — DiceStorageAutoConfiguration.propositionVectorIndexSchema contributes an empty catalog instead, rather than guessing a dimension and accepting writes a real model would disagree with. That is still right.
What was wrong was the sentence after it: "the catalog is rebuilt on the next boot, by which time a model configured at first run is registered." That held while a host with no model restarted after one was configured. The Embabel appliance stopped restarting — a provider key now takes effect per call — so the next boot never comes, and the index was never made at all. Observed: the model came alive and was used, and every read failed with "There is no such vector schema index".
A CATALOG CANNOT ANSWER THIS. SchemaCatalog holds materialised specs, and SchemaManager snapshots the catalog beans when it is built, so nothing registered later is ever seen and re-running enforce() applies the same empty catalog. The index has to be ensured directly.
WHO CALLS IT IS THE HOST'S BUSINESS. Only the host knows when a model has appeared — it is the one that took the key. Dice provides the capability and no trigger: no polling, no listener for an event this library cannot see, and nothing that runs unasked.
Idempotent, because IndexManager.ensure is: calling it when the index already exists is a no-op, so a host may call it on every provider change without checking first.