df9d10cc52
ente-zero (PID 1 del fractal arje) ahora levanta el server de
brahman-handshake junto al ente-bus existente, escuchando en
\$BRAHMAN_INIT_SOCKET (default \$XDG_RUNTIME_DIR/brahman-init.sock).
Es un canal paralelo dedicado a módulos brahman-conscientes que se
presentan con una Card y declaran flujos tipados.
Cambios:
- crates/core/brahman-handshake/src/transport.rs: helper nuevo con
resolución XDG_RUNTIME_DIR → TMPDIR, override por var de entorno
BRAHMAN_INIT_SOCKET. Test unitario para el override.
- crates/core/brahman-handshake/Cargo.toml: example "probe" + dev-dep
anyhow. Probe sirve como herramienta de diagnóstico para conectar
contra cualquier server vivo.
- crates/core/brahman-handshake/examples/probe.rs: cliente mínimo que
hace Hello → Ping → Farewell e imprime el HelloAck recibido.
- crates/core/ente-zero/Cargo.toml: dependencias brahman-handshake
+ brahman-broker.
- crates/core/ente-zero/src/main.rs: en primordial_loop, tras spawn
del ente-bus, crea Arc<Mutex<Broker>> compartido y llama
Server::bind. Si el bind falla (FS no escribible, socket en uso),
loggea y degrada a "modo bus-only" — la doctrina PID 1 no rompe por
subsistemas opcionales (mismo patrón que uevents).
Validación end-to-end manual:
$ BRAHMAN_INIT_SOCKET=/tmp/e2e.sock ./target/debug/ente-zero &
$ BRAHMAN_INIT_SOCKET=/tmp/e2e.sock cargo run --example probe
HelloAck: session=01KR41Q8... server=0.1.0 protocol=0.1.0 init_attached=true
Pong: ts=1778252489714ms
Farewell OK
Tests: 27/27 (broker 11 + card 8 + handshake codec+transport 2 + integ 6).
cargo check --workspace: 0 errores.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
38 lines
1.1 KiB
TOML
38 lines
1.1 KiB
TOML
[package]
|
|
name = "ente-zero"
|
|
version = "0.0.1"
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
publish.workspace = true
|
|
|
|
[[bin]]
|
|
name = "ente-zero"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
# Lib crates del fractal — orden: contratos → infra → encarnación → orquestación
|
|
ente-card = { path = "../ente-card" }
|
|
ente-bus = { path = "../ente-bus" }
|
|
ente-cas = { path = "../ente-cas" }
|
|
ente-kernel = { path = "../ente-kernel" }
|
|
ente-soma = { path = "../ente-soma" }
|
|
ente-wasm = { path = "../ente-wasm" }
|
|
ente-snapshot = { path = "../ente-snapshot" }
|
|
ente-brain = { path = "../ente-brain" }
|
|
ente-echo = { path = "../ente-echo" } # solo para constantes del demo
|
|
|
|
# Brahman protocol — handshake para módulos brahman conscientes
|
|
brahman-handshake = { path = "../brahman-handshake" }
|
|
brahman-broker = { path = "../brahman-broker" }
|
|
|
|
# Runtime / utilidades de PID 1
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
ulid = { workspace = true }
|
|
tokio = { workspace = true }
|
|
nix = { workspace = true }
|
|
libc = { workspace = true }
|
|
anyhow = { workspace = true }
|
|
tracing = { workspace = true }
|
|
tracing-subscriber = { workspace = true }
|