Conversation
Replicates the macOS rust install from d4fc0d9 to the Ubuntu (apt) and Arch (pacman) platforms, since rust is required for building Ruby from source. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Code review by Claude (Claude Code)
The PR does two things: (1) adds a 1. "rust is required for building Ruby from source" is inaccurate (all 3 platforms)Rust is not required to build Ruby. Ruby's 2. The rust install is redundant in the common path
3. Ubuntu's apt
|
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace the fragile `return 0 2>/dev/null || exit 0` with a structured if/else so skipping auth never risks interrupting the sourced setup.sh. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Setup adds the user to new groups (e.g. docker) and writes shell config. Hand off `exec su - $USER` so those changes take effect immediately without re-ssh or re-login. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
`su - $USER` prompts for the user's password. The only group change that needs to take effect immediately is docker, so re-exec into a shell with the docker group active via newgrp, which needs no password. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
`$SHELL -l` re-reads the user's startup files (bash or zsh) so PATH/env changes from setup take effect. On Linux, wrap it in `sg docker` so the newly added docker group membership is active too. `sg` needs no password (the user is already a member), and is only used when the user is actually in the docker group, so it never blocks on a prompt. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Installs Claude Code via the native installer (claude.ai/install.sh) only when OPT_IN_CLAUDE_CODE=1. The opt-in gate lives in the lib/ scripts; doctor skips silently when not opted in. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude Code installs to ~/.local/bin, which isn't on PATH by default. Write the PATH addition to the rc file of the user's actual login shell (bash -> ~/.bashrc, zsh -> ~/.zshrc) with an OS-based fallback, so it works for bash on Ubuntu/Omarchy and zsh on macOS. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Write PATH/env to the user's login shell rc (bash -> ~/.bashrc, zsh -> ~/.zshrc) with an OS fallback, never hardcode ~/.zshrc. Flags the existing mise/brew ~/.zshrc-only writes as a known bug. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
mise_setup.sh and packages_setup.sh hardcoded ~/.zshrc for persisting `mise activate` / `brew shellenv`. setup.sh re-execs `$SHELL -l`, and on Ubuntu/Arch the default login shell is bash, so a bash user never sourced those lines -- mise (and the Ruby/Node toolchain it fronts) silently failed to activate in new shells. Centralize the login-shell-rc selection in a login_shell_rc() helper in common.sh (bash -> ~/.bashrc, zsh -> ~/.zshrc, with an $OS fallback) and use it from mise_setup.sh, packages_setup.sh, and claude_code_setup.sh (whose inline case block it replaces). Update AGENTS.md to point at the helper and drop the now-fixed "known bug" note. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Authenticating gh does not, by itself, teach git to use that token. A repo cloned with `gh repo clone` gets an HTTPS remote, so `git pull` prompts for a username/password unless git's credential helper points at `gh auth git-credential`. gh auth login normally configures this, but it is skipped when gh is authenticated non-interactively (token/GH_TOKEN). Run `gh auth setup-git` after authentication so git delegates GitHub HTTPS auth to gh, and add a doctor check that the helper is configured. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
After auth, derive user.name/user.email from `gh api user` and set them globally, mirroring GitHub's own fallbacks: login when the display name is hidden, and the id+login noreply address when the email is private. Fill in only values that are not already configured so an identity the user set deliberately is never clobbered. Add a matching doctor check. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
No description provided.