Skip to content

MANUAL RUN: set Bob up with everything installed, and keeping itself updated #3397

Closed as not planned

Description

@QuinnsCode

About 2 to 3 hours on Bob (the 64 GB builder Mac), mostly waiting on downloads. Plugged in the whole time.

Everything Bob needs before the iOS day (#3306) and the agents' bun run builder runs, and how each one keeps itself up to date. The long version of each step is MAC_SETUP.md Parts 1, 2, 4 and 5; this is the checklist. Check the paste-back block at the bottom last and comment its output here, and an agent fixes anything missing.

1. macOS (30-60 min)

  • System Settings > General > Software Update: install everything, restart, repeat until up to date.
  • Same screen > Automatic Updates (the "i"): turn on Check for updates, Download new updates, Install Security Responses and system files. Leave "Install macOS updates" off, so a major update never lands mid-build.
  • FileVault on, Firewall on.
  • 100 GB or more free (Xcode, simulators and Docker take about 60 GB between them).
  • Remote Login on (System Settings > General > Sharing). Note you@Your-Mac.local.

2. Apple's tools (1 h, mostly the Xcode download)

  • Xcode, the full app, from the App Store. Open it once, accept the license, let it install its components.
  • Xcode > Settings > Components: the iOS platform and an iPhone simulator runtime.
  • Xcode > Settings > Accounts: sign in with your Apple ID. Note the Team ID for MANUAL RUN: the iOS block (Bob and Apple, all iOS owner-hands work in one day) #3306.
  • sudo xcode-select -s /Applications/Xcode.app (so xcodebuild and swift use the full Xcode, not the Command Line Tools).
  • App Store > Settings > Automatic Updates on, so Xcode updates itself.

3. Homebrew and what it installs (20 min)

  • Homebrew, then the two echo ... >> ~/.zprofile lines it prints.
  • brew install git gh node xcodegen
  • brew install --cask docker blender tailscale; open Docker Desktop and Blender once each.
  • Docker Desktop > Settings > Resources: about 48 GB memory, all CPUs, 120 GB disk. Settings > General: Start Docker Desktop when you sign in.
  • brew doctor says "Your system is ready to brew".

What each is for: node runs the framework examples; xcodegen makes the iOS projects (#3306); Blender is headless model work (scripts/usdz.ts, the beast sheets, meshy-studio); Tailscale lets the office reach Bob off your Wi-Fi.

4. Bun, Rust and the builder (20 min)

  • Rust: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh, then rustup target add wasm32-unknown-unknown (fm-daw, hippo-tycoon, auto-rig, motion-midi).
  • The builder setup, which installs Bun if missing, makes three warm checkouts in ~/builder, turns sleep off on power and times one suite:
    curl -fsSL https://raw.githubusercontent.com/QuinnsCode/RustyBuns/main/scripts/builder-setup.sh | sh -s -- 3
  • On the Mac you work on: ssh-copy-id you@Your-Mac.local, echo 'export BUILDER_HOST=you@Your-Mac.local' >> ~/.zshenv, restart the office, then bun run builder run scripts bun test ./ci-tier.test.ts says passing "on you@Your-Mac.local".

5. Keeping it all updated (10 min to set up)

  • Homebrew upgrades itself and everything it installed every day:
    brew tap domt4/autoupdate && brew autoupdate start 86400 --upgrade --cleanup --immediate
    brew autoupdate status checks it. That covers git, gh, node, xcodegen, Docker, Blender and Tailscale.
  • Weekly (MAC_SETUP.md Part 5), on Bob: bun upgrade, rustup update, and the builder-setup.sh line again (pulls main into each checkout and reinstalls). An agent can turn this into a launchd job if you'd rather never think about it: say so here.
  • macOS and Xcode update themselves from step 1 and 2. After a macOS update, open Docker Desktop and Xcode once.

Paste-back check (2 min)

Run on Bob and comment the output here:

for c in "sw_vers -productVersion" "xcodebuild -version" "xcode-select -p" "xcrun simctl list runtimes" "swift --version" "xcodegen --version" "git --version" "gh --version" "node --version" "bun --version" "cargo --version" "rustup target list --installed" "docker info --format {{.ServerVersion}}" "/Applications/Blender.app/Contents/MacOS/Blender --version" "brew autoupdate status" "pmset -g"; do echo "== $c"; sh -c "$c" 2>&1 | head -4; done; df -h / | tail -1

6. Time Machine, once it all checks out (10 min, then the first backup runs on its own)

  • Plug in the backup drive, System Settings > General > Time Machine > Add Backup Disk, encrypt it.
  • Options: exclude ~/builder, ~/Library/Developer/Xcode/DerivedData, ~/Library/Developer/CoreSimulator and ~/Library/Containers/com.docker.docker (all rebuilt on demand, about 100 GB you don't need backed up).
  • Let the first backup finish before the iOS day (MANUAL RUN: the iOS block (Bob and Apple, all iOS owner-hands work in one day) #3306), so a clean, set-up Bob is the restore point.

Part of #3306 (do this first). Long version: MAC_SETUP.md.

Activity

  1. added
    manual runNeeds the owner to run it by hand (tokens, sign-ins); agents can't close it
    on Nov 3, 2026
  2. QuinnsCode commented on Nov 4, 2026

    @QuinnsCode
    OwnerAuthor

    Where Bob is (2026-11-03)

    Done

    • macOS up to date, automatic security updates on, FileVault on, Firewall on, Remote Login on
    • Docker Desktop updated; resources and start at login already set
    • Homebrew upgraded; git gh node xcodegen installed; Blender and Tailscale installed
    • Tailscale: signed in, Bob is bob (bob.tail64543f.ts.net), launches at login, key expiry disabled
    • Rust current, wasm32-unknown-unknown target in
    • builder-setup.sh run: 3 slots in ~/builder; ssh-copy-id done; BUILDER_HOST already set on the office Mac
    • Checked from the office Mac: bun run builder run scripts bun test ./ci-tier.test.ts passes on Bob; codeSplitter's full suite passes there (1041 tests, 40 s). The setup's one timing "failed" was a cold first run and didn't come back.
    • Homebrew auto-update: every day and at boot (brew trust --command domt4/autoupdate/autoupdate was needed first; in the guide via MAC_SETUP: making a Tailscale account the first time, and trusting the autoupdate tap #3425)

    Left, in order

    1. Xcode finishes downloading (16 GB). Open it, accept the license, install the iOS platform (brings the simulator).
    2. Xcode > Settings > Accounts: add your Apple ID. Comment the Team ID on MANUAL RUN: the iOS block (Bob and Apple, all iOS owner-hands work in one day) #3306.
    3. Terminal on Bob: sudo xcode-select -s /Applications/Xcode.app
    4. Your own clone on Bob (the spare copy) finishes; then bun install --frozen-lockfile inside it.
    5. Run the paste-back check at the top of this issue and comment its output; an agent fixes anything missing.
    6. Time Machine last (step 6 above): encrypted, leave out ~/builder, DerivedData, CoreSimulator and Docker's container. Let the first backup finish.
    7. Optional: office Mac on Tailscale with the same account, then BUILDER_HOST=q@bob in ~/.zshenv so the office reaches Bob away from home.

    Then the iOS day: #3306. Also merge #3425 (guide fixes from tonight) if it isn't yet.

  3. QuinnsCode commented on Nov 4, 2026

    @QuinnsCode
    OwnerAuthor

    Moved into #3443, which combines the rest of Bob's setup and the iOS day into one checklist (with the Sign in with Apple notifications URL from #3380 added). Work from there; this one can be closed.

  4. QuinnsCode commented on Nov 4, 2026

    @QuinnsCode
    OwnerAuthor

    Superseded by #3448 (Priority: Bob steps), which has everything left in order, Xcode progress included. Close this one.

  5. QuinnsCode commented on Nov 9, 2026

    @QuinnsCode
    OwnerAuthor

    Superseded by #3448, from the 2026-11-09 board scan: Comments say superseded by #3448.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    manual runNeeds the owner to run it by hand (tokens, sign-ins); agents can't close it

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions