Nice fix. For the one-time re-embed I would avoid rewriting the live index in place: write a new namespace keyed by the new fingerprint, validate row coverage plus a small retrieval regression set, then atomically swap the alias. That gives you a rollback path if normalization or the model revision behaves differently and keeps mixed spaces impossible during migration. Missing model IDs can remain quarantined as legacy data until that migration completes rather than being inferred from dimension.