Skip to content

Refine Linux setup flow, frontend runtime selection, and shell behavior#35

Open
Copilot wants to merge 10 commits intomainfrom
copilot/improve-installation-flow
Open

Refine Linux setup flow, frontend runtime selection, and shell behavior#35
Copilot wants to merge 10 commits intomainfrom
copilot/improve-installation-flow

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 21, 2026

This change tightens the Linux setup path around bootstrap, shell behavior, and frontend runtime installation. It addresses three failure modes in the current flow: package-manager onboarding happening too late, setup not stopping cleanly on interrupt, and frontend tool installs colliding with bootstrap-installed Node or system npm permissions.

  • Setup flow / Linux bootstrap

    • Moves zsh-config ahead of bootstrap so shell scaffolding is in place before package-manager decisions.
    • Makes Linux bootstrap explicitly offer brew even when Homebrew is not installed yet.
    • Stops the flow after a fresh Linux Homebrew install and asks the user to rerun, instead of continuing with a partially updated environment.
  • Interrupt handling

    • Propagates Ctrl-C into streamed child processes.
    • Treats interrupted shell commands as a controlled shutdown path instead of leaving the install flow running or hanging.
  • Linux shell behavior

    • Disables zsh spelling correction on Linux only, avoiding IME-related command input disruption while preserving existing behavior on other platforms.
  • Frontend tool selection

    • Splits frontend setup into explicit selectable items:
      • fnm
      • Node.js via fnm
      • pnpm
      • git-cz
    • Keeps default/non-interactive setup aligned with the full recommended frontend set.
  • Node / fnm conflict resolution

    • Changes the Linux installer bootstrap Node runtime to be session-scoped for install.sh instead of persisting shims into ~/.local/bin.
    • Prefers fnm’s default runtime for later frontend installs.
    • Removes stale suitup bootstrap Node shims when they would shadow an fnm-managed runtime.
  • npm global install permissions

    • Installs npm globals with a user-local prefix under ~/.local, avoiding EACCES failures from writes into system directories such as /usr/lib/node_modules.

Example of the Linux-specific shell change:

if [[ "$OSTYPE" == linux* ]]; then
  unsetopt CORRECT
else
  setopt CORRECT
fi

Copilot AI and others added 10 commits April 17, 2026 13:40
Agent-Logs-Url: https://github.com/ChangeHow/suitup/sessions/aa7612c7-f999-4a62-9799-95de3df4d86d

Co-authored-by: ChangeHow <23733347+ChangeHow@users.noreply.github.com>
Agent-Logs-Url: https://github.com/ChangeHow/suitup/sessions/aa7612c7-f999-4a62-9799-95de3df4d86d

Co-authored-by: ChangeHow <23733347+ChangeHow@users.noreply.github.com>
Agent-Logs-Url: https://github.com/ChangeHow/suitup/sessions/aa7612c7-f999-4a62-9799-95de3df4d86d

Co-authored-by: ChangeHow <23733347+ChangeHow@users.noreply.github.com>
Agent-Logs-Url: https://github.com/ChangeHow/suitup/sessions/aa7612c7-f999-4a62-9799-95de3df4d86d

Co-authored-by: ChangeHow <23733347+ChangeHow@users.noreply.github.com>
Agent-Logs-Url: https://github.com/ChangeHow/suitup/sessions/2a1fceb8-5b8c-47b1-9d1c-fcaeb9ce385b

Co-authored-by: ChangeHow <23733347+ChangeHow@users.noreply.github.com>
Agent-Logs-Url: https://github.com/ChangeHow/suitup/sessions/2a1fceb8-5b8c-47b1-9d1c-fcaeb9ce385b

Co-authored-by: ChangeHow <23733347+ChangeHow@users.noreply.github.com>
Agent-Logs-Url: https://github.com/ChangeHow/suitup/sessions/2a1fceb8-5b8c-47b1-9d1c-fcaeb9ce385b

Co-authored-by: ChangeHow <23733347+ChangeHow@users.noreply.github.com>
Agent-Logs-Url: https://github.com/ChangeHow/suitup/sessions/2a1fceb8-5b8c-47b1-9d1c-fcaeb9ce385b

Co-authored-by: ChangeHow <23733347+ChangeHow@users.noreply.github.com>
Agent-Logs-Url: https://github.com/ChangeHow/suitup/sessions/2a1fceb8-5b8c-47b1-9d1c-fcaeb9ce385b

Co-authored-by: ChangeHow <23733347+ChangeHow@users.noreply.github.com>
Agent-Logs-Url: https://github.com/ChangeHow/suitup/sessions/2a1fceb8-5b8c-47b1-9d1c-fcaeb9ce385b

Co-authored-by: ChangeHow <23733347+ChangeHow@users.noreply.github.com>
@ChangeHow
Copy link
Copy Markdown
Owner

@copilot 再跑下测试

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 21, 2026

@copilot 再跑下测试

已重新跑测试,当前提交 8344b3d 本地通过:npm test,共 21 个 test files、205 个 tests 全部通过。

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • dl.google.com
    • Triggering command: /usr/lib/apt/methods/https /usr/lib/apt/methods/https (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI requested a review from ChangeHow April 21, 2026 01:49
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.

2 participants