Files
brahman/crates/runtime/SDD.md
T
sergio 545dd59c72 feat(sandokan-lifecycle): A4 — primitivas de lifecycle agnósticas
Nuevo crate runtime/sandokan-lifecycle: lógica pura reutilizable por
cualquier supervisor de procesos (shuma, matilda Ghost, charka-shadow,
mirada). Sin syscalls, sin proceso, sin UI.

Módulos:
- backoff   — Backoff exponencial con tope
- ttl       — Ttl anclado a Instant
- quota     — ResourceQuota + check_quota + Breach + QuotaAction
- restart   — RestartPolicy + RestartTracker (conteo + backoff)
- state     — LifecycleState (Pending/Running/Exited/Failed/Killed)

15 tests verdes. cargo check --workspace verde.

Variante segura de A4: se crea la library limpia sin tocar shuma-core
(módulo maduro). La migración de WorkspaceManager a consumir estas
primitivas queda registrada como A4.2 (refactor diferido, no urgente).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-20 00:32:52 +00:00

2.6 KiB

runtime/ — Infraestructura de ejecución

Propósito. Servicios cross-cutting que el Init y los módulos consumen: bus IPC interno, content-addressed storage, sandbox WASM, rule engine + audit log, y un ente de smoke test.

Crates

crate tipo rol
arje-bus lib Unix SOCK_STREAM + postcard framing
arje-cas lib Content-addressed storage SHA-256: blobs + audit
arje-wasm lib Encarna Payload::Wasm vía wasmi
arje-brain-rules lib Motor determinista: rules + engine O(1) + dispatch
arje-brain-cognitive lib Observer estadístico + crystallize de patrones
arje-brain-audit lib Audit chain con hashes anclados al CAS
arje-brain lib Integración: introspect + autopromote + metrics
arje-echo bin Ente prueba — provee Capability::Endpoint(echo)
sandokan-lifecycle lib Primitivas de lifecycle agnósticas (ver abajo)

sandokan-lifecycle

Library de primitivas de ciclo de vida agnósticas (sin syscalls, sin proceso, sin UI — solo cálculo). Consumible por cualquier supervisor: shuma, matilda Ghost, charka-shadow, mirada.

  • Backoff — backoff exponencial con tope.
  • Ttl — time-to-live anclado a Instant.
  • ResourceQuota + check_quota — cuotas de recursos + breaches.
  • RestartPolicy + RestartTracker — restart con conteo + backoff.
  • LifecycleState — máquina de estados (Pending/Running/Exited/Failed/Killed).

15 tests verdes. Pendiente (A4.2): migrar shuma-core::WorkspaceManager para que consuma estas primitivas en lugar de su implementación inline.

Dependencias

  • arje-bustokio + postcard. Consumido por init/arje-zero.
  • arje-cassha2 + sled. Consumido por arje-brain-audit y arje-wasm.
  • Brain split (DAG limpio): arje-brain-rules (base) ← arje-brain-cognitivearje-brain-auditarje-brain (umbrella de integración).
  • arje-brain re-exporta la API de los 3 sub-crates para los consumidores históricos (arje-zero, chasqui).

Invariantes

  • Bus: framing length-prefixed, sin re-orden; un cliente=una sesión.
  • CAS: addresses inmutables; un blob = sha256(content) único.
  • Audit: cada evento del bus se hash-encadena al log en CAS.

Estado

LOC ~3.4K, tests parciales. Brain tiene 11 TODOs (reglas declarativas complejas pendientes). Ver docs/changelog/runtime.md.