Skip to content

fix: provision AIR Cloud without Nix - #371

Merged
forketyfork merged 8 commits into
mainfrom
air/infra/air-cloud-startup
Aug 28, 2026
Merged

fix: provision AIR Cloud without Nix#371
forketyfork merged 8 commits into
mainfrom
air/infra/air-cloud-startup

Conversation

@forketyfork

Copy link
Copy Markdown
Owner

Summary

  • replace the root-dependent Nix setup with a user-space bootstrap under $HOME/.local
  • dynamically read the project Zig pin and SDL3 overlay version; install portable Zig, CMake, Ninja, just, ShellCheck, and Ruff
  • build headless SDL3 and SDL_ttf from source with Zig's bundled C/C++ toolchain and vendored SDL_ttf dependencies
  • persist PATH, SDL include paths, runtime library path, and the direct-network workaround in the login profile

Nix was abandoned because AIR Cloud sandboxes run as an unprivileged user and the existing /nix is root-owned; neither installation nor ownership repair is possible without sudo.

Validation

  • zig build --summary all: 20/20 steps succeeded
  • zig build test --summary all: 20/20 steps succeeded; 373/374 tests passed; 1 skipped
  • just lint: All checks passed; test registry passed; zwanzig found no issues

Cold sandbox timing observed

  • Zig download: 1s
  • SDL3 build/install: 104s
  • SDL3_ttf build/install: 87s

zig build run was intentionally not attempted because AIR Cloud is headless.

forketyfork and others added 8 commits August 28, 2026 19:10
Provisions Nix (no-daemon, since these sandboxes lack systemd) and fixes
/nix ownership so the unprivileged workspace user can run `nix develop`,
matching the flake-based dev shell the project already uses locally.
Also best-effort seeds Codex's config.toml with xhigh reasoning effort,
since the platform's launch API does not expose that as a first-class
option and config.toml is only honored if present before the CLI starts.
The previous version only chowned /nix inside the "we just installed nix"
branch, so a pre-baked/pre-owned /nix (root-owned regardless of who ran
this script) skipped the fix entirely. Move the ownership check so it
always runs and only chowns when the target user doesn't already own it.
@forketyfork
forketyfork merged commit dd2606a into main Aug 28, 2026
4 checks passed
@forketyfork
forketyfork deleted the air/infra/air-cloud-startup branch August 28, 2026 19:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant