Skip to content

Replace mise-based bootstrap with profile-driven direct installs and dotfiles integration#1

Draft
Copilot wants to merge 7 commits into
mainfrom
copilot/suggest-improvements-for-repo
Draft

Replace mise-based bootstrap with profile-driven direct installs and dotfiles integration#1
Copilot wants to merge 7 commits into
mainfrom
copilot/suggest-improvements-for-repo

Conversation

Copilot AI commented May 22, 2026

Copy link
Copy Markdown
  • Identify actionable @copilot review-thread comments and map each to minimal code/docs changes
  • Implement surgical fixes in install.sh for fastpath loader, dotfiles bootstrap safety/caching, and Bun tooling refresh behavior
  • Update README.md only where required to reflect the implemented switches/behavior
  • Run targeted validation (bash -n and shellcheck) and confirm only intended diffs remain
  • Run final parallel validation and address any valid findings

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refactors the WSL bootstrap to remove the mise-based workflow and instead install Node.js, Bun, and .NET directly from official apt sources, while adding install profiles, rerun caching, and dotfiles integration to keep the default run slim and fast.

Changes:

  • Replace mise toolchain management with direct apt-based installs (NodeSource Node 20.x, Bun apt repo, Microsoft .NET 8 feed).
  • Add profile-driven installs (minimal/dev/full) plus opt-in Chrome installation and --no-install-recommends apt defaults.
  • Add section cache markers / apt-update staleness gating and integrate dotfiles bootstrap execution into the install flow.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.

File Description
README.md Updates documentation to describe direct toolchain installs, profiles, opt-in Chrome, rerun caching, and dotfiles bootstrap behavior.
install.sh Implements profile parsing, direct toolchain installs, cache markers + apt-update gating, opt-in Chrome, and dotfiles bootstrap + fast-path shell loader behavior.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread install.sh
Comment on lines +262 to +275
local script_path
for script_path in \
"$DOTFILES_DIR/bootstrap.sh" \
"$DOTFILES_DIR/install.sh" \
"$DOTFILES_DIR/setup.sh" \
"$DOTFILES_DIR/apply.sh"
do
if [[ -f "$script_path" ]]; then
echo "[WSL] Running dotfiles script: ${script_path#$DOTFILES_DIR/}"
if ! (cd "$DOTFILES_DIR" && bash "./$(basename "$script_path")"); then
echo "[WSL] Warning: dotfiles script ${script_path#$DOTFILES_DIR/} failed (continuing)"
fi
return 0
fi
Comment thread install.sh
Comment on lines +247 to +260
bootstrap_dotfiles() {
echo "[WSL] Bootstrapping dotfiles from $DOTFILES_REPO"

if [[ -d "$DOTFILES_DIR/.git" ]]; then
if ! git -C "$DOTFILES_DIR" pull --ff-only; then
echo "[WSL] Warning: dotfiles update failed (local changes/conflicts or network issue, continuing)"
return 0
fi
else
if ! git clone --depth 1 "$DOTFILES_REPO" "$DOTFILES_DIR"; then
echo "[WSL] Warning: dotfiles clone failed (check network access and DOTFILES_REPO URL, continuing)"
return 0
fi
fi
Comment thread install.sh
Comment on lines +238 to +245
ensure_agent_fastpath_loader() {
cat > "$HOME/.wsl-agent-fastpath.sh" <<'EOF'
export WSL_AGENT_FAST_PATH="${WSL_AGENT_FAST_PATH:-1}"
if [[ "${WSL_AGENT_FAST_PATH:-1}" != "1" && -f "$HOME/.bashrc.heavy" ]]; then
source "$HOME/.bashrc.heavy"
fi
EOF
}
Comment thread install.sh
Comment on lines +348 to +368
if [[ "$PROFILE" == "dev" || "$PROFILE" == "full" ]]; then
if ! section_done "bun_global_tools_v1"; then
echo "[WSL] Installing JS tooling via Bun"
if command -v bun >/dev/null; then
bun add -g \
typescript \
eslint \
prettier \
pnpm \
nx \
@biomejs/biome \
opencode-ai \
@openai/codex \
@fission-ai/openspec
mark_section_done "bun_global_tools_v1"
else
echo "[WSL] Bun not found; skipping global JS tooling install"
fi
else
echo "[WSL] Global JS tooling already installed"
fi
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.

3 participants