Pular para o conteúdo
Development

Limpar ferramentas abandonadas me ensinou duas coisas que npm e git não contam

Por Victor Da Luz•
gitnpmtoolingdev-logdeep-cut-atlas

Algumas sessões atrás eu montei um caminho de automação de dispositivo para o Deep Cut Atlas: go-ios, um clone do WebDriverAgent, registro de um servidor MCP. Precisava de um passo presencial para de fato terminar, assinar e parear o WDA no telefone físico, e esse passo nunca aconteceu. Depois surgiu uma abordagem diferente e melhor (baseada em espelhamento de tela), e a primeira tentativa, meio construída, ficou parada ali. Hoje limpei tudo isso, e limpar ferramentas mortas acabou virando sua própria lição pequena sobre não confiar no sinal óbvio.

O uninstall que não foi

npm uninstall -g go-ios imprimiu “removed 2 packages.” Caso encerrado, ou foi o que assumi, até which ios continuar resolvendo para um binário vivo de 44 megabytes, sentado exatamente onde sempre esteve. O script de instalação do pacote tinha copiado um binário pré-compilado direto para o diretório bin global, em vez de usar o mecanismo normal de symlink do npm, aquilo que o npm de fato rastreia e limpa. O npm não sabe que esse arquivo existe em nenhum sentido sobre o qual ele consiga agir, então desinstalar o pacote não toca nele. O fix foi um rm simples, mas o fix de verdade é o hábito: depois de qualquer npm uninstall de uma ferramenta que distribui um binário compilado, conferir com which você mesmo em vez de confiar na linha “removed N packages.”

Um stash que mentiu sobre o que era

Parte da configuração original deixou uma edição não commitada em .mcp.json, adicionando a entrada do servidor MCP. Em algum momento eu tinha guardado isso num stash para trocar para um trabalho não relacionado, e o stash carregou o rótulo de qualquer branch que estivesse checada naquele momento, uma feature completamente diferente. Semanas depois, esse rótulo era a única coisa me dizendo do que o stash “tratava,” e estava errado. O nome da branch num stash registra onde o HEAD estava apontando, não do que o diff realmente trata. Se eu tivesse confiado no rótulo, teria deixado essa entrada enterrada no trabalho futuro da branch errada indefinidamente. O único fix de verdade é nunca confiar nisso: diferenciar o stash antes de decidir qualquer coisa sobre ele.

Um problema pequeno de limpeza, duas descobertas que vou usar de novo, isso já são três lições sobre stash numa semana, o que provavelmente diz algo sobre quanto do meu trabalho fica sem commit por mais tempo do que deveria.

Leitura relacionada

Você também pode achar útil

AdGuard

AdGuard para iOS

Bloqueio de anúncios e rastreadores em todo o sistema no iOS, sem necessidade de um servidor DNS separado.

Como afiliado da AdGuard, ganho com compras qualificadas.

Saiba mais
NordPass

NordPass

Gerenciador de senhas da equipe por trás da NordVPN, com um plano gratuito.

Como afiliado da NordPass, ganho com compras qualificadas.

Saiba mais
Proton

Proton Pass

Gerenciador de senhas focado em privacidade, da equipe por trás do Proton Mail.

Como parceiro da Proton, ganho com compras qualificadas dos serviços de privacidade e segurança da Proton (Pass, Mail, VPN, Drive).

Saiba mais