feat(nouser): centroid_model — versionado de embeddings
Protege contra el bug silencioso de mezclar centroides de modelos
distintos (mock 32-d vs real 384-d), que daría scores sin sentido.
- MonadManifest.centroid_model: Option<String>. None = legacy.
- nouser_core::embed::MODEL_ID = "nouser-pseudo-32d". Cluster lo
setea en cada Mónada que genera.
- nouser-nous-mock reusa la misma constante (use
nouser_core::embed::MODEL_ID): produce vectores idénticos al
cluster local, reportar el mismo ID es honesto.
- nouser-nous-real ya reportaba "real-fastembed-allMiniLML6V2-384d";
el filter ahora lo descarta automáticamente cuando los centroides
cacheados son del mock.
- cmd_attract:
- Captura el model_id del embedding del target.
- Filtra Mónadas cuyo centroid_model no matchee.
- Reporta "embed: <source> (<model>)" y "skipped: N" cuando
descarta.
Resultado: cambiar de mock a real vía BRAHMAN_BROKER_CONTEXT=prod
hace que attract filtre las Mónadas viejas con cero score en lugar
de fingir que las puede comparar.
Tests: 7 (card) + 24 (core) verdes.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -4,6 +4,31 @@ Registro cronológico de cambios sustantivos en el monorepo Brahman. Cada
|
||||
entrada lista las acciones concretas tras un commit; para detalles de
|
||||
ratio/diff ver `git show <sha>`.
|
||||
|
||||
## 2026-05-09
|
||||
|
||||
### feat(nouser): centroid_model — versionado de embeddings
|
||||
Protege contra el bug silencioso de mezclar centroides de modelos
|
||||
distintos (mock 32-d vs real 384-d), que daba scores sin sentido.
|
||||
|
||||
- `MonadManifest.centroid_model: Option<String>` taggea qué modelo
|
||||
produjo el `centroid`. `None` = legacy pre-versioning.
|
||||
- `nouser_core::embed::MODEL_ID = "nouser-pseudo-32d"`. El cluster lo
|
||||
setea en cada Mónada que genera.
|
||||
- `nouser-nous-mock` reusa la misma constante (`use
|
||||
nouser_core::embed::MODEL_ID`); produce vectores idénticos al
|
||||
cluster local, así que reportar el mismo ID es honesto.
|
||||
- `nouser-nous-real` reporta `"real-fastembed-allMiniLML6V2-384d"`
|
||||
(dim distinta, semántica distinta).
|
||||
- `cmd_attract` ahora:
|
||||
- Captura el `model_id` del embedding del target (local o remote).
|
||||
- Filtra Mónadas cuyo `centroid_model` no matchee.
|
||||
- Reporta `embed: <source> (<model>)` y `skipped: N mónadas con
|
||||
centroid_model distinto` cuando descarta.
|
||||
|
||||
Resultado operativo: cambiar de mock a real (vía
|
||||
`BRAHMAN_BROKER_CONTEXT=prod`) hace que `attract` filtre las Mónadas
|
||||
viejas con cero score en lugar de fingir que las puede comparar.
|
||||
|
||||
## 2026-05-08
|
||||
|
||||
### chore: profile.dev slim — target/ ~50% más liviano
|
||||
|
||||
Reference in New Issue
Block a user