gioser

tawasuyu/brahman

Rust 326TOML 123JSON 14Markdown 114552 Definiciones

⎇ 3f8a3ea4b6d3de529e42ae418d486bc81cca308e vamos.txt 899 líneas · 66.3 KB Historia crudo

feat(dominium): dominium-physics — ciclo del motor (difusión + tick) cd3b41a40 · sergio ·

1
2● Reporte técnico — Monorepo Brahman
3
4  Estado al 2026-05-19 · 126 crates · ~78,000 LOC · cargo check --workspace verde
5
6  ---
7  0 · Panorama
8
9  Sistema operativo fractal en Rust: cada cómputo se modela como Card, los módulos
10   se acoplan sólo vía contratos serializables (brahman-card), el aislamiento es
11  uniforme (ente-incarnate), y el routing es un service-locator de tipos
12  (brahman-broker). El monorepo se reorganizó hoy en 6 capas físicas:
13
14  crates/
15  ├── protocol/    9 crates · contratos + routing
16  ├── init/        5 crates · PID 1 + encarnación Linux
17  ├── runtime/     5 crates · bus + cas + wasm + brain
18  ├── compat/    14 crates · shims D-Bus systemd
19  ├── modules/   62 crates · funcionalidad de dominio
20  └── apps/      23 crates · binarios finales
21
22  ---
23  1 · Capa protocol/ — 6,260 LOC · ★★★★☆
24
25  ┌─────────────────┬──────┬──────┬──────┬──────────────────────────────────┐
26  │      crate      │ LOC  │ test │ TODO │               rol                │
27  │                 │      │  s   │  s   │                                  │
28  ├─────────────────┼──────┼──────┼──────┼──────────────────────────────────┤
29  │ brahman-card    │ 1,29 │ sí   │ 5    │ Card { soma, payload, flow,      │
30  │                 │ 0    │      │      │ permissions, ... }               │
31  ├─────────────────┼──────┼──────┼──────┼──────────────────────────────────┤
32  │ brahman-card-wi │ 165  │ sí   │ 0    │ Extracción WIT desde componentes │
33  │ t               │      │      │      │  WASM                            │
34  ├─────────────────┼──────┼──────┼──────┼──────────────────────────────────┤
35  │ brahman-cards   │ 643  │ sí   │ 2    │ Templates Nickel + helpers       │
36  │                 │      │      │      │ consumer/producer/broker         │
37  ├─────────────────┼──────┼──────┼──────┼──────────────────────────────────┤
38  │ brahman-handsha │ 2,94 │ sí   │ 10   │ Init↔módulo: Hello/Ping/ListSess │
39  │ ke              │ 2    │      │      │ ions/ListMatches                 │
40  ├─────────────────┼──────┼──────┼──────┼──────────────────────────────────┤
41  │ brahman-broker  │ 995  │ sí   │ 2    │ Matching híbrido (Exact +        │
42  │                 │      │      │      │ Structural)                      │
43  ├─────────────────┼──────┼──────┼──────┼──────────────────────────────────┤
44  │ brahman-admin   │ 225  │ no   │ 0    │ Socket admin para snapshots      │
45  ├─────────────────┼──────┼──────┼──────┼──────────────────────────────────┤
46  │ brahman-sidecar │ 565  │ sí   │ 0    │ spawn(card) para apps            │
47  ├─────────────────┼──────┼──────┼──────┼──────────────────────────────────┤
48  │ brahman-net     │ 423  │ no   │ 0    │ libp2p                           │
49  │                 │      │      │      │ (TCP+noise+yamux+kad+identify)   │
50  ├─────────────────┼──────┼──────┼──────┼──────────────────────────────────┤
51  │ ente-card       │ —    │ —    │ —    │ Alias legacy (re-export)         │
52  └─────────────────┴──────┴──────┴──────┴──────────────────────────────────┘
53
54  Hecho. Handshake fase 1–3 (libp2p stream → DHT discovery → trust Ed25519).
55  Broker emparejando con dos estrategias. Sidecar reusable por todas las apps.
56  Allowlist/denylist con hot reload <250ms.
57
58  Pendiente. Fase 4 trust: capabilities revocables, beyond-peer (delegación),
59  métricas exportables. Tests faltan en brahman-admin (lo único sin cobertura).
60
61  ---
62  2 · Capa init/ — ~3,600 LOC · ★★★★☆
63
64  ┌────────────────┬──────┬────────────────────────────────────────────────────┐
65  │     crate      │ tipo │                        rol                         │
66  ├────────────────┼──────┼────────────────────────────────────────────────────┤
67  │ ente-zero      │ bin  │ PID 1: reap loop + bus + handshake server +        │
68  │                │      │ brahman-net opc.                                   │
69  ├────────────────┼──────┼────────────────────────────────────────────────────┤
70  │ ente-kernel    │ lib  │ bootstrap_kernel_surface, subreaper,               │
71  │                │      │ SIGCHLD/uevent streams                             │
72  ├────────────────┼──────┼────────────────────────────────────────────────────┤
73  │ ente-soma      │ lib  │ Wrapper ~30 LOC sobre ente-incarnate (compat API   │
74  │                │      │ histórica)                                         │
75  ├────────────────┼──────┼────────────────────────────────────────────────────┤
76  │ ente-incarnate │ lib  │ clone(2) + namespaces + cgroup + rlimits + cpu +   │
77  │                │      │ child_pre_exec                                     │
78  ├────────────────┼──────┼────────────────────────────────────────────────────┤
79  │ ente-snapshot  │ lib  │ FractalSnapshot JSON (v1–v4 con forward-compat)    │
80  └────────────────┴──────┴────────────────────────────────────────────────────┘
81
82  Hecho. Bootea bare metal + QEMU + initramfs (documentado en docs/arje-boot.md).
83  ente-incarnate con builder pattern, ChildStdio + ChildPreExec declarativo,
84  async-signal-safe. Snapshot v4 con replay buffer persistido + live pipelines.
85
86  Pendiente. Cobertura de tests sobre snapshot restore con stale fds. Validación
87  de re-encarnación tras restore.
88
89  ---
90  3 · Capa runtime/ — ~3,400 LOC · ★★★☆☆
91
92  ┌────────────┬───────────────────────────────────────────────────────┬───────┐
93  │   crate    │                          rol                          │ TODOs │
94  ├────────────┼───────────────────────────────────────────────────────┼───────┤
95  │ ente-bus   │ Unix SOCK_STREAM + postcard.                          │ 1     │
96  │            │ Announce/Invoke/ListEntes                             │       │
97  ├────────────┼───────────────────────────────────────────────────────┼───────┤
98  │ ente-cas   │ SHA-256 content-addressed: blobs Wasm + audit log     │ 0     │
99  ├────────────┼───────────────────────────────────────────────────────┼───────┤
100  │ ente-wasm  │ Encarna Payload::Wasm vía wasmi en thread dedicado    │ 1     │
101  ├────────────┼───────────────────────────────────────────────────────┼───────┤
102  │ ente-brain │ Rule engine + observer estadístico + audit chain      │ 11    │
103  ├────────────┼───────────────────────────────────────────────────────┼───────┤
104  │ ente-echo  │ Ente prueba — Capability::Endpoint(echo)              │ 1     │
105  └────────────┴───────────────────────────────────────────────────────┴───────┘
106
107  Hecho. Bus + CAS + wasm operativos. SO_PEERCRED para identidad. Audit chain
108  hashea cada evento del bus al CAS.
109
110  Pendiente crítico. ente-brain concentra el 78% de la deuda técnica de esta capa:
111   el rule engine declarativo está parcialmente implementado, falta el evaluador
112  completo de policies + observer cross-ente.
113
114  ---
115  4 · Capa compat/ — ~5,000 LOC · ★★★☆☆
116
117  14 shims D-Bus operativos como binarios standalone. Suficiente para que
118  desktop-file-utils, xdg-open, gnome-session, login managers y CLIs systemd-aware
119   no rompan al arrancar sobre ente-zero.
120
121  Hecho. Cada shim reclama un well-known name (org.freedesktop.X1), implementa la
122  interfaz mínima del ecosistema, loggea al audit de ente-brain.
123
124  Pendiente. Métodos avanzados — Inhibit/Sleep hooks en logind, SetVariable en
125  localed, MachineImage operations en machined. Necesarios para correr GNOME Shell
126   end-to-end sin parches.
127
128  ---
129  5 · modules/semantic_dht/ (minga) — 5,091 LOC · ★★★★☆
130
131  ┌─────────────┬───────┬──────────────────────────────────────────────┐
132  │    crate    │  LOC  │                     rol                      │
133  ├─────────────┼───────┼──────────────────────────────────────────────┤
134  │ minga-core  │ 3,085 │ Parser tree-sitter + α-hashing (5 lenguajes) │
135  ├─────────────┼───────┼──────────────────────────────────────────────┤
136  │ minga-p2p   │ 1,105 │ libp2p kad + bootstrap + provider records    │
137  ├─────────────┼───────┼──────────────────────────────────────────────┤
138  │ minga-store │ 425   │ Sled backend para índice local               │
139  ├─────────────┼───────┼──────────────────────────────────────────────┤
140  │ minga-cli   │ 474   │ CLI: index, search, peers, bootstrap         │
141  ├─────────────┼───────┼──────────────────────────────────────────────┤
142  │ minga-vfs   │ 2     │ STUB — Mount FUSE de mónadas remotas         │
143  └─────────────┴───────┴──────────────────────────────────────────────┘
144
145  Hecho. α-hashing cubre Rust (let-else, if-let, or-patterns, let-chains), Python,
146   TypeScript, JavaScript, Go. Indexa repos reales. DHT publica + descubre via
147  kad. 15 TODOs en core (más patterns para edge cases).
148
149  Bloqueante para uso end-to-end. minga-vfs es stub de 2 LOC. Sin él no hay forma
150  de montar las mónadas indexadas como filesystem navegable.
151
152  ---
153  6 · modules/nahual/ (ex-yahweh) — 15,968 LOC · ★★★★★
154
155  Framework GPUI backbone del monorepo.
156
157  Libs (núcleo, 8 crates): core, theme, launcher, bus, meta-schema, meta-runtime,
158  providers/{fs,sqlite}. Tema persistente entre runs, MetaUi declarativa,
159  providers de datos.
160
161  Widgets (12 crates): tree, container_core, splitter, tabs, tiled, text_input,
162  meta-form, banner, card, stat-card, app-header, theme-switcher. Cada uno <500
163  LOC, reusable individualmente.
164
165  Hecho. Tests E2E con gpui::TestAppContext. nahual-shell define el patrón
166  estándar de explorer (sidebar+main+status+hot-reload). Consumido por 5 explorers
167   + cosmobiologia.
168
169  Pendiente. Mantenimiento. Documentar el patrón "explorer estándar" como guía de
170  extensión.
171
172  ---
173  7 · modules/pineal/ (ex-lapaloma) — ~3,900 LOC · ★★★☆☆
174
175  13 crates de data-viz con backends pluggables (CPU+GPUI, GPU stub, SVG export).
176
177  Funcionales (5 charts): core (878), render (386), cartesian (1397), financial
178  (688), stream (231), phosphor (312), export.
179
180  Stubs (<50 LOC c/u): polar, heatmap, treemap, flow, mesh.
181
182  Hecho. Trait Canvas agnóstico, RenderPlan con RenderCmd variants, backend GPUI
183  completo. Cartesian con axes + viewport + series. Financial con candlestick +
184  OHLC. Streaming a 60Hz con phosphor trail (alpha decay).
185
186  Pendiente. Cerrar los 5 stubs en orden polar → heatmap → treemap → flow → mesh.
187
188  ---
189  8 · modules/nakui/ — 7,063 LOC · ★★★★☆
190
191  ERP categórico: entidades = objetos, morfismos = operaciones de negocio.
192
193  Hecho. Schema declarativo Nickel (migrado de KCL). Event log con replay al
194  startup. Snapshot/compaction automático. Validación FieldKind cross-field. 6
195  módulos ERP estándar incluidos como ejemplos. CRUD completo + Action::Morphism
196  wired al pipeline.
197
198  Pendiente. Documentar el patrón de morfismos en Nickel como guía para extender
199  el ERP a dominios nuevos.
200
201  ---
202  9 · modules/akasha/ (ex-nouser) — 4,395 LOC · ★★★☆☆
203
204  ┌──────────────────┬───────┬────────────────────────────────────────────────┐
205  │      crate       │  LOC  │                      rol                       │
206  ├──────────────────┼───────┼────────────────────────────────────────────────┤
207  │ akasha-core      │ 2,215 │ Daemon: scanner FS + DB sled + cluster k-means │
208  ├──────────────────┼───────┼────────────────────────────────────────────────┤
209  │ akasha-card      │ 709   │ Card del daemon + capabilities                 │
210  ├──────────────────┼───────┼────────────────────────────────────────────────┤
211  │ akasha-nous      │ (lib) │ Protocolo Nous (JSON line-delimited)           │
212  ├──────────────────┼───────┼────────────────────────────────────────────────┤
213  │ akasha-nous-mock │ (bin) │ Embeddings deterministas (testing)             │
214  ├──────────────────┼───────┼────────────────────────────────────────────────┤
215  │ akasha-nous-real │ 642   │ Embeddings con fastembed + ort                 │
216  └──────────────────┴───────┴────────────────────────────────────────────────┘
217
218  Hecho. Pipeline scan+embed+cluster funcional. notify watcher con debounce +
219  re-publish al broker. Hidratación vía sled + path_hint. Centroid model
220  versionado. Cache de embeddings con write-through al CAS de arje.
221
222  Pendiente crítico. Tests sobre cluster.rs (k-means actual es naive). Manejo de
223  drift de embeddings cuando cambia el modelo subyacente.
224
225  ---
226  10 · modules/shuma/ (ex-shipote) — 6,907 LOC · ★★★★☆
227
228  ┌────────────────┬───────┬───────────────────────────────────────────────────┐
229  │     crate      │  LOC  │                        rol                        │
230  ├────────────────┼───────┼───────────────────────────────────────────────────┤
231  │ shuma-core     │ 3,518 │ WorkspaceManager + pipeline + persist +           │
232  │                │       │ flow_channel                                      │
233  ├────────────────┼───────┼───────────────────────────────────────────────────┤
234  │ shuma-card     │ 655   │ WorkspaceSpec + PipelineSpec + ExitPolicy +       │
235  │                │       │ DiscernPolicy                                     │
236  ├────────────────┼───────┼───────────────────────────────────────────────────┤
237  │ shuma-protocol │ 444   │ Wire postcard length-prefixed                     │
238  ├────────────────┼───────┼───────────────────────────────────────────────────┤
239  │ shuma-discern  │ 307   │ DiscernPipeline + MagicBytes/Card/Json/Toml/Utf8  │
240  │                │       │ probes                                            │
241  └────────────────┴───────┴───────────────────────────────────────────────────┘
242
243  Hecho. 20 fases completadas (A→S, ver docs/changelog/shuma.md):
244  - A: 9 crates iniciales + smoke E2E
245  - B: pipelines con discern enrichment
246  - C: pipeline aislado con O_CLOEXEC + TTL + persistencia
247  - D: snapshot v2 + saved pipelines + log capture
248  - E: stderr separado + fan-out 1→N + tap→broker
249  - F: data plane vivo (FlowChannel con accept loop)
250  - G: replay buffer + templating + child_pre_exec declarativo
251  - H: stats memory+CPU + stop graceful + replay configurable
252  - I: memory.peak + pipeline stop selectivo + sparkline shell
253  - J: CPU% multi-core + pipeline --tail + replay por bytes
254  - K: cpu_cores + quota report + restart-on-failure
255  - L: quota enforcement + cgroup memory.max + pipeline restart
256  - M: backoff exponencial + quota breaches card + logs --follow
257  - N: drain shutdown + snapshot v3 live_pipelines + batched query
258  - O: collision detection sockets + stats history server-side
259  - P: throughput metering + stats history persistido + auth SO_PEERCRED
260  - Q: throughput card + rate-limit token-bucket + snapshot incremental
261  - R: health endpoint + audit log tracing + token bucket real
262  - S: audit log persistente + HTTP/JSON gateway
263
264  Pendiente. Auth en gateway (token, mTLS). Rotación de audit.log con N backups.
265  WIT contracts reales. shipote-shell click handler. Métricas Prometheus.
266
267  ---
268  11 · modules/gioser/ — 2,535 LOC · ★★★★★
269
270  5 crates agnósticos (geom, physics, palette, shaders, canvas-web) + cdylib
271  apps/gioser-web. Landing personal con chacana 3D + tilt físico al mouse + 4 tips
272   elementales en Markdown.
273
274  Hecho. Operativa. Build pipeline scripts/build-gioser-web.sh. Tests sobre
275  geom/physics/palette puros. 0 TODOs.
276
277  ---
278  12 · modules/pluma/ — 178 LOC · ★★★☆☆
279
280  ┌──────────────────┬─────┬───────────────────────────────────────┐
281  │      crate       │ LOC │                  rol                  │
282  ├──────────────────┼─────┼───────────────────────────────────────┤
283  │ pluma-md         │ 90  │ Wrapper pulldown-cmark con AST simple │
284  ├──────────────────┼─────┼───────────────────────────────────────┤
285  │ pluma-reader-web │ 88  │ Reader DOM: fetch + inject + theming  │
286  └──────────────────┴─────┴───────────────────────────────────────┘
287
288  Pendiente. AST con inline elements (links, emphasis) accesibles desde Rust. Sin
289  tests (todavía).
290
291  ---
292  13 · modules/vista/ — 530 LOC · ★★★★☆ (NUEVO HOY)
293
294  ┌────────────┬─────┬───────┬────────────────────────────────────────────┐
295  │   crate    │ LOC │ tests │                    rol                     │
296  ├────────────┼─────┼───────┼────────────────────────────────────────────┤
297  │ vista-core │ 175 │ 5/5   │ DeckState agnóstico + snap + drag decision │
298  ├────────────┼─────┼───────┼────────────────────────────────────────────┤
299  │ vista-web  │ 355 │ —     │ Binding DOM (PointerEvent → DeckState)     │
300  └────────────┴─────┴───────┴────────────────────────────────────────────┘
301
302  Hecho hoy. Lógica de snap (umbral 8px + bias 1.3) y máquina de estados
303  (pointer_down/move/end → DragOutcome) extraída a core agnóstico. vista-web pasa
304  a binding fino. Reusable en backends no-web.
305
306  ---
307  14 · modules/barra/ — 280 LOC · ★★★★☆ (NUEVO HOY)
308
309  ┌────────────┬─────┬───────┬─────────────────────────────────────────────┐
310  │   crate    │ LOC │ tests │                     rol                     │
311  ├────────────┼─────┼───────┼─────────────────────────────────────────────┤
312  │ barra-core │ 90  │ 5/5   │ Task + render_html + sanitize + escape      │
313  ├────────────┼─────┼───────┼─────────────────────────────────────────────┤
314  │ barra-web  │ 190 │ —     │ Mount sobre <ul> + click delegate + centers │
315  └────────────┴─────┴───────┴─────────────────────────────────────────────┘
316
317  Hecho hoy. Modelo Task + render HTML puro extraído a core. barra-web mantiene
318  mount/click/lookups DOM intrínsecos.
319
320  ---
321  15 · modules/cosmobiologia/ — 21,502 LOC · ★★★☆☆
322
323  Crate más grande del monorepo. 11 sub-crates.
324
325  ┌──────────────────────────────────┬────────┬─────────┬───────┐
326  │              crate               │  LOC   │  tests  │ TODOs │
327  ├──────────────────────────────────┼────────┼─────────┼───────┤
328  │ cosmobiologia-canvas             │ 2,850  │ no      │ —     │
329  ├──────────────────────────────────┼────────┼─────────┼───────┤
330  │ cosmobiologia-engine             │ 2,687  │ sí      │ 12    │
331  ├──────────────────────────────────┼────────┼─────────┼───────┤
332  │ cosmobiologia-tree               │ 2,295  │ no      │ —     │
333  ├──────────────────────────────────┼────────┼─────────┼───────┤
334  │ cosmobiologia-render             │ 1,474  │ sí      │ —     │
335  ├──────────────────────────────────┼────────┼─────────┼───────┤
336  │ cosmobiologia-panel              │ 1,037  │ sí      │ —     │
337  ├──────────────────────────────────┼────────┼─────────┼───────┤
338  │ cosmobiologia-modules            │ 955    │ —       │ —     │
339  ├──────────────────────────────────┼────────┼─────────┼───────┤
340  │ cosmobiologia-store              │ 760    │ sí      │ —     │
341  ├──────────────────────────────────┼────────┼─────────┼───────┤
342  │ (resto: model, theme, card, web) │ ~1,000 │ parcial │ —     │
343  └──────────────────────────────────┴────────┴─────────┴───────┘
344
345  Hecho. Render agnóstico (DrawCommand + compose_wheel) con dos backends: GPUI
346  nativo + WASM SVG. App standalone funcional. Server HTTP single-user con CRUD.
347  Cliente web demo SSR. Crate WASM con fallback inteligente. Compose wheel rico
348  (palette + dial 3D + spread + coord labels).
349
350  Pendiente (roadmap del proyecto):
351
352  ┌───────┬──────────────────────────────────┬─────────────────────────┐
353  │   #   │               área               │    crates afectados     │
354  ├───────┼──────────────────────────────────┼─────────────────────────┤
355  │ 55-62 │ Sistema GR (8 tareas)            │ engine + canvas + panel │
356  ├───────┼──────────────────────────────────┼─────────────────────────┤
357  │ 63    │ FFT armónico                     │ engine + modules        │
358  ├───────┼──────────────────────────────────┼─────────────────────────┤
359  │ 64-65 │ Research bank (corpus + queries) │ store + engine          │
360  ├───────┼──────────────────────────────────┼─────────────────────────┤
361  │ 66    │ 3D celestial sphere              │ render + canvas         │
362  ├───────┼──────────────────────────────────┼─────────────────────────┤
363  │ 67    │ Rectificador automático          │ engine + modules        │
364  └───────┴──────────────────────────────────┴─────────────────────────┘
365
366  ---
367  16 · apps/ — 23 binarios
368
369  ┌───────────────┬────────────────────────────────────────────────────────────┐
370  │   categoría   │                            apps                            │
371  ├───────────────┼────────────────────────────────────────────────────────────┤
372  │ Protocol      │ brahman-broker-explorer, brahman-demo                      │
373  ├───────────────┼────────────────────────────────────────────────────────────┤
374  │               │ nahual-shell, nahual-file-explorer,                        │
375  │ Nahual suite  │ nahual-database-explorer, nahual-text-viewer,              │
376  │               │ nahual-image-viewer                                        │
377  ├───────────────┼────────────────────────────────────────────────────────────┤
378  │ Akasha        │ akasha-explorer                                            │
379  ├───────────────┼────────────────────────────────────────────────────────────┤
380  │ Nakui         │ nakui-ui, nakui-explorer                                   │
381  ├───────────────┼────────────────────────────────────────────────────────────┤
382  │ Minga         │ minga-explorer                                             │
383  ├───────────────┼────────────────────────────────────────────────────────────┤
384  │ Shuma         │ shuma-daemon, shuma-cli, shuma-gateway, shuma-shell        │
385  ├───────────────┼────────────────────────────────────────────────────────────┤
386  │ Pineal demos  │ pineal-demo, pineal-stream-demo, pineal-phosphor-demo,     │
387  │               │ pineal-financial-demo                                      │
388  ├───────────────┼────────────────────────────────────────────────────────────┤
389  │ Web           │ gioser-web (cdylib)                                        │
390  ├───────────────┼────────────────────────────────────────────────────────────┤
391  │ Cosmobiología │ cosmobiologia (GPUI), cosmobiologia-cli,                   │
392  │               │ cosmobiologia-server                                       │
393  └───────────────┴────────────────────────────────────────────────────────────┘
394
395  ---
396  17 · Tooling y artefactos cross-cutting
397
398  scripts/
399  ├── reorg.py              ← migración monorepo (hoy)
400  ├── split-changelog.py    ← partición CHANGELOG (hoy)
401  ├── bootstrap-demo.sh     ← escenario reproducible
402  ├── build-arje-initrd.sh  ← initramfs CPIO+gzip musl-static
403  ├── build-gioser-web.sh   ← WASM + wasm-bindgen
404  ├── install-arje-as-init.sh, uninstall-arje.sh
405  └── run-arje-qemu.sh
406
407  seeds/
408  ├── arje-minimal.card.json  ← shell bare
409  ├── arje-host.card.json     ← full host (13 sub-cards)
410  └── arje-prod.card.json     ← 15 sub-cards prod (tmpfiles, binfmt, daemons,
411  getty)
412
413  docs/
414  ├── STATUS.md, ROADMAP.md  ← global (hoy)
415  ├── arje-boot.md           ← initrd + QEMU + bare metal
416  ├── arje-replace-systemd.md
417  └── changelog/             ← 7 buckets por proyecto (hoy)
418
419  ---
420  18 · Métricas agregadas
421
422  ┌───────────────────────┬────────────────────────────────────────────────────┐
423  │       dimensión       │                       valor                        │
424  ├───────────────────────┼────────────────────────────────────────────────────┤
425  │ Total crates          │ 126                                                │
426  ├───────────────────────┼────────────────────────────────────────────────────┤
427  │ Binarios [[bin]]      │ 35                                                 │
428  ├───────────────────────┼────────────────────────────────────────────────────┤
429  │ Librerías             │ 89                                                 │
430  ├───────────────────────┼────────────────────────────────────────────────────┤
431  │ cdylib (WASM)         │ 2 (gioser-web, cosmobiologia-web)                  │
432  ├───────────────────────┼────────────────────────────────────────────────────┤
433  │ LOC totales           │ ~78,000                                            │
434  ├───────────────────────┼────────────────────────────────────────────────────┤
435  │ Crates con tests      │ 65 / 126 (52%) — esperable, compat shims sin tests │
436  ├───────────────────────┼────────────────────────────────────────────────────┤
437  │ TODOs/FIXMEs/todo!()  │ 155 total · 78% concentrado en 4 crates            │
438  ├───────────────────────┼────────────────────────────────────────────────────┤
439  │ Cobertura cargo check │ 100% (workspace verde)                             │
440  └───────────────────────┴────────────────────────────────────────────────────┘
441
442  Concentración de deuda técnica:
443  - cosmobiologia-engine: 12 TODOs (sistema GR, harmonics)
444  - ente-brain: 11 TODOs (rule engine)
445  - brahman-handshake: 10 TODOs (trust fase 4)
446  - shuma-core: 14 TODOs (supervisión avanzada)
447  - Otros 65 crates: 108 TODOs distribuidos
448
449  ---
450  19 · Plan global a finalización
451
452  Orden topológico (bottom-up del stack), con dependencias declaradas.
453
454  Hito 1 · Cobertura crítica (semana 1-2)
455
456  Cierra los gaps donde el código existe pero no hay tests, antes de añadir
457  features sobre código no validado.
458
459  ┌───────────────────────────────────────────┬───────────────┬───────────────┐
460  │                   tarea                   │     crate     │  desbloquea   │
461  ├───────────────────────────────────────────┼───────────────┼───────────────┤
462  │ Tests E2E sobre cosmobiologia-canvas      │ cosmo-canvas  │ confianza UI  │
463  ├───────────────────────────────────────────┼───────────────┼───────────────┤
464  │ Tests E2E sobre cosmobiologia-tree        │ cosmo-tree    │ confianza UI  │
465  ├───────────────────────────────────────────┼───────────────┼───────────────┤
466  │ Tests sobre akasha-core::cluster          │ akasha-core   │ drift         │
467  │ (k-means)                                 │               │ handling      │
468  ├───────────────────────────────────────────┼───────────────┼───────────────┤
469  │ Tests FractalSnapshot restore con stale   │ ente-snapshot │ resiliencia   │
470  │ fds                                       │               │               │
471  ├───────────────────────────────────────────┼───────────────┼───────────────┤
472  │ Tests sobre brahman-admin (único protocol │ brahman-admin │ cierre suite  │
473  │  sin tests)                               │               │               │
474  └───────────────────────────────────────────┴───────────────┴───────────────┘
475
476  Salida: ≥1 test por crate sin cobertura actual + matriz de panics.
477
478  Hito 2 · Cerrar stubs bloqueantes (semana 2-3)
479
480  ┌────────────────┬───────────────────┬───────────────────────────────┐
481  │      stub      │ LOC actual → meta │            impacto            │
482  ├────────────────┼───────────────────┼───────────────────────────────┤
483  │ minga-vfs      │ 2 → ~600          │ Mount FUSE de mónadas remotas │
484  ├────────────────┼───────────────────┼───────────────────────────────┤
485  │ pineal-polar   │ <50 → ~300        │ Coord polar funcional         │
486  ├────────────────┼───────────────────┼───────────────────────────────┤
487  │ pineal-heatmap │ <50 → ~250        │ Grid 2D color-mapped          │
488  ├────────────────┼───────────────────┼───────────────────────────────┤
489  │ pineal-treemap │ <50 → ~300        │ Rectangular treemap           │
490  ├────────────────┼───────────────────┼───────────────────────────────┤
491  │ pineal-flow    │ <50 → ~400        │ Sankey diagrams               │
492  ├────────────────┼───────────────────┼───────────────────────────────┤
493  │ pineal-mesh    │ <50 → ~250        │ Triangle mesh + barycentric   │
494  └────────────────┴───────────────────┴───────────────────────────────┘
495
496  Bloqueante de minga-vfs: estabilizar tras Hito 1 (sin tests es prematuro).
497
498  Hito 3 · Cerrar TODOs concentrados (semana 3-5, paralelo)
499
500  Tres tracks independientes, paralelizables:
501
502  Track A — Brain rule engine (ente-brain, 11 TODOs)
503  - Evaluador completo de policies declarativas
504  - Observer estadístico cross-ente (Bayesian update)
505  - Reglas como Cards (recursión: policies son módulos)
506
507  Track B — Shuma supervisión (shuma-core, 14 TODOs)
508  - Auth gateway (token via env / mTLS)
509  - Rotación audit.log con N backups
510  - WIT contracts reales sobre flow types
511  - Métricas exportables (Prometheus endpoint)
512  - shipote-shell click handler
513
514  Track C — Handshake fase 4 (brahman-handshake, 10 TODOs)
515  - Capabilities revocables
516  - Trust beyond peer (delegación)
517  - Métricas + audit chain hacia brain
518
519  Hito 4 · Cosmobiología innovaciones (semana 4-7)
520
521  Roadmap del proyecto, 5 áreas:
522
523  1. Sistema GR (#55-#62) — dual-ring directas+conversas, scrubbing live, HUD
524  triggers, modo rectificación. Requiere expansión de cosmobiologia-engine +
525  cosmobiologia-panel.
526  2. FFT armónico (#63) — detección automática de ciclos en órbitas. Sobre
527  cosmobiologia-modules.
528  3. Research bank (#64-#65) — corpus de cartas + queries. Sobre
529  cosmobiologia-store + cosmobiologia-engine.
530  4. 3D celestial sphere (#66) — renderer esférico vs el 2D actual. Sobre
531  cosmobiologia-render + cosmobiologia-canvas.
532  5. Rectificador automático (#67) — ajuste de hora natal vía eventos confirmados.
533   Sobre cosmobiologia-engine + cosmobiologia-modules.
534
535  Hito 5 · Compat avanzado systemd (semana 5-7, paralelo a Hitos 3-4)
536
537  ┌──────────────────────┬──────────────────────┬────────────────────┐
538  │         shim         │   método pendiente   │     desbloquea     │
539  ├──────────────────────┼──────────────────────┼────────────────────┤
540  │ ente-logind-compat   │ Inhibit, Sleep hooks │ GNOME power mgmt   │
541  ├──────────────────────┼──────────────────────┼────────────────────┤
542  │ ente-localed-compat  │ SetVariable          │ apps con locale UI │
543  ├──────────────────────┼──────────────────────┼────────────────────┤
544  │ ente-machined-compat │ MachineImage ops     │ nspawn workflows   │
545  └──────────────────────┴──────────────────────┴────────────────────┘
546
547  Meta: GNOME Shell arrancable sobre ente-zero sin parches.
548
549  Hito 6 · Polish + DX + onboarding (semana 7-8)
550
551  - scripts/check.sh que corra fmt + clippy + test --workspace
552  - Aliases legacy de binario: shipote → shuma, yahweh → nahual
553  - README raíz que apunte a los 16 SDDs y al ROADMAP
554  - Actualizar seeds/arje-*.card.json con nombres nuevos
555  - Pluma AST con inline elements completos
556
557  ---
558  20 · Diagrama de dependencias del stack
559
560                      ┌──────────────┐
561                      │  apps/ (23)  │
562                      └──────┬───────┘
563                             ↓
564              ┌──────────────────────────────┐
565              │       modules/ (62)          │
566              │                              │
567              │  cosmobiologia ←──────┐      │
568              │       ↓               │      │
569              │  nahual + pineal      │      │
570              │       ↓               │      │
571              │  shuma  akasha  nakui │      │
572              │       minga           │      │
573              │  gioser pluma vista   │      │
574              │  barra                │      │
575              └──────────────┬────────────┬──┘
576                             ↓            │
577                      ┌─────────────┐     │
578                      │  runtime/   │←────┘
579                      │ bus·cas·    │
580                      │ wasm·brain  │
581                      └──────┬──────┘
582                             ↓
583                      ┌─────────────┐
584                      │   init/     │
585                      │ ente-zero,  │
586                      │ kernel,     │
587                      │ incarnate   │
588                      └──────┬──────┘
589                             ↓
590                      ┌─────────────────┐
591                      │   protocol/     │
592                      │ card·handshake· │
593                      │ broker·sidecar  │ ← TODOS dependen de esto
594                      │ net             │
595                      └─────────────────┘
596
597                      [compat/ corre en paralelo, consume bus/card]
598
599  ---
600  21 · Cronograma global
601
602  sem 1     sem 2     sem 3     sem 4     sem 5     sem 6     sem 7     sem 8
603  ├─Hito1──►
604            ├─Hito2──►
605                      ├─Hito3 Track A (brain)──────────────►
606                      ├─Hito3 Track B (shuma)──────────────►
607                      ├─Hito3 Track C (handshake)──────────►
608                                ├─Hito4 (cosmo innov)─────────────────►
609                                          ├─Hito5 (compat avanzado)──►
610                                                              ├─Hito6 (polish)─►
611
612  Solo persona: ~7-8 semanas continuas. Paralelizado (3 tracks Hito 3 + Hito 4 +
613  Hito 5 disjuntos): ~3-4 semanas.
614
615  ---
616  22 · Bloqueantes críticos (vigilar)
617
618  1. minga-vfs stub → sin él el sistema de archivos de mónadas no existe → bloquea
619   akasha como fuente de datos integrada.
620  2. ente-brain rule engine parcial → sin él, la observabilidad fractal es opaca →
621   bloquea decisiones políticas autónomas del Init.
622  3. Cosmobiología canvas/tree sin tests → 5,145 LOC de UI sin red de seguridad →
623  cualquier refactor en GPUI es riesgoso.
624  4. Compat shims básicos → Inhibit/SetVariable/MachineImage faltan → GNOME no es
625  estable sobre arje.
626
627  ---
628  23 · Resumen de un vistazo
629
630  ┌───────────────┬─────────┬────────┬───────┬─────────────────────────────────┐
631  │  capa/módulo  │ madurez │  LOC   │ tests │        acción siguiente         │
632  ├───────────────┼─────────┼────────┼───────┼─────────────────────────────────┤
633  │ protocol      │ ★★★★☆   │ 6,260  │ sí    │ fase 4 trust (Hito 3C)          │
634  ├───────────────┼─────────┼────────┼───────┼─────────────────────────────────┤
635  │ init          │ ★★★★☆   │ 3,600  │ parc. │ snapshot restore tests (H1)     │
636  ├───────────────┼─────────┼────────┼───────┼─────────────────────────────────┤
637  │ runtime       │ ★★★☆☆   │ 3,400  │ parc. │ brain rule engine (H3A)         │
638  ├───────────────┼─────────┼────────┼───────┼─────────────────────────────────┤
639  │ compat        │ ★★★☆☆   │ 5,000  │ no    │ métodos avanzados (H5)          │
640  ├───────────────┼─────────┼────────┼───────┼─────────────────────────────────┤
641  │ minga         │ ★★★★☆   │ 5,091  │ sí    │ vfs (H2) ◄ BLOQUEANTE           │
642  ├───────────────┼─────────┼────────┼───────┼─────────────────────────────────┤
643  │ nahual        │ ★★★★★   │ 15,968 │ E2E   │ mantenimiento                   │
644  ├───────────────┼─────────┼────────┼───────┼─────────────────────────────────┤
645  │ pineal        │ ★★★☆☆   │ 3,900  │ sí    │ 5 stubs (H2)                    │
646  ├───────────────┼─────────┼────────┼───────┼─────────────────────────────────┤
647  │ nakui         │ ★★★★☆   │ 7,063  │ sí    │ docs morfismos (H6)             │
648  ├───────────────┼─────────┼────────┼───────┼─────────────────────────────────┤
649  │ akasha        │ ★★★☆☆   │ 4,395  │ parc. │ cluster tests (H1)              │
650  ├───────────────┼─────────┼────────┼───────┼─────────────────────────────────┤
651  │ shuma         │ ★★★★☆   │ 6,907  │ sí    │ auth gateway (H3B)              │
652  ├───────────────┼─────────┼────────┼───────┼─────────────────────────────────┤
653  │ gioser        │ ★★★★★   │ 2,535  │ sí    │ estable                         │
654  ├───────────────┼─────────┼────────┼───────┼─────────────────────────────────┤
655  │ pluma         │ ★★★☆☆   │ 178    │ no    │ AST inline (H6)                 │
656  ├───────────────┼─────────┼────────┼───────┼─────────────────────────────────┤
657  │ vista (HOY)   │ ★★★★☆   │ 530    │ 5/5   │ estable                         │
658  ├───────────────┼─────────┼────────┼───────┼─────────────────────────────────┤
659  │ barra (HOY)   │ ★★★★☆   │ 280    │ 5/5   │ estable                         │
660  ├───────────────┼─────────┼────────┼───────┼─────────────────────────────────┤
661  │ cosmobiologia │ ★★★☆☆   │ 21,502 │ parc. │ tests canvas/tree (H1) + innov  │
662  │               │         │        │       │ (H4)                            │
663  └───────────────┴─────────┴────────┴───────┴─────────────────────────────────┘
664
665  Trazo desde aquí: Hito 1 desbloquea Hito 2, que desbloquea Hito 3 en paralelo
666  con Hito 4 y Hito 5, cerrando con Hito 6 polish. Estimación realista a v1.0
667  estable: 6-8 semanas continuas o 3-4 semanas con paralelización agresiva.
668
669
670  temas de dudas (sí te dije que esa ia estaba loca en ese texto):
671  1. no es hypervisor, pero sí ejecuta procesos con capacidad de aislamiento. lo que hablamos antes, acláralo si no lo hablamos antes. pero vamos a estar conectados con brahman, posiblemente ejecutando procesos en dht.
672  2. usa tu criterio, pero la idea es que este como compositor es el pintor del lienzo, pero va a tener la capacidad de delegar a través de brahman trozos de su superficie a otras aplicaciones/módulos, y estos a su vez pueden disponer de subtrozos para otras aplicaciones/modulos. así que vamos a hacer, tanto pintar en wayland, como orquestar las aplicaciones que tendremos dentro. para aplicaciones agnósticas, que va a ser lo "normal", va a comportarse digamos como un compositor normal.
673  3. no, usa protocolo logind. eso del criu déjalo para un futuro. lo del aislamiento va a seguir la misma política de las cards.
674
675  del navegador:
676  tienes razón. bueno, sigue las mejores reglas para repartir la responsabilidad. es el compositor el que define los layers, no? y la pintada. y se las da a las aplicaciones que se lo piden que puede ejecutar el shell/launcher, ayudame en eso, que hoy no dormí bien. modularidad horizontal.
677
678 decisiones:
679 1. carmen.
680 2. minga es el git, no la red. la red dht debería ser un core invisible para todo el ecosistema brahman. o sea, c.
681 3. criu. déjalo para otro día pero no lo olvides.
682 4. c.
683 5. declarado.
684 6. si es forzado, no. pero cuando sea grande lo voy a querer.
685
686
687
688
689
690
691
692
693
694
695
696  ---
697  Nuevo PLAN_MACRO con subtareas multi-nivel
698
699  FASE A · Foundations cleanup + renames batch (sem 1-2)
700  ├─ A1 · Rename batch en código
701  │   ├─ A1.1  Modificar scripts/rename-fase-a.py (add MOVES + PKG_RENAMES)
702  │   ├─ A1.2  Dry-run verificación
703  │   ├─ A1.3  Ejecutar: git mv + sed Cargo.toml + sed .rs + workspace toml
704  │   ├─ A1.4  cargo check --workspace verde
705  │   ├─ A1.5  Actualizar SDDs (init, runtime, compat → arje; revista; fana)
706  │   ├─ A1.6  Actualizar docs/STATUS.md, ROADMAP.md, PLAN_MACRO.md
707  │   ├─ A1.7  Mover
708  docs/changelog/{init,runtime,compat,minga,nahual,nakui,protocol}.md (referencias
709   internas a arje-)
710  │   └─ A1.8  Commit + push
711  │
712  ├─ A2 · Split arje-brain en 3 sub-crates
713  │   ├─ A2.1  arje-brain-rules (engine + rules + dispatch — 678 LOC)
714  │   ├─ A2.2  arje-brain-cognitive (observer + crystallize + autopromote — 799
715  LOC)
716  │   ├─ A2.3  arje-brain-audit (audit + introspect + metrics — 1,201 LOC)
717  │   ├─ A2.4  arje-brain umbrella opcional (features-based) o eliminar
718  │   ├─ A2.5  Migrar consumidores (arje-zero, chasqui-core)
719  │   └─ A2.6  cargo check + commit
720  │
721  ├─ A3 · Unificar loader duplicado
722  │   ├─ A3.1  Mover arje-brain/loader.rs → brahman-cards
723  │   ├─ A3.2  brahman-cards gana load_card_file + load_rules_file +
724  extract_*_from_json
725  │   ├─ A3.3  arje-brain depende de brahman-cards
726  │   └─ A3.4  cargo check + commit
727  │
728  ├─ A4 · Extraer sandokan-lifecycle de shuma-core
729  │   ├─ A4.1  Crear crate runtime/sandokan-lifecycle
730  │   ├─ A4.2  Mover primitivas: TTL + restart backoff + quota enforce + drain +
731  snapshot
732  │   ├─ A4.3  shuma-core depende de sandokan-lifecycle como cliente
733  │   ├─ A4.4  Tests existentes siguen pasando
734  │   └─ A4.5  cargo check + commit
735  │
736  ├─ A5 · Ampliar arje-incarnate con pivot_root + OverlayFS
737  │   ├─ A5.1  Agregar pivot_root al builder de Incarnator
738  │   ├─ A5.2  Agregar capa OverlayFS declarativa (rootfs RO + session RW)
739  │   ├─ A5.3  Tests: chroot básico funciona + overlay funciona
740  │   └─ A5.4  cargo check + commit
741  │
742  └─ A6 · Crear brahman-ssh-multiplex
743      ├─ A6.1  Wrapper sobre russh
744      ├─ A6.2  Canales paralelos + TCP_NODELAY + KeepAlive 15s
745      ├─ A6.3  Reconexión silenciosa
746      ├─ A6.4  Tests con servidor SSH local
747      └─ A6.5  cargo check + commit
748
749  FASE B · Core libraries (sem 2-5)
750  ├─ B1 · sandokan (orquestador library)
751  │   ├─ B1.1  Trait Engine { run/track/telemetry }
752  │   ├─ B1.2  LocalEngine (in-process: arje-incarnate + arje-brain-rules +
753  broker)
754  │   ├─ B1.3  DaemonEngine (postcard sobre Unix socket)
755  │   ├─ B1.4  RemoteEngine (sobre brahman-ssh-multiplex + DaemonEngine remoto)
756  │   ├─ B1.5  Engine::auto() detecta socket y elige
757  │   └─ B1.6  Tests + integración con arje-zero como daemon host
758  │
759  ├─ B2 · verbo (embeddings multi-backend)
760  │   ├─ B2.1  verbo-core (trait Provider, ModelId, EmbeddingVector)
761  │   ├─ B2.2  verbo-cohere (HTTP API remoto)
762  │   ├─ B2.3  verbo-bge-local (bge-code-large vía ort)
763  │   ├─ B2.4  verbo-mini-local (MiniLM-L6-v2 384d vía ort, para badu)
764  │   ├─ B2.5  verbo-fastembed (fallback)
765  │   ├─ B2.6  verbo-daemon (binario --backend X, multi-instancia)
766  │   ├─ B2.7  verbo-client (cliente IPC)
767  │   └─ B2.8  Migrar chasqui-nous-real de fastembed inline → verbo-client
768  │
769  ├─ B3 · brahman-dht (library DHT agnóstica)
770  │   ├─ B3.1  Sobre brahman-net libp2p (kad + provider records)
771  │   ├─ B3.2  Trait DhtBackend con kind: Code | Card | Persona | ...
772  │   ├─ B3.3  Publish + lookup + announce
773  │   └─ B3.4  Consumido por minga-p2p (kind=Code), brahman-card-discovery
774  (kind=Card), agorapura (kind=Persona)
775  │
776  └─ B4 · brahman-card-discovery
777      ├─ B4.1  Trait CardSearch + impls local (CAS + filesystem) + dht (vía
778  brahman-dht)
779      ├─ B4.2  Filtros por kind, flow type, capabilities
780      └─ B4.3  Widget nahual/widgets/card-browser consume CardSearch
781
782  FASE C · Apps standalone (sem 4-12, paralelizables)
783  ├─ C1 · fana (prioridad alta — absorbe pluma + nuevo writer's DAG editor)
784  │   ├─ C1.1  fana-core (NarrativeAtom + NarrativeGraph + CoherenceState)
785  │   ├─ C1.2  fana-md (absorbe pluma-md como parser markdown)
786  │   ├─ C1.5  fana-store (sled o RocksDB + bincode/rkyv zero-copy)
787  │   ├─ C1.6  fana-llm (cliente HTTP a LLMs remotos vía reqwest)
788  │   ├─ C1.7  fana-render-plan (DrawCommands agnósticos: editor + sidepane +
789  ghost trace)
790  │   ├─ C1.8  fana-editor-gpui (WorkspaceEditor View custom +
791  OscilloscopeSidepane + GhostTrace)
792  │   ├─ C1.9  fana-md-reader-web (absorbe pluma-reader-web, sigue siendo dep de
793  gioser-web)
794  │   ├─ C1.10 fana-editor-web (futuro WASM editor)
795  │   ├─ C1.11 apps/fana (binario GPUI)
796  │   └─ C1.12 apps/fana-web (futuro cdylib)
797  │
798  ├─ C2 · badu (note-taking, ex-akashi)
799  ├─ C3 · dominium (simulador psicológico)
800  ├─ C4 · takiy (composición musical)
801  ├─ C5 · matilda (server admin)
802  ├─ C6 · mirada (compositor Wayland, ex-carmen)
803  └─ C7 · agorapura (identidad humana federada)
804
805  FASE D · charka (paralelo multi-mes)
806  FASE E · yachay (integrador, sem 12-18)
807  FASE F · Cobertura tests + cerrar stubs cosmo/pineal (continuo)
808  FASE G · Backlog (rimay, yuyay, apu, tinkuy, nutu, ...)
809
810
811
812
813
814
815  cargo build -p sandokan-cli
816  ./target/debug/sandokan daemon &              # terminal/background
817  ./target/debug/sandokan run /bin/sleep 300    # → card_id
818  ./target/debug/sandokan list
819  ./target/debug/sandokan status <card-id>
820  ./target/debug/sandokan stop <card-id>
821
822
823
824
825
826
827● Comandos de prueba
828
829  target/ está en 22 GB — pero tranquilo: está gitignored, el repo git
830  real son 96 MB. El "desborde" es disco, no el repositorio. Más abajo
831  el cargo clean.
832
833  Todo de una
834
835  cargo check --workspace        # compila los ~145 crates
836  cargo test  --workspace        # corre TODOS los tests (~270)
837
838  sandokan — el ejecutable interactivo
839
840  cargo build -p sandokan-cli
841  ./target/debug/sandokan daemon &                 # deja el daemon
842  corriendo
843  ./target/debug/sandokan run /bin/sleep 300       # imprime un card_id
844  ./target/debug/sandokan list                     # lo ves activo
845  ./target/debug/sandokan status   <card-id>       # → Running
846  ./target/debug/sandokan telemetry <card-id>      # → mem / nproc
847  ./target/debug/sandokan stop     <card-id>       # → detenido
848  ./target/debug/sandokan status   <card-id>       # → Killed
849
850  Tests por área (lo construido esta sesión)
851
852  # Fase A — foundations
853  cargo test -p arje-brain-rules -p arje-brain-cognitive -p
854  arje-brain-audit \
855             -p sandokan-lifecycle -p arje-incarnate
856
857  # Fase B — orquestador + discovery
858  cargo test -p sandokan-core -p sandokan-local -p sandokan-daemon -p
859  sandokan \
860             -p brahman-dht -p brahman-card-discovery -p
861  brahman-ssh-multiplex
862
863  # Fase F — pineal (6 charts)
864  cargo test -p pineal-render -p pineal-export -p pineal-heatmap \
865             -p pineal-polar -p pineal-treemap -p pineal-flow -p
866  pineal-mesh
867
868  # Apps Fase C — núcleos
869  cargo test -p fana-core -p fana-graph -p fana-store -p fana-semantic
870    # fana
871  cargo test -p shuma-intent
872   # shuma shell
873  cargo test -p verbo-core -p verbo-mock
874   # verbo
875  cargo test -p dominium-core
876   # dominium
877
878  Validación arje (boot — ya existía)
879
880  seeds/validate.sh seeds/arje-minimal.card.json
881
882  ⚠  Disco — cargo clean
883
884  target/ = 22 GB y va a seguir creciendo (gpui, libp2p, russh son
885  pesados). Cuando quieras recuperar ese espacio:
886
887  cargo clean         # borra target/ entero — recupera ~22 GB
888
889  Tras eso, el próximo cargo build recompila todo desde cero (lento,
890  ~varios min). Recomendación: corré tus pruebas, y cuando termines una
891   tanda, cargo clean. No afecta nada del código ni del repo — sólo
892  artefactos de compilación.
893
894  ¿Querés que lo corra yo ahora (cargo clean), o lo dejás para cuando
895  termines de probar esta tanda? Si lo corro ahora, tu próxima prueba
896  recompila de cero.
897
898
899