feat(episode): TRAZA_fix-drift-embedding-searchv2-protocolo_S20260618.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD
Skill: TESSERA | Type: troubleshooting Summary: EPISODIO 1 — LEXICON_COSECHA: Fix drift embedding search_v2 — protocolo 7 fases
This commit is contained in:
parent
8514f48d67
commit
ed710f277b
1 changed files with 43 additions and 0 deletions
|
|
@ -0,0 +1,43 @@
|
|||
---
|
||||
episode_id: "b9a48af2-a8a6-49b1-a2bb-f68ea727b1a4"
|
||||
puente_flat: "TRAZA_fix-drift-embedding-searchv2-protocolo_S20260618.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
|
||||
session_code: "S20260618.VERIFY_FIRST_PASSPORT_FIX"
|
||||
acto_dialogico: "informar"
|
||||
actor_flujo: "multi_actor"
|
||||
criticidad_aegis: "low"
|
||||
skill_dominante: "TESSERA"
|
||||
fase_proyecto: "operations"
|
||||
tipo_semantico: "troubleshooting"
|
||||
summary_one_line: "EPISODIO 1 — LEXICON_COSECHA: Fix drift embedding search_v2 — protocolo 7 fases"
|
||||
source_type: "claude_code"
|
||||
trust_boundary: "internal"
|
||||
created_at: "2026-06-19T05:25:48.668194+00:00"
|
||||
relectura_tagged: false
|
||||
forgejo_commit_sha: "pending"
|
||||
---
|
||||
|
||||
✅ **Fix B completo y pusheado** — commit `087468c` a los 3 remotos. (El DLC advisory cita 5 docs archivados sobre *otros* bugs, no este drift — no requieren AVISO; advisory genérico por commit "fix".)
|
||||
|
||||
## Fix drift embedding search_v2 — protocolo 7 fases
|
||||
|
||||
**Causa raíz (una frase):** `search_v2.py` (lado READ) embebía las queries con un modelo distinto (`gemini-text-embedding-004`, hardcoded, lib directa) al que el WRITE usa (`text-embedding-3-large` = alias de `gemini-embedding-2`, vía proxy LiteLLM) → los vectores de query no eran comparables con los almacenados → **retrieval degradado silenciosamente**.
|
||||
|
||||
| | Antes | Después |
|
||||
|---|---|---|
|
||||
| `EMBED_MODEL` | `"gemini-text-embedding-004"` hardcoded | `os.environ.get("EMBED_MODEL", "text-embedding-3-large")` — **idéntico al WRITE** |
|
||||
| Fallback | `litellm.embedding()` lib directa (→ podría ir a OpenAI) | proxy LiteLLM (`LITELLM_URL/embeddings`) — **mismo mecanismo que el WRITE** |
|
||||
| Camino primario | `litellm_embed` del crisol (canónico) | **intacto** (no tocado) |
|
||||
|
||||
Era un bug de **consecuencia real** (no cosmético): un mismatch read/write degrada la búsqueda semántica sin error visible. **write==read** ahora garantizado (verificado: search_v2:57 ≡ qdrant_worker:70). Suite **226/0**, test_search_v2 17/17, docstring stale corregido (DLC-2).
|
||||
|
||||
### 📍 PARA JOHN — R9
|
||||
|
||||
**Hice:** alineé el embedding READ de `search_v2.py` al canónico del WRITE (commit `087468c`, pusheado). Con esto cerré las dos deudas post-migración `[C2 S20260613]` que quedaban en FEAT-011 (los 4 tests + este drift).
|
||||
|
||||
**Falta (deudas nuevas que detecté, no en alcance):** 🟡 wiki-MEMORIA **FROZEN** (96% de 23 páginas stale >30d — el self-awareness lo destapó este turno); 🟡 cosecha LEXICON pendiente (3 archivos con PRE_DIGEST sin `LEXICON_COSECHA` de hoy).
|
||||
|
||||
**Mi consejo:** las dos deudas de FEAT-011 están cerradas y verdes. Buen momento para **cerrar la sesión limpia** (actualizar `STATE.md`/`HANDOFF` + cosecha LEXICON, BLINDADA-11). Si prefieres seguir, la wiki-MEMORIA stale es el siguiente candidato natural.
|
||||
|
||||
**Para avanzar, elige:** 🟢 **A** *(recomendado)* cerrar sesión (STATE + HANDOFF + cosecha) · 🟡 **B** atacar la wiki-MEMORIA stale · ⚪ **C** otra cosa.
|
||||
|
||||
📌 **PILA-PENDIENTES (R9):** ✅ RESUELTAS: drift embedding search_v2 (commit 087468c, write==read, suite 226/0) · 🟡 MED: wiki-MEMORIA FROZEN 96% stale, cosecha LEXICON pendiente · ❓ John: A/B/C.
|
||||
Loading…
Reference in a new issue