feat(minga-explorer): listings de items recientes en cada stat card
Iter 12. Hasta ahora minga-explorer mostraba sólo counts. Ahora cada stat card muestra un sample de los 5 primeros items: hashes truncados de nodos AST (con kind), atestaciones (content_hash ← did_short) y claves MST. - RepoSnapshot agrega 3 Vec<String/(String,String)> con recent items, cap RECENT_LIMIT=5. - load_snapshot itera los stores con filter_map(Result::ok) + take(5). Errores per-item silenciados — dashboard tolerante a corrupción puntual. - short_hash(&str) local: trunca a 12 chars (48 bits). - stat_card extendido con recent_items: &[String]. Si no vacío, agrega "recent (N de TOTAL):" + una linea por item. Tests: 2 → 4 (sanity defaults + short_hash). Beneficio: tras `minga ingest`, el explorer muestra los hashes de los nodos creados sin necesitar queries SQL. Limitación: los "recent" no son cronológicos (sled ordena lex por hash). Timeline real requiere timestamp al schema. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -6,6 +6,50 @@ ratio/diff ver `git show <sha>`.
|
||||
|
||||
## 2026-05-10
|
||||
|
||||
### feat(minga-explorer): listings de items recientes en cada stat card
|
||||
Iter 12. Hasta ahora minga-explorer mostraba sólo counts (3
|
||||
números). Ahora cada stat card muestra también un sample de los
|
||||
items dentro: hashes truncados de los 5 primeros nodos AST
|
||||
(con su `kind`), atestaciones (`content_hash ← did_short`) y
|
||||
claves MST. Mucho más útil para debugging que el "tengo N items".
|
||||
|
||||
Cambios en `minga-explorer`:
|
||||
- **`RepoSnapshot` extendido** con 3 nuevos `Vec<...>`:
|
||||
- `recent_nodes: Vec<(String, String)>` — `(hash_short, kind)`.
|
||||
- `recent_attestations: Vec<(String, String)>` —
|
||||
`(content_hash_short, did_short)`.
|
||||
- `recent_mst_keys: Vec<String>` — `hash_short`.
|
||||
- Cap de 5 items por sección via `RECENT_LIMIT` const.
|
||||
- **`load_snapshot` itera los stores** y toma los primeros 5
|
||||
items via `iter().filter_map(Result::ok).take(RECENT_LIMIT)`.
|
||||
Errores per-item se silencian (`filter_map`) — el dashboard
|
||||
muestra lo que pueda; un par de items corruptos no debería
|
||||
tirar el panel.
|
||||
- **`short_hash(&str)` helper local**: trunca un hex a sus
|
||||
primeros 12 chars (48 bits, distintivo dentro de un repo
|
||||
single-machine).
|
||||
- **`stat_card` extendido**: nuevo arg `recent_items: &[String]`.
|
||||
Si no está vacío, agrega un sub-header `"recent (N de TOTAL):"`
|
||||
+ una linea por item. Cada line es texto pequeño (`px(11)`)
|
||||
con el color principal del theme — visualmente queda como
|
||||
monospace listing aunque no use mono font (no hay todavía
|
||||
en el theme).
|
||||
|
||||
Tests: 2 → **4** (+2 sanity de los nuevos defaults + del
|
||||
`short_hash`).
|
||||
|
||||
Beneficio operativo:
|
||||
- Después de `minga ingest archivo.rs`, el explorer muestra
|
||||
inmediatamente los hashes de los nodos AST creados, qué `kind`
|
||||
tienen, y las atestaciones firmadas — sin necesitar `minga
|
||||
status` o queries SQL.
|
||||
- "5 de 247" da contexto del crecimiento sin overwhelm de
|
||||
listing completo.
|
||||
|
||||
Limitación documentada: los "recent" no son cronológicos — sled
|
||||
ordena lexicográfico por hash. Para timeline real, agregar
|
||||
timestamp al schema (cambio breaking del store, scope futuro).
|
||||
|
||||
### feat(minga-explorer): nueva app dashboard del repo Minga sobre stack yahweh
|
||||
Iter 11. Cierra el último frente identificado: integración del
|
||||
módulo Minga (VCS semántico P2P) al ecosistema GUI. Antes Minga
|
||||
|
||||
Reference in New Issue
Block a user