reembed All
Re-embed every stored proposition with the currently-configured embedding service, and leave this backend's own vector index agreeing with the result.
The default re-saves each proposition, which re-embeds it for any backend that embeds on save; for backends that do not own embeddings (e.g. in-memory) it is a harmless rewrite. A backend with no index of its own has nothing further to do, which is why reconciliation belongs in the override rather than here.
A BACKEND THAT OWNS AN INDEX MUST RECONCILE IT. A change of embedding model may make the vector wider or narrower, and either way an index created at the previous shape no longer describes what is stored. Leaving that to the caller is what this contract used to do, and it put the one workable order — drop, re-embed, remake — in every host's hands to rediscover and get wrong.
ONE FAILURE DOES NOT STOP THE RUN. Every proposition is attempted; a failure (an embedding service that rejects one text, a rate limit) is recorded and the loop continues, so the store is not left split between two models at whatever point the first failure happened. When any failed, PropositionReembedIncompleteException is thrown AFTER the run, naming them; calling this again is the retry.
Return
what was re-embedded, and whether the index had to be recreated to match
Throws
when one or more propositions could not be re-embedded; everything else was