# willay-crosscheck — el cruce de willay, que ESCUCHA en la red. # # ⚠ El paquete NO se llama como el binario: el crate es `willay-cruce` y el ejecutable # `willay-crosscheck`. Por eso van `-p` y `--bin`, que no son redundantes acá. # Medido en gioser: `--listen /ip4/0.0.0.0/tcp/4103 --label momento`. La etiqueta nombra a la # MÁQUINA, así que en la caja nueva no puede decir `momento` — se decide al escribir la Card. # # Receta Cargo contra el monorepo de tawasuyu, pinneada al MISMO commit que `shuma-*` y # `puriy-costura`: el árbol de fuentes se comparte por `-`, así que un pin distinto es otro # vendoreo de 2,4 G. Estática musl con zig-cc — la caja la arranca el init y no puede depender de # encontrar un cargador, que es justo lo que le falta al binario glibc de gioser. name = "willay-crosscheck" version = "0.1.0" license = "MIT OR Apache-2.0" [source] repo = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git" commit = "23a292863f53b355c5c02d6185904f2c33d8ab42" # tawasuyu COMMITEA su propio `vendor/` (smithay parcheado, enchufado por `[patch.crates-io]` POR # RUTA); el `cargo vendor` de takana lo pisaría y el error habla de `taffy`, no de esto. cargo_vendor_dir = ".hammer-cargo-vendor" [build] compiler = "zig-cc" target = "x86_64-linux-musl" link = "static" flags = ["-p", "willay-cruce", "--bin", "willay-crosscheck"] # ── EL SERVICIO (SDD 30) ──────────────────────────────────────────────────────────────────────── # ⚠ `--label` NOMBRA A LA MÁQUINA. En gioser decía `momento`, y copiarlo tal cual habría puesto a la # caja nueva a identificarse con el nombre de la que se borra. Sale de `hostname`, que desde hoy la # caja tiene de verdad (§6.38: antes decía `(none)`) — y si algún día vuelve a no tenerlo, la guarda # lo dice en vez de anunciarse como «(none)» en la red. [[service]] label = "willay-crosscheck" id = "01M2EKDA00W1YCR055CHK00012" exec = "/bin/busybox" argv = ["sh", "-c", "h=$(hostname); case \"$h\" in \"\"|\"(none)\") echo 'willay-crosscheck: la máquina no tiene hostname y `--label` es como se anuncia en la red — arreglá /etc/hostname (hay una Card OneShot que lo aplica)' >&2; exit 78;; esac; test -s /root/.tejido/roster.postcard || { echo 'willay-crosscheck: no hay roster en /root/.tejido/roster.postcard — este servicio vive DENTRO de la red de tejido y sin padrón no tiene con quién cruzar. Llega con el intercambio de tejido, no antes' >&2; exit 78; }; exec /usr/bin/willay-crosscheck --listen /ip4/0.0.0.0/tcp/4103 --label \"$h\""] envp = [["PATH", "/usr/bin:/bin"], ["HOME", "/root"]] networking = "full" cgroup = "arje.slice/willay-crosscheck" restart = { initial_ms = 1000, max_ms = 30000 } # ⚠ MEDIDO AL ARRANCARLO (2026-09-16): **no es independiente de `tejido`**. Corriendo la misma línea # a mano en la caja: # # Error: no hay roster en /root/.tejido/roster.postcard — emparejá primero (`tejido serve` / `tejido join`) # # O sea que `willay-crosscheck` vive DENTRO de la red de tejido y hereda su condición: **se enciende # en el mismo movimiento en que tejido se intercambia**, no antes y no en paralelo con el de gioser. # Por eso sale del `genesis` y queda sólo en `cards.d`, como `tejido`.