Skip to content

fix: checagem real do git no preflight (shim do Xcode no macOS + PATH pós-winget no Windows) - #15

Merged
elberrd merged 1 commit into
mainfrom
fix/preflight-git-real-check
Aug 14, 2026
Merged

fix: checagem real do git no preflight (shim do Xcode no macOS + PATH pós-winget no Windows)#15
elberrd merged 1 commit into
mainfrom
fix/preflight-git-real-check

Conversation

@elberrd

@elberrd elberrd commented Aug 14, 2026

Copy link
Copy Markdown
Owner

Resumo

O preflight já checava/instalava o git, mas tinha dois furos reais exatamente no macOS e no Windows:

  1. Falso positivo no macOS limpo: todo Mac recém-formatado tem /usr/bin/git — mas é só o shim do Xcode Command Line Tools. which git passava, a CLI dizia "Git installed." e o aluno quebrava lá na frente no git init. Agora gitWorks() valida com git --version de verdade (e, sem CLT, o próprio macOS abre o diálogo nativo de instalação). Mac sem brew ganha manualHint com xcode-select --install.

  2. PATH velho no Windows pós-winget: winget install Git.Git atualiza o PATH no registro, mas não no processo em execução — a verificação pós-install falharia mesmo com install ok. refreshWindowsPath() anexa os diretórios conhecidos (C:\Program Files\Git\cmd, GitHub CLI) ao process.env.PATH do run atual; os filhos herdam.

De quebra, installOrInstruct ganhou o parâmetro verify — a reconferência pós-confirmação manual também usa o probe real, não só which.

Testes

  • Novos casos puros de installPlan: git no Windows via winget (Git.Git) e choco; gh no winget (GitHub.cli); Mac sem brew → null (caminho manual).
  • npm test: 722 pass, 0 fail. npm run lint limpo.

🤖 Generated with Claude Code

…H pós-winget no Windows

- gitWorks(): valida com `git --version`, não só `which git` — num Mac limpo
  o /usr/bin/git é apenas o shim do Xcode CLT e a checagem antiga dava falso
  positivo ("Git installed." sem git de verdade)
- manualHint no Mac sem brew sugere `xcode-select --install`
- refreshWindowsPath(): winget/choco atualizam o PATH no registro, não no
  processo em execução — anexa os diretórios conhecidos (Git\cmd, GitHub CLI)
  ao PATH do run atual para a verificação pós-install não falhar
- installOrInstruct ganha `verify` (reconferência manual usa o probe real)
- testes: planos de install do git no Windows (winget Git.Git / choco) e
  Mac sem brew → caminho manual

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@elberrd
elberrd merged commit 800f049 into main Aug 14, 2026
7 checks passed
@elberrd
elberrd deleted the fix/preflight-git-real-check branch August 14, 2026 17:55
elberrd added a commit that referenced this pull request Aug 14, 2026
…t real (#16)

Bump de release para publicar a logo oficial no README (#12), o relay off
respeitado no resume (#13), os achados do double-check (#14) e a checagem
real do git no preflight — shim do Xcode no macOS + PATH pós-winget no
Windows (#15).

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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