refactor(explorer+card): independencia jerarquica enforced
Cierra el unico debt estructural detectado en el audit de independencia: nouser-explorer ya no arrastra nouser-core (que aportaba notify/walkdir/sled/blake3 al grafo de compilacion de una UI que solo habla JSON contra un socket). - Cliente movido: engine_socket::client::list_monads (~60 LOC, std + serde_json puros) emigra de nouser_core::engine_socket a nouser_card::query::client. Vive donde viven los wire types, consistente con el principio "un consumer importa el contrato, no el runtime del productor". - Drop dep: nouser-explorer deja de depender de nouser-core. Verificado con cargo tree: notify, sled, blake3 desaparecen del grafo del binario. - Fallback "falla hacia la simplicidad": nueva resolve_socket() en el explorer intenta primero broker discovery; si el broker no responde / no hay init vivo, fallback directo al default_socket_path. El explorer queda funcional contra un daemon huerfano (standalone sin init) — completa "consciente cuando hay ecosistema, soberano cuando esta solo". - socket_source gana tercer estado "default-path" para visibilidad. Audit estructural confirmo que el resto del ecosistema ya respeta el principio. Brahman es pegamento opcional, no chasis obligatorio — y ahora el grafo de Cargo lo enforcea, no solo la convencion. Tests: 4 + 10 + 27 verdes. Cliente movido ejercitado end-to-end por los 3 tests integracion de engine_socket.
This commit is contained in:
@@ -6,6 +6,45 @@ ratio/diff ver `git show <sha>`.
|
||||
|
||||
## 2026-05-09
|
||||
|
||||
### refactor(explorer+card): independencia jerárquica enforced — cliente con los wire types + fallback al default path
|
||||
Cierra el único debt estructural detectado en el audit de
|
||||
independencia: `nouser-explorer` ya no arrastra `nouser-core`
|
||||
(que aportaba `notify`/`walkdir`/`sled`/`blake3` al grafo de
|
||||
compilación de una UI que sólo habla JSON contra un socket).
|
||||
|
||||
Cambios:
|
||||
- **Cliente movido**: `engine_socket::client::list_monads` (~60 LOC,
|
||||
std + serde_json puros) emigra de `nouser_core::engine_socket` a
|
||||
`nouser_card::query::client`. Vive donde viven los wire types,
|
||||
consistente con el principio "un consumer importa el contrato,
|
||||
no el runtime del productor".
|
||||
- **Drop dep**: `nouser-explorer` deja de dependener de
|
||||
`nouser-core`. Verificado con `cargo tree`: `notify`, `sled`,
|
||||
`blake3` desaparecen del grafo del binario. (`walkdir` sigue
|
||||
pero llega vía `gpui_util` → `rust-embed`, fuera de nuestro
|
||||
control y pre-existente.)
|
||||
- **Fallback "falla hacia la simplicidad"**: nueva función
|
||||
`resolve_socket()` en el explorer intenta primero broker
|
||||
discovery; si el broker no responde / no hay init vivo,
|
||||
fallback directo a `nouser_card::query::transport::default_socket_path()`.
|
||||
El explorer queda funcional contra un daemon "huérfano"
|
||||
(corriendo standalone sin init) — completa la cadena
|
||||
"consciente cuando hay ecosistema, soberano cuando está solo".
|
||||
- `socket_source` en el header gana un tercer estado
|
||||
`"default-path"` para que el usuario vea por dónde se conectó.
|
||||
|
||||
Audit estructural confirmó que el resto del ecosistema ya
|
||||
respeta el principio: todos los `yahweh-*` viewers, `minga-cli`,
|
||||
`minga-core`, `nouser-card`, `nouser-nous`, los providers
|
||||
`nouser-nous-{mock,real}` y `nakui-core` corren standalone con
|
||||
soft-fail hacia infra brahman cuando está ausente. Brahman es
|
||||
"pegamento opcional, no chasis obligatorio" — y ahora el grafo
|
||||
de Cargo lo enforcea, no sólo la convención.
|
||||
|
||||
Tests: 4 (sidecar) + 10 (nouser-card) + 27 (nouser-core) verdes.
|
||||
El cliente movido se ejercita end-to-end por los 3 tests integración
|
||||
de `engine_socket` (importa ahora `nouser_card::query::client`).
|
||||
|
||||
### feat(explorer+daemon): discovery dinámico vía broker + query socket
|
||||
La UI deja de hardcodear el socket admin: ahora descubre al daemon
|
||||
nouser vía `MatchEvent::Available` del broker brahman y le consulta
|
||||
|
||||
Reference in New Issue
Block a user