Skip to content

fix(protheus): advpl-lint não deixa mais lixo do appre no repo - #12

Merged
tbc-joaovitor merged 1 commit into
mainfrom
fix/advpl-lint-appre-artifacts
Jul 20, 2026
Merged

tbc-joaovitor merged 1 commit into
mainfrom
fix/advpl-lint-appre-artifacts

Conversation

@tbc-joaovitor

Copy link
Copy Markdown
Contributor

Problema

O hook protheus/hooks/advpl-lint.sh roda advpls appre após todo Write/Edit em .prw/.tlpp. Confirmado com o binário real (TDS-LS 2.0), o appre grava 3 arquivos de trabalho por execução e o hook nunca os limpava:

Artefato Onde caía
<fonte>.ppo ao lado da fonte
<fonte>.errprw ao lado da fonte
console_error.log no cwd

Resultado: o repo do projeto acumulava lixo a cada edição de fonte ADVPL/TLPP.

Fix

O appre passa a rodar com a flag nativa -O <tmpdir> (que reposiciona .ppo/.errprw) e com cwd num dir temporário descartável (mktemp -d, que também recolhe o console_error.log); o dir é apagado com rm -rf logo após capturar a saída. O hook só consome stdout/stderr — nunca lê esses arquivos —, então descartá-los é seguro. Os includes de PROTHEUS_INCLUDES são absolutizados (realpath) por causa do novo cwd.

Validação

  • ✅ Suíte tests/hooks/advpl-lint.test.sh — todos os testes passam.
  • ✅ Teste end-to-end com o binário real num projeto simulado: antes cada run deixava .ppo + .errprw + console_error.log; depois, zero artefatos.

🤖 Generated with Claude Code

O hook roda `advpls appre` após todo Write/Edit em .prw/.tlpp. O appre grava
3 arquivos de trabalho por execução — .ppo e .errprw ao lado da fonte e
console_error.log no cwd — e o hook nunca os limpava, sujando o repo do projeto.

Fix: appre roda com a flag nativa -O <tmpdir> e cwd num dir temporário
descartável, apagado com rm -rf logo após capturar a saída. O hook só consome
stdout/stderr, nunca esses arquivos, então descartá-los é seguro. Includes do
PROTHEUS_INCLUDES são absolutizados (realpath) por causa do novo cwd.

Validado: suíte tests/hooks/advpl-lint.test.sh (todos passam) + teste
end-to-end com binário real TDS-LS 2.0 (antes deixava 3 artefatos, depois zero).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@tbc-joaovitor
tbc-joaovitor merged commit db101b5 into main Jul 20, 2026
1 check passed
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