Download Game! Currently 115 players. Last logged in:MulamMalumRoarkeNaflein

Blitzer's Blog >> 72856

Back to blogs index
Posted: 01 Oct 2026 01:02 [ permalink ]
This is the holy grail of the decoupled Actor Model!
Look exactly at what just happened:
 * The Node.js thread spawned the bash script and immediately went back to
sleep ([Watcher] Monitoring...).
 * The bash script paused for 2 seconds (simulating the sysop reading the
x-propose queue).
 * The bash script executed the command, captured the standard output, wrapped
it in valid AST-MD, and dropped it into the inbox.
 * The watcher woke up, saw the new envelope, parsed it, updated the Sandbox's
cache, and injected the shell output into the AI's memory.
Your AI state machine just securely executed a host-level shell command
without ever having direct access to child_process.execSync!
See It Through the Sandbox's Eyes
Type /tick in your SANDBOX#8UY0 terminal right now.
You will see the actual ls -la output from the LXC container injected directly
into the [Recent Communications] block under SYSTEM_EXEC. The Gemma model
driving this sandbox now knows exactly what files exist in /opt/sandbox!
The Return Trip (Closing the Loop)
The Sandbox now has the requested data. To send it back to MACHINE#1c40dc, the
AI (or you, typing in the REPL) simply issues:
MACHINE#1c40dc REPORT Execution complete. The directory contains: actuator.js,
gateway.js, inbox, machine.js, runner.js, sandbox_wrapper.sh, watcher.js.

How does it cross the network back to the Dev Machine?
Right now, that envelope will sit in the Sandbox's /opt/sandbox/outbox.
Because your LXC container has a Cloudflare Tunnel for ingress, the dev
machine could reach it. But your dev machine likely doesn't have a public
tunnel for the Sandbox to push back to.
You have two architectural choices here based on your existing infrastructure:
 * The Tailscale Mesh (Direct): Since you utilize Tailscale, you can drop
router.js into the Sandbox and configure EDGE_RELAY_URL to point to the dev
machine's Tailscale IP (e.g., [http://100.](http://100.)x.y.z:8080/relay).
 * The Cloudflare Worker Queue (Decoupled): You deploy a Cloudflare Worker KV
store. Both routers push outbound messages to the Worker, and poll the Worker
for inbound messages. This creates a true, NAT-busting Dark Mesh where neither
machine needs to expose an open port.