feat(nakui-explorer): nuevo binario GPUI — Nakui visible en la interfaz
Cierra "nakui no tiene UI propia" del audit. Nuevo binario standalone nakui-explorer (paralelo a nouser-explorer) que renderea el event log de un repo Nakui: timeline scrollable de seeds + morphisms con sus parametros, breakdown por entity type, polling cada 2s para detectar nuevos eventos appended sin restart. Diseno: lee directamente el archivo .jsonl del nakui_core::event_log:: EventLog. Path por env NAKUI_EVENT_LOG, default "nakui.jsonl" en pwd. Sin discovery via broker brahman porque nakui hoy es CLI/library/demos, no daemon. Cuando se daemonice, sustituir el lector de archivo por un sidecar consumer (mismo patron que nouser-explorer). UI: - Header: path, count total + breakdown seeds/morphisms, reload time. - Breakdown line: top 5 buckets por frecuencia (entities + morphisms). - Timeline: tarjetas color-coded por kind (azul=seed, verde=morphism) con #seq, kind, entity/morphism, id corto, preview de data/params, schema hash o "(legacy)". Mas-recientes-primero, hasta 200 visibles. - Error banner si lectura falla; el explorer no crashea, sigue intentando cada 2s. Wire: nuevo crates/apps/nakui-explorer/ agregado al workspace. Deps minimas: nakui-core, gpui, serde_json, uuid (feature serde). Sin deps de brahman (Nakui standalone). Tests: 7 unitarios cubriendo load_log (in-order, missing-file), breakdown (counts + buckets), preview_value (truncate + intact), short_uuid + short_hash. Activacion: NAKUI_EVENT_LOG=/tmp/nakui_inv_xxx.jsonl cargo run -p nakui-explorer Estado del CHANGELOG global tras este commit: cero pendientes fundamentados activos. Lo unico que queda es minga-vfs (FUSE, explicitamente diferido) y mejoras nice-to-have (cobertura adicional per-lenguaje, daemon-izacion de nakui para sidecar discovery).
This commit is contained in:
@@ -6,6 +6,64 @@ ratio/diff ver `git show <sha>`.
|
||||
|
||||
## 2026-05-09
|
||||
|
||||
### feat(nakui-explorer): nuevo binario GPUI — Nakui visible en la interfaz
|
||||
Cierra "nakui no tiene UI propia" del audit. Nuevo binario standalone
|
||||
`nakui-explorer` (paralelo a `nouser-explorer`) que renderea el
|
||||
event log de un repo Nakui: timeline scrollable de seeds + morphisms
|
||||
con sus parámetros, breakdown por entity type, polling cada 2s para
|
||||
detectar nuevos eventos appended sin restart del explorer.
|
||||
|
||||
Diseño:
|
||||
- Lee directamente el archivo `.jsonl` del `nakui_core::event_log::EventLog`.
|
||||
Path por env `NAKUI_EVENT_LOG`, default `nakui.jsonl` en pwd.
|
||||
- Sin discovery vía broker brahman porque nakui hoy es CLI/library/
|
||||
demos, no daemon. Cuando se daemonice, sustituir el lector de
|
||||
archivo por un sidecar consumer (mismo patrón que nouser-explorer
|
||||
actualmente usa).
|
||||
|
||||
UI:
|
||||
- **Header**: path del log, count total + breakdown seeds/morphisms,
|
||||
tiempo del último reload en ms.
|
||||
- **Breakdown line**: top 5 buckets por frecuencia (entities + nombres
|
||||
de morphisms con prefijo `→`).
|
||||
- **Timeline**: tarjetas color-coded por kind (azul=seed,
|
||||
verde=morphism). Cada tarjeta muestra `#seq`, kind, entity/morphism
|
||||
name, id corto (8 hex), preview del data/params (80 chars), schema
|
||||
hash corto (8 hex) o `(legacy)` si pre-versioning. Mostradas
|
||||
más-recientes-primero, hasta 200 visibles (suficiente para
|
||||
navegación; sin scroll virtualizado por ahora).
|
||||
- **Error banner**: si la lectura falla (archivo inexistente o
|
||||
corrupto), banner rojo con el motivo. El explorer NO crashea —
|
||||
sigue intentando cada 2s.
|
||||
|
||||
Wire en workspace:
|
||||
- Nuevo `crates/apps/nakui-explorer/` agregado a `[workspace] members`.
|
||||
- Deps mínimas: `nakui-core` (para EventLog + LogEntry), `gpui`,
|
||||
`serde_json`, `uuid` (con feature serde para parsear los IDs).
|
||||
- Sin deps de brahman por ahora (Nakui standalone).
|
||||
|
||||
Tests: 7 unitarios en `tests` mod del bin:
|
||||
- `load_log_returns_all_entries_in_order` — cargar un .jsonl
|
||||
generado a mano, asserta que devuelve 5 entries con seqs 0..4
|
||||
contiguous.
|
||||
- `breakdown_counts_seeds_morphisms_and_buckets` — verifica el
|
||||
conteo (3 seeds + 2 morphisms) y los buckets esperados.
|
||||
- `load_missing_file_yields_empty_not_error` — archivo inexistente
|
||||
devuelve `[]` sin error (delegado al contrato de `EventLog::open`).
|
||||
- `preview_value_truncates_long_strings` y `_keeps_short_strings_intact`.
|
||||
- `short_uuid_takes_first_8_chars` y `short_hash_takes_first_4_bytes_hex`.
|
||||
|
||||
Activación:
|
||||
```sh
|
||||
NAKUI_EVENT_LOG=/tmp/nakui_inv_xxx.jsonl cargo run -p nakui-explorer
|
||||
```
|
||||
|
||||
Estado del CHANGELOG global tras este commit: cero pendientes
|
||||
fundamentados activos. Lo único que queda es `minga-vfs` (FUSE,
|
||||
explícitamente diferido por el usuario) y mejoras nice-to-have
|
||||
(cobertura adicional per-lenguaje, daemon-ización de nakui para
|
||||
sidecar discovery).
|
||||
|
||||
### feat(minga-core): α-hashing per-language para Python, TypeScript, JavaScript, Go
|
||||
Cierra el último pendiente fundamentado del CHANGELOG. Cada lenguaje
|
||||
soportado por `minga` tiene ahora su propio profile α-equivalente —
|
||||
|
||||
Reference in New Issue
Block a user