Conn2Flow
Navegação das docs

SDD

req-165: Sanitização de ANSI no Detector de Versão do Tailwind CLI e Governança de Terminal no rsync Windows (BATCH-170)

Durante a execução de pipelines de compilação e sincronização no Windows (resources:sync e project:update-all), foram identificados dois pontos de fricção no ambiente de…

1. Descrição do Problema & Contexto

Durante a execução de pipelines de compilação e sincronização no Windows (resources:sync e project:update-all), foram identificados dois pontos de fricção no ambiente de desenvolvimento:

Pilar 1: Invalidação de Cache por Códigos de Cor ANSI no Tailwind CLI

  1. No Windows, ao invocar tailwindcss.cmd --help, o binário emite caracteres de escape de formatação ANSI colorida (\x1b[34mv4.3.3\x1b[39m).

  2. A função tailwind_recursos_cli_version() em gestor/controladores/agents/arquitetura/tailwind-recursos.php utiliza expressão regular /tailwindcss\s+v?([0-9]+(?:\.[0-9]+){1,3})/i sem antes limpar sequências ANSI.

  3. Isso faz com que no Windows a versão detectada seja avaliada como 'unknown', enquanto no Linux/CI ela é detectada como '4.3.3'.

  4. Como a versão compõe o hash de fingerprint de cada recurso no .tailwind-build-manifest.json, qualquer sincronização ou restauração vinda do git/CI invalida 100% dos 237 recursos, forçando a recompilação redundante de todos os arquivos CSS e gerando um diff espúrio de mais de 3.000 linhas no manifesto.

Pilar 2: Falha de Descritores de Arquivo dup() in/out/err failed no rsync do Windows

  1. Ao executar tarefas via terminais reaproveitados (como o task runner do VS Code com reaproveitamento de painel bash -i -c), handles herdados de processos anteriores que terminaram com erro ficam inválidos.

  2. O binário rsync do MSYS2/Git Bash falha ao tentar duplicar os descritores de I/O para abrir os pipes do transporte SSH (-e ssh), resultando no erro dup() in/out/err failed (código de saída 12).

  3. Essa armadilha precisa ser catalogada na skill de governança c2f-shell-and-windows-traps com instruções para isolamento de tarefas ("presentation": { "panel": "new" } ou abertura de nova sessão).


2. Escopo Técnico de Alterações

Módulo 1: Sanitização no Núcleo do Compilador Tailwind

  • Em gestor/controladores/agents/arquitetura/tailwind-recursos.php:

    • Na função tailwind_recursos_cli_version(), aplicar limpeza de sequências de escape ANSI (/\x1b\[[0-9;]*[a-zA-Z]/ ou passagem de NO_COLOR=1 / FORCE_COLOR=0) antes de realizar o casamento da expressão regular da versão.

    • Assegurar que tanto no Windows quanto no Linux a versão retorne a string limpa '4.3.3'.

Módulo 2: Suíte de Testes Automatizados

  • Em tests/Unit/PHP/TailwindRecursosTest.php (ou teste unitário dedicado de arquitetura):

    • Adicionar teste unitário validando que tailwind_recursos_cli_version() extrai corretamente a versão semântica a partir de saídas brutas contendo sequências de escape ANSI e formatações de console variadas.

Módulo 3: Governança & Documentação de Skills

  • Em .codex/skills/c2f-shell-and-windows-traps/SKILL.md (e nos 4 espelhos .claude, .cursor, .gemini, .github):

    • Adicionar a armadilha de reaproveitamento de terminais no VS Code com falha dup() in/out/err failed no rsync do MSYS2.

    • Documentar a necessidade de sanitização de saídas ANSI ao inspecionar binários CLI multiplataforma.


3. Critérios de Validação e Aceite

  1. Estabilidade de Cache do Tailwind:

    • php cli/c2f.php resources:sync executado no Windows deve reconhecer a versão '4.3.3', mantendo os fingerprints compatíveis com o repositório.

    • O comando deve reportar 0 para compilar, 237 em cache sem gerar diffs de versão 'unknown' no .tailwind-build-manifest.json.

  2. Suíte de Testes 100% Verde:

    • Execução do PHPUnit passando sem regressões.

  3. Paridade de Espelhos e Evidências:

    • Skills atualizadas com MD5 idêntico nos 5 espelhos.

    • Evidências registradas em sdd/implementation/BATCH-170.md, BATCH-INDEX.md e CURRENT.md.

O Futuro é Híbrido: Humano + IA.

O Conn2Flow é a ferramenta. Se você precisa do Arquiteto para desenhar a estratégia da sua empresa usando essa tecnologia...

Contrate Consultoria Especializada