feat(sandokan): B1.5 — umbrella + Engine::auto()

Crate sandokan (umbrella): re-exporta core/local/daemon y provee la
selección de transporte.

- auto(socket) — patrón "el primero que arranca gana": prueba si hay
  un daemon escuchando; si lo hay devuelve DaemonEngine, si no
  LocalEngine. Box<dyn Engine> (el trait es object-safe vía async_trait).
- auto_default() — auto() con default_socket_path().
- default_socket_path() — $XDG_RUNTIME_DIR/sandokan.sock o
  /run/brahman/sandokan.sock.

3 tests: fallback a Local sin daemon, pick Daemon con serve() activo,
default path absoluto. cargo check --workspace verde.

sandokan ya es usable end-to-end en modo local y daemon. Falta
RemoteEngine (B1.4, depende de brahman-ssh-multiplex).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
sergio
2026-05-20 14:05:32 +00:00
parent b7d9d7abd9
commit 8cd8003dd5
4 changed files with 128 additions and 0 deletions
+1
View File
@@ -38,6 +38,7 @@ members = [
"crates/runtime/sandokan-core",
"crates/runtime/sandokan-local",
"crates/runtime/sandokan-daemon",
"crates/runtime/sandokan",
# ============================================================
# compat/ — Shims D-Bus para correr software systemd-aware