docs: fix factual errors en SDDs y STATUS/ROADMAP

Errores detectados al auditar afirmaciones técnicas contra el código:

1. minga-vfs: NO está relacionado con Mónadas (esas son de akasha).
   Es FUSE que proyecta el índice de minga (git semántico) como
   filesystem, resolviendo paths virtuales a blobs por hash.

2. protocol/SDD.md: Card tiene 19 campos, no 6. Añadido bloque con
   anatomía completa del struct.

3. STATUS.md: LOC por capa corregidos contra wc -l real
   - protocol: 6,260 → 7,278
   - init:     ~3,600 → 4,301
   - compat:   ~5,000 → 3,435 (estaba sobrestimado)

4. pineal: 6 stubs (<30 LOC c/u), no 5. Export (23 LOC) también es
   stub funcional. LOC reales por sub-crate documentados.

5. init/SDD.md: ente-soma es wrapper de 44 LOC, no ~30.

6. akasha/SDD.md: fastembed está detrás de feature `embeddings`,
   ort es transitivo. Sin feature, akasha-nous-real es stub mínimo.

7. vista/barra: LOC ajustados (vista-core 177, barra-core 108).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
sergio
2026-05-19 17:03:05 +00:00
parent 550c98f275
commit e570c6ca6f
9 changed files with 74 additions and 30 deletions
+1 -1
View File
@@ -11,7 +11,7 @@ cgroups, y snapshot/restore del grafo.
| ---------------- | ------- | ----------------------------------------------------- | | ---------------- | ------- | ----------------------------------------------------- |
| `ente-zero` | binario | PID 1: reap + handshake server + bus dispatcher | | `ente-zero` | binario | PID 1: reap + handshake server + bus dispatcher |
| `ente-kernel` | lib | `bootstrap_kernel_surface`, subreaper, SIGCHLD/uevent | | `ente-kernel` | lib | `bootstrap_kernel_surface`, subreaper, SIGCHLD/uevent |
| `ente-soma` | lib | Shim sobre `ente-incarnate` (compatibilidad legacy) | | `ente-soma` | lib | Wrapper 44 LOC sobre `ente-incarnate` (compat API) |
| `ente-incarnate` | lib | `clone(2) + namespaces + cgroup + rlimits + cpu` | | `ente-incarnate` | lib | `clone(2) + namespaces + cgroup + rlimits + cpu` |
| `ente-snapshot` | lib | `FractalSnapshot` JSON: checkpoint del grafo Cards | | `ente-snapshot` | lib | `FractalSnapshot` JSON: checkpoint del grafo Cards |
+4 -2
View File
@@ -18,8 +18,10 @@ locales (mock o real LLM) y un protocolo `Nous` line-delimited.
- `akasha-core``protocol/brahman-card`, `protocol/brahman-sidecar`, - `akasha-core``protocol/brahman-card`, `protocol/brahman-sidecar`,
`akasha-card`, `akasha-nous`, `shuma-discern`. `akasha-card`, `akasha-nous`, `shuma-discern`.
- `akasha-nous-real``fastembed` + `ort` (heavy; profile opt-level=1 - `akasha-nous-real``fastembed` (opcional, detrás de feature
en root Cargo.toml). `embeddings`; `ort` viene transitivo). Sin feature, el crate compila
como stub mínimo. Profile opt-level=1 en root Cargo.toml para
`fastembed`/`ort`/`tokenizers`/`image`.
- Consumido por: `apps/akasha-explorer` (GPUI dashboard). - Consumido por: `apps/akasha-explorer` (GPUI dashboard).
## Estado ## Estado
+1 -1
View File
@@ -38,4 +38,4 @@ bar.on_click(|id, cx, cy| { /* center en CSS pixels */ });
## Estado ## Estado
barra-core: 5 tests verdes (sanitize + escape + render). barra-web: barra-core: 5 tests verdes (sanitize + escape + render). barra-web:
binding mínimo (mount + click + center lookup). LOC ~280. binding mínimo (mount + click + center lookup). LOC core 108 + web ~190.
+12 -3
View File
@@ -30,6 +30,15 @@ de visualización no conocen `gpui` ni `wgpu`: hablan contra el trait
## Estado ## Estado
LOC ~3,900. 5 charts implementados (cartesian/financial/stream/phosphor LOC ~4,000. **5 charts implementados** (LOC reales):
/export). 5 stubs (<50 LOC c/u: polar, heatmap, treemap, flow, mesh). - `core` 878, `render` 386, `cartesian` 1397, `financial` 688,
Roadmap: completar los 5 stubs en orden polar → heatmap → treemap. `stream` 231, `phosphor` 312, `umbrella` 53.
**6 stubs (<30 LOC c/u)** — completar:
- `polar` 16, `heatmap` 21, `treemap` 12, `flow` 16, `mesh` 28,
`export` 23 (SVG exporter no implementado pese a depender de él
el roadmap; verificar si export depende de los charts o vice versa).
Roadmap: cerrar los 6 stubs. Orden sugerido: polar → heatmap →
treemap → flow → mesh → export (este último porque depende del
renderer común).
+5 -3
View File
@@ -11,7 +11,7 @@ y los publica en un DHT. Búsqueda por similitud semántica cross-repo.
| `minga-core` | lib | Parser + α-hashing (Rust/Py/TS/JS/Go) + scoring | | `minga-core` | lib | Parser + α-hashing (Rust/Py/TS/JS/Go) + scoring |
| `minga-store` | lib | Sled backend para índice local | | `minga-store` | lib | Sled backend para índice local |
| `minga-p2p` | lib | Capa libp2p: kad + bootstrap + provider records | | `minga-p2p` | lib | Capa libp2p: kad + bootstrap + provider records |
| `minga-vfs` | lib | Stub (2 LOC) — montaje VFS de mónadas remotas | | `minga-vfs` | lib | Stub (2 LOC) — FUSE que proyecta el índice como filesystem |
| `minga-cli` | bin | CLI: index, search, peers, bootstrap | | `minga-cli` | bin | CLI: index, search, peers, bootstrap |
## Dependencias ## Dependencias
@@ -30,5 +30,7 @@ cierres en Py/TS/JS/Go.
## Estado ## Estado
LOC 5,091. Indexa repos reales. 15 TODOs en core (más patterns para LOC 5,091. Indexa repos reales. 15 TODOs en core (más patterns para
cada lenguaje). `minga-vfs` aún no implementado — gating del cada lenguaje). `minga-vfs` aún no implementado — bloquea el montaje
"file system de mónadas". Ver `docs/changelog/minga.md`. del repo como filesystem (paths virtuales → blobs por hash bajo
demanda). NO está relacionado con Mónadas (esas son de `akasha/`).
Ver `docs/changelog/minga.md`.
+1 -1
View File
@@ -37,4 +37,4 @@ if let Some(r) = deck.pointer_end(offset, width, n_pages) {
vista-core: 5 tests verdes (drag decision + snap + clamp + goto). vista-core: 5 tests verdes (drag decision + snap + clamp + goto).
vista-web: binding DOM intacto, ahora delega toda la lógica a core. vista-web: binding DOM intacto, ahora delega toda la lógica a core.
LOC 530 (core 175 + web 355). Reutilizable en backends no-web. LOC core 177 + web ~355. Reutilizable en backends no-web.
+27 -1
View File
@@ -8,7 +8,7 @@ flows por tipo, y wire types de red. No corre lógica de dominio.
| crate | tipo | rol | | crate | tipo | rol |
| ---------------------- | ---- | -------------------------------------------------------- | | ---------------------- | ---- | -------------------------------------------------------- |
| `brahman-card` | lib | `Card { soma, payload, flow, permissions, supervision }` | | `brahman-card` | lib | Struct `Card` (19 campos, ver abajo) |
| `brahman-card-wit` | lib | Extracción WIT desde componentes WASM | | `brahman-card-wit` | lib | Extracción WIT desde componentes WASM |
| `brahman-cards` | lib | Templates Nickel + helpers consumer/producer/broker | | `brahman-cards` | lib | Templates Nickel + helpers consumer/producer/broker |
| `brahman-handshake` | lib | Init↔módulo: Hello, Ping, ListSessions, ListMatches | | `brahman-handshake` | lib | Init↔módulo: Hello, Ping, ListSessions, ListMatches |
@@ -18,6 +18,32 @@ flows por tipo, y wire types de red. No corre lógica de dominio.
| `brahman-net` | lib | Malla libp2p opcional (TCP+noise+yamux+kad) | | `brahman-net` | lib | Malla libp2p opcional (TCP+noise+yamux+kad) |
| `ente-card` | lib | Alias legacy — re-export de `brahman-card` | | `ente-card` | lib | Alias legacy — re-export de `brahman-card` |
## Struct `Card` (anatomía completa)
```rust
pub struct Card {
schema_version: u16, // versión del esquema fractal
id: Ulid, // identidad opaca única
lineage: Option<Ulid>, // ancestro genealógico
label: String, // nombre humano-legible
provides: BTreeSet<Capability>,
requires: BTreeSet<Capability>,
permissions: Permissions, // sandbox declarativo
soma: SomaSpec, // runtime Linux (ns + cgroup + rlimits)
payload: Payload, // WASM | ELF | Virtual | Legacy
supervision: Supervision, // restart policy
lifecycle: Lifecycle, // ortogonal a supervision
priority: Priority,
flow: Flows, // contratos de datos in/out
service_socket: Option<PathBuf>, // data plane separado
references: Vec<CardReference>, // grafo de relaciones
kind: CardKind, // Ente | Monada | Index | ...
data: Option<DataFacet>, // None para entes runtime
genesis: Vec<Card>, // hijas a encarnar inmediatamente
priority_contexts: BTreeMap<String, ContextBias>,
}
```
## Dependencias ## Dependencias
- Intra: handshake → card + broker; sidecar → card; net → handshake. - Intra: handshake → card + broker; sidecar → card; net → handshake.
+13 -9
View File
@@ -25,16 +25,20 @@ Salida: cada crate con ≥1 test E2E + matriz de pánico.
## Hito 2 · Cerrar stubs bloqueantes (1 semana) ## Hito 2 · Cerrar stubs bloqueantes (1 semana)
| Stub | Donde | | Stub | Donde |
| ----------------------------------- | -------------------------------------- | | ----------------------------- | ------------------------------------------------------ |
| `minga-vfs` (actual: 2 LOC) | Mount FUSE de mónadas remotas | | `minga-vfs` (actual: 2 LOC) | FUSE: proyecta el índice de minga como filesystem. |
| `pineal-polar` (<50 LOC) | Gráfico circular polar | | | Resuelve paths virtuales → blobs por hash bajo demanda |
| `pineal-heatmap` (<50 LOC) | Grid 2D color-mapped | | | contra `minga-core` + DHT. NO relacionado con Mónadas. |
| `pineal-treemap` (<50 LOC) | Rectangular treemap | | `pineal-polar` (16 LOC) | Gráfico circular polar |
| `pineal-flow` (<50 LOC) | Sankey / flow diagrams | | `pineal-heatmap` (21 LOC) | Grid 2D color-mapped |
| `pineal-mesh` (<50 LOC) | Triangle mesh + barycentric | | `pineal-treemap` (12 LOC) | Rectangular treemap |
| `pineal-flow` (16 LOC) | Sankey / flow diagrams |
| `pineal-mesh` (28 LOC) | Triangle mesh + barycentric |
| `pineal-export` (23 LOC) | SVG/PNG export del RenderPlan |
Salida: 6 charts más operativos + minga viable como sistema de archivos. Salida: 6 charts más operativos + minga viable como filesystem
montable (editor abriendo paths semánticos).
## Hito 3 · Cerrar TODOs concentrados (2 semanas) ## Hito 3 · Cerrar TODOs concentrados (2 semanas)
+10 -9
View File
@@ -15,7 +15,7 @@ y `grep` sobre `src/` en cada crate (sin contar `target/` ni docs).
### `protocol/` — Estable ### `protocol/` — Estable
| LOC | Tests | TODOs | Madurez | | LOC | Tests | TODOs | Madurez |
|---|---|---|---| |---|---|---|---|
| 6,260 | sí | 19 | ★★★★☆ | | 7,278 | sí | 19 | ★★★★☆ |
Base del fractal. Handshake fase 3 (trust Ed25519) completo. Pendiente: Base del fractal. Handshake fase 3 (trust Ed25519) completo. Pendiente:
fase 4 (trust beyond peer, capabilities revocables). fase 4 (trust beyond peer, capabilities revocables).
@@ -23,7 +23,7 @@ fase 4 (trust beyond peer, capabilities revocables).
### `init/` — Funcional ### `init/` — Funcional
| LOC | Tests | TODOs | Madurez | | LOC | Tests | TODOs | Madurez |
|---|---|---|---| |---|---|---|---|
| ~3,600 | parcial | ~5 | ★★★★☆ | | 4,301 | parcial | ~5 | ★★★★☆ |
Bootea bare metal + QEMU + initramfs. Pendiente: cobertura tests sobre Bootea bare metal + QEMU + initramfs. Pendiente: cobertura tests sobre
`FractalSnapshot` restore con stale fds y validación de re-encarnación. `FractalSnapshot` restore con stale fds y validación de re-encarnación.
@@ -31,7 +31,7 @@ Bootea bare metal + QEMU + initramfs. Pendiente: cobertura tests sobre
### `runtime/` — Funcional con deuda ### `runtime/` — Funcional con deuda
| LOC | Tests | TODOs | Madurez | | LOC | Tests | TODOs | Madurez |
|---|---|---|---| |---|---|---|---|
| ~3,400 | parcial | ~14 | ★★★☆☆ | | 3,418 | parcial | ~14 | ★★★☆☆ |
`ente-brain` concentra 11 TODOs (rule engine declarativo + observer `ente-brain` concentra 11 TODOs (rule engine declarativo + observer
estadístico). `ente-bus`/`ente-cas`/`ente-wasm` estables. estadístico). `ente-bus`/`ente-cas`/`ente-wasm` estables.
@@ -39,7 +39,7 @@ estadístico). `ente-bus`/`ente-cas`/`ente-wasm` estables.
### `compat/` — Cobertura mínima viable ### `compat/` — Cobertura mínima viable
| LOC | Tests | TODOs | Madurez | | LOC | Tests | TODOs | Madurez |
|---|---|---|---| |---|---|---|---|
| ~5,000 | no (esperado) | bajo | ★★★☆☆ | | 3,435 | no (esperado) | bajo | ★★★☆☆ |
14 shims D-Bus operativos. Suficiente para GNOME/KDE/PolicyKit básicos. 14 shims D-Bus operativos. Suficiente para GNOME/KDE/PolicyKit básicos.
Pendiente: métodos avanzados (Inhibit en logind, SetVariable en localed). Pendiente: métodos avanzados (Inhibit en logind, SetVariable en localed).
@@ -63,10 +63,11 @@ shell standard. Estable.
### `modules/pineal/` — Funcional con stubs ### `modules/pineal/` — Funcional con stubs
| LOC | Tests | TODOs | Madurez | | LOC | Tests | TODOs | Madurez |
|---|---|---|---| |---|---|---|---|
| ~3,900 | sí | bajo | ★★★☆☆ | | ~4,000 | sí | bajo | ★★★☆☆ |
5 charts funcionales (cartesian, financial, stream, phosphor, export). 5 charts funcionales (`core`, `render`, `cartesian`, `financial`,
**5 stubs (<50 LOC c/u): polar, heatmap, treemap, flow, mesh.** `stream`, `phosphor`, `umbrella`).
**6 stubs (<30 LOC c/u): `polar`, `heatmap`, `treemap`, `flow`, `mesh`, `export`.**
### `modules/nakui/` — Maduro ### `modules/nakui/` — Maduro
| LOC | Tests | TODOs | Madurez | | LOC | Tests | TODOs | Madurez |
@@ -109,14 +110,14 @@ Parser + reader web. Pendiente: AST con inline elements (links, emphasis).
### `modules/vista/` — Refactorizado (2026-05-19) ### `modules/vista/` — Refactorizado (2026-05-19)
| LOC | Tests | TODOs | Madurez | | LOC | Tests | TODOs | Madurez |
|---|---|---|---| |---|---|---|---|
| 530 (175 core + 355 web) | core: 5/5 verdes | 0 | ★★★★☆ | | ~530 (177 core + ~350 web) | core: 5/5 verdes | 0 | ★★★★☆ |
`vista-core` agnóstico nuevo + `vista-web` ahora thin DOM binding. `vista-core` agnóstico nuevo + `vista-web` ahora thin DOM binding.
### `modules/barra/` — Refactorizado (2026-05-19) ### `modules/barra/` — Refactorizado (2026-05-19)
| LOC | Tests | TODOs | Madurez | | LOC | Tests | TODOs | Madurez |
|---|---|---|---| |---|---|---|---|
| 280 (90 core + 190 web) | core: 5/5 verdes | 0 | ★★★★☆ | | ~300 (108 core + ~190 web) | core: 5/5 verdes | 0 | ★★★★☆ |
`barra-core` agnóstico nuevo (Task + render_html). `barra-web` `barra-core` agnóstico nuevo (Task + render_html). `barra-web`
delega al core. delega al core.