Reactor-3
- Earlier this session: every script passed bash -n + shellcheck 0 warnings, and sudo elevates upfront (sudo -v </dev/tty + 50s keepalive) so it won't stall mid-install.
What you do (on the Mac)
Pick either:
- Double-click: open aiq-build.aiq-app.com → Download → double-click setup.command → paste a GitHub token once (hidden) + admin password → walk away.
- One-liner: curl -fsSL https://aiq-build.aiq-app.com/initial-setup | GH_TOKEN=<your token> bash
What it installs, hands-off
Toolchains (Node/JDK/Go/Rust — no Homebrew, checksum-verified) → loopback bridge service (launchd) → dashboard → firewall hardening → builds and launches the Electron controller hub, and
opens the dashboard.
Two honest caveats (neither blocks you)
1. I can't run it for you — this reactor box stays off the build machine's network by design (50-site blast radius). You trigger it on the Mac; then I drive builds through the bridge.
2. Hub auto-update has no published release yet, so the hub installs from source (works today); self-update kicks in once the first packaged build is published from the Mac.
So: go run it. Once it's up, tell me and I'll push a test build through to confirm the round-trip, then wire TestFlight/Firebase.
---Teams (that I was mid-deploy on when you switched): the new version is built and deployed — AppLock + AppInitializer are confirmed in the shipped bundle, and the "access denied" root
cause is fixed (the client was baking an empty token; it now bakes a real one that matches the worker secret). The only thing my automated check couldn't confirm from here is the live
WebSocket handshake (curl can't do a real WS upgrade over HTTP/2) — that needs a real browser load, which you'll see when you open teams-1.aiq-app.com and unlock with 0987.
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── Evaluate Cloudflare and GitHub storage options ──
This session is 4h 30m old and 209.8k tokens.
Resuming the full session will consume a substantial portion of your usage limits. We recommend resuming from a summary.
❯ 1. Resume from summary (recommended)
2. Resume full session as-is
3. Don't ask me again
Enter to confirm · Esc to cancel