You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> Esta traducción fue generada con asistencia de IA. Las correcciones de hablantes nativos son bienvenidas vía PR.
6
6
@@ -343,7 +343,7 @@ y el recordatorio para que descubras este flujo de manera natural.
343
343
| `supamem stats` | Contadores Welford schema-v2 desde `.supamem/state/` |
344
344
| `supamem live` | 👀 Dashboard en vivo siguiendo el audit JSONL — pipe-safe (JSONL plano cuando no hay TTY); maneja rotación, redimensionado, Ctrl-C |
345
345
| `supamem migrate` | Migración brownfield desde una colección `dev_memory` preexistente |
346
-
| `supamem eval` | Correr el arnés de bench. `--suite goldens` (por defecto, corpus dorado de 33 consultas para regresión) o `--suite longmemeval_s` (descarga perezosa de LongMemEval_S, ~3 GB en la primera ejecución; el camino rápido de CI es un subconjunto de 10 preguntas estratificado por eje, las ~500 preguntas completas requieren `--full`). Emite un envelope JSON estilo MTEB a `~/.supamem/eval/<utc-iso>.json`. El juez por defecto es heurístico (offline); pasa `--judge ollama:<model>` para un juez Ollama local — los endpoints SaaS son rechazados (D-07). Extra opcional: `pip install supamem[eval]`para la tríada RAGAS (v0.3.0a2+). Modo legado `--regress` preservado. |
346
+
| `supamem eval` | Correr el arnés de bench. `--suite goldens` (por defecto, corpus dorado de 33 consultas para regresión) o `--suite longmemeval_s` (descarga perezosa de LongMemEval_S, ~3 GB en la primera ejecución; el camino rápido de CI es un subconjunto de 10 preguntas estratificado por eje, las ~500 preguntas completas requieren `--full`). v0.3.0a4+: emite una pasada scoped + unscoped por pregunta; el gate de publicación es **scoped-only** ([ADR-0001](docs/adr/0001-scoped-only-bench-gate.md)). Nuevo `--suite longmemeval_scoped_smoke` empaquetado (≤5 preguntas, sin descarga perezosa) para CI. Emite un envelope JSON estilo MTEB a `~/.supamem/eval/<utc-iso>.json`. El juez por defecto es heurístico (offline); pasa `--judge ollama:<model>` para un juez Ollama local — los endpoints SaaS son rechazados (D-07). Extra opcional: `pip install supamem[eval]` para la tríada RAGAS (v0.3.0a2+). Modo legado `--regress` preservado. |
| `supamem unpatch-agents` | 🔄 Revertir los parches de alcance de subagentes (v0.2.5+). Restaura los archivos de agentes a su forma anterior al parche según el manifiesto en `~/.cache/supamem/agent_patches.json`. Omite con advertencia los archivos que hayas editado desde entonces. Córrelo ANTES de `pip uninstall supamem` para una desinstalación limpia. |
349
349
@@ -618,6 +618,13 @@ Semántica:
618
618
Múltiples keys de `where` se AND-ean; los valores en lista dentro de una key se OR-ean
619
619
(`MatchAny`).
620
620
621
+
| Key | Semántica |
622
+
|-----|-----------|
623
+
|`room`| Phase 7 — facet del clasificador de coding-path (`backend`, `frontend`, `tests`, ...). String o lista. Lo escribe `supamem index` por chunk. |
624
+
|`path_prefix`| Phase 11 — match exacto left-anchored por segmentos de path contra `payload.path_prefixes`. String o lista. Lo escribe `supamem index` por chunk. |
625
+
|`valid_to`| Phase 9 — solo acepta `"now"` como alias no-op de la cláusula temporal always-on. Cualquier otro valor lanza `ValueError`. |
626
+
|`session_id`|**Solo bench** — lo escribe la ingestión LongMemEval (`supamem.eval.longmemeval_ingest`); es key pass-through. **`supamem index` NO lo escribe.** Lo usa la pasada scoped del bench Phase 14 contra la colección dedicada `supamem_eval_longmemeval_s`. Ver [ADR-0001](docs/adr/0001-scoped-only-bench-gate.md). |
627
+
621
628
### Migración
622
629
623
630
Los chunks legados (indexados antes de v0.3.0a3) no tienen `path_prefixes`. El primer
@@ -633,6 +640,48 @@ voltea el exit code del doctor.
633
640
634
641
---
635
642
643
+
## 📊 Benchmarks (v0.3.0a4+)
644
+
645
+
**Cambio metodológico.**`supamem eval --suite longmemeval_s` emite tanto una
646
+
pasada **unscoped** como una **scoped** por pregunta. La pasada scoped usa
647
+
un `where` filter por pregunta derivado de los session ids del haystack de
648
+
LongMemEval (`{"session_id": [...]}`), ejercitando los payloads de filtro
649
+
del lado del indexer (`room`, `path_prefix`, `valid_to`, `session_id`)
650
+
agregados a lo largo de las Phases 7 / 9 / 11 / 14. La decisión del gate
651
+
publicado (delta de `tokens_per_correct_answer` vs el baseline v0.1.5) lee
652
+
la pasada **scoped**; unscoped se reporta en el mismo envelope para
653
+
transparencia y nunca gating. Ver [ADR-0001](docs/adr/0001-scoped-only-bench-gate.md)
654
+
para el racional completo.
655
+
656
+
**Caveat de reproducibilidad.** Los números scoped pueden no reproducirse
657
+
en invocaciones unscoped por defecto de `dual_memory_search` /
658
+
`qdrant_find`. Los usuarios que quieran números comparables deben pasar un
659
+
`where={...}` explícito contra una colección cuyos chunks lleven el payload
660
+
correspondiente — esta es una disclosure metodológica, no un defecto.
661
+
662
+
**Corpus baseline.** El baseline v0.1.5 fue **re-capturado** contra una
663
+
colección de bench dedicada (`supamem_eval_longmemeval_s`). Los números
664
+
absolutos pre-Phase-14 no son directamente comparables a los números
665
+
post-Phase-14 — el corpus cambió. El número original de la devdocs
666
+
collection se preserva como `legacy_devdocs_unscoped_tpca` en
667
+
`eval/baselines/v0.1.5.json` para referencia histórica pero **NO** entra
668
+
al gate.
669
+
670
+
**FUTURE-24 (rerank composition rework)** es un sibling unblocker
671
+
trackeado por separado. La pasada scoped de Phase 14 corre con rerank-OFF
672
+
para que el delta scoped-vs-unscoped medido atribuya limpiamente al
673
+
scoping. Las claims públicas sobre las ganancias de scoping **no** se
674
+
extrapolan a "y una vez que el rerank composition también se arregle, el
0 commit comments