feat(minga-explorer): nueva app dashboard del repo Minga sobre stack yahweh
Iter 11. Cierra integración del módulo Minga (VCS semántico P2P) al ecosistema GUI. Antes Minga sólo tenía CLI; ahora hay un dashboard GPUI con counts del repo en vivo. crates/apps/minga-explorer/: - Deps: minga-store + yahweh-theme + 3 widgets compartidos. Sin minga-cli (sin passphrase prompts) ni minga-core. - PersistentRepo abierto directo (counts son lectura pública, sin passphrase). El DID sigue requiriendo `minga status` CLI. - Refresh polling 2s (mismo pattern que nakui/nouser explorer). - 3 stat cards: Nodos AST, Atestaciones, Claves MST. Cada una con border-l accent + label + número grande + descripción. - Helper stat_card() factoriza la card. - Header con título dinámico + theme switcher. - error_banner themed. - 2 tests sanity (missing dir errors, RepoSnapshot default). Smoke run verificado: bootstrap completo OK, panic esperado en open_window sin display. Apps GUI themed: 4 (nakui-ui, nakui-explorer, nouser-explorer, minga-explorer). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -6,6 +6,56 @@ ratio/diff ver `git show <sha>`.
|
||||
|
||||
## 2026-05-10
|
||||
|
||||
### 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
|
||||
sólo tenía CLI (`minga init/status/ingest/listen/sync/watch`).
|
||||
Ahora hay un **dashboard GPUI** que muestra los counts del repo
|
||||
en vivo, sobre el mismo stack themed que las otras dos apps
|
||||
explorer.
|
||||
|
||||
Crate nuevo `crates/apps/minga-explorer/`:
|
||||
- **Deps**: `minga-store` (para `PersistentRepo::open`) +
|
||||
`yahweh-theme` + `yahweh-widget-{banner,card,theme-switcher}`.
|
||||
Sin `minga-cli` (no necesita prompts de passphrase) ni
|
||||
`minga-core` (counts no requieren parsear AST).
|
||||
- **Lectura sin passphrase**: el `PersistentRepo` se abre directo
|
||||
desde `<repo>/repo` sled. Los counts (`nodes.len()`,
|
||||
`attestations.len()`, `mst.len()`) son lectura pública. Para el
|
||||
DID se sigue necesitando `minga status` (CLI con passphrase).
|
||||
- **Refresh por polling cada 2s**: mismo pattern que
|
||||
`nakui-explorer`/`nouser-explorer`.
|
||||
- **3 stat cards** una por dimensión:
|
||||
- Nodos AST (cyan) — fragments parseados del código.
|
||||
- Atestaciones (verde) — firmas Ed25519 sobre los nodos.
|
||||
- Claves MST (purple) — entradas del Merkle Search Tree.
|
||||
- **Helper `stat_card(cx, label, value, description, accent, ...)`**:
|
||||
fabrica una card con border-l colored + label tenue + número
|
||||
grande (`px(28)`) + descripción. Reutilizable.
|
||||
- **Header**: título dinámico (`Repo: <path> · reload <ms> ms`)
|
||||
+ theme switcher derecha.
|
||||
- **Error banner**: themed Banner::Error si el repo no abre.
|
||||
- 2 tests: `load_snapshot_errors_on_missing_dir` (msg claro
|
||||
cuando el dir no existe) + sanity del `RepoSnapshot::default`.
|
||||
|
||||
Workspace: nueva entry en `members[]`.
|
||||
|
||||
Smoke run del binario verificado: bootstrap completo OK, panic
|
||||
esperado en open_window por falta de display.
|
||||
|
||||
Beneficio operativo:
|
||||
- Un usuario corre `minga init` + `minga ingest archivo.rs` desde
|
||||
CLI, después abre `minga-explorer` y ve los counts crecer en
|
||||
vivo cuando ingiere más archivos.
|
||||
- Comparte theme switcher con `nakui-explorer` y
|
||||
`nouser-explorer` — cualquier preset elegido se aplica
|
||||
visualmente igual cross-app.
|
||||
- `minga` deja de ser sólo CLI; gana presencia GUI sin tocar
|
||||
el resto del módulo.
|
||||
|
||||
Apps GUI integradas al stack themed: **4** (nakui-ui, nakui-explorer,
|
||||
nouser-explorer, minga-explorer).
|
||||
|
||||
### feat(nouser-explorer): integración al stack yahweh themed
|
||||
Iter 10. `nouser-explorer` (la app paralela a `nakui-explorer`
|
||||
para ver Mónadas via daemon nouser) tenía colors hardcoded
|
||||
|
||||
Reference in New Issue
Block a user