-
Intake: req-059.md
-
Status: complete
-
Alvo de validação: VALIDATION-CHECKLIST.md#batch-059
Contexto
Este lote implementa refinamentos críticos ao Pull System (BATCH-058):
-
Renomeia o script CLI do servidor para evitar colisões com o descompilador do cliente.
-
Adiciona suporte para overrides de
scopeemoduloemtables_config.jsona nível de projeto (permitindo sincronizar tabelas de módulos do Core sem tocar nos JSONs originais do Core). -
Implementa a recuperação seletiva e inteligente de mídias/uploads da pasta
contents/baseada em hashes MD5 e timestamps, com touch de mtime e logs de conflito/choque para proteção de modificações locais.
Slices
| # | Escopo | Arquivos | Validação mínima |
|---|---|---|---|
| 1 | Renomeação de CLI servidor e API zippando contents/ |
api.php, recuperacao-banco-de-dados.php |
php -l + git status |
| 2 | Compilador e descompilador com suporte a overrides no tables_config.json |
atualizacao-dados-recursos.php, recuperacao-dados-recursos.php |
php -l + run Update => Core |
| 3 | Descompilador com cópia inteligente de contents/, touch e relatório de conflitos |
recuperacao-dados-recursos.php |
php -l |
| 4 | Script shell recover-project.sh e VS Code Tasks atualizados |
recover-project.sh, .vscode/tasks.json |
Syntax + manual execution test |
| 5 | Atualização e extensão da suíte de testes unitários | RecuperacaoDadosRecursosTest.php |
composer test |
Notas de execução
-
Mapeamento de Scope/Modulo: Em
coletarConfigsTabelas()erdr_coletar_configs(), se a tabela global carregarscope === 'module'emodulo !== null, calcular a pasta base (base_dir) como<gestorDir>/modulos/<modulo>/resources. -
Cópia Inteligente: Calcular
md5_fileantes de copiar. Se idêntico, pular. Se diferente, sobrescrever se e somente seremote_mtime > local_mtime. Se local for mais novo ou de mesma data, pular a cópia, registrar o conflito viaRDR_CONFLITOe acumular no sumário final. -
Timestamp Touch: Usar
touch()local com a data do servidor ao realizar a cópia para manter os relógios de arquivos sincronizados em futuros pulls/deploys.
Evidência de validação
-
php -lOK emapi.php,recuperacao-banco-de-dados.php,atualizacao-dados-recursos.php,recuperacao-dados-recursos.phpeRecuperacaoDadosRecursosTest.php. -
.vscode/tasks.jsonvalidado comConvertFrom-Json. -
git diff --checkOK. -
vendor/bin/phpunit tests/Unit/PHP/RecuperacaoDadosRecursosTest.phpOK: 11 testes, 65 assertions. -
composer testOK: 59 testes, 207 assertions, 4 skipped e 1 deprecation PHPUnit preexistente. -
bash -n ai-workspace/en/scripts/projects/recover-project.shnão executado neste Windows porque o comandobashencaminha para WSL e não há distribuição instalada.