From 7482dc98f2e5bade497d4b646943aeaad6d46abc Mon Sep 17 00:00:00 2001 From: andre Date: Fri, 25 Sep 2026 22:01:29 +0100 Subject: [PATCH] =?UTF-8?q?docs:=20atualiza=20CLAUDE.md=20e=20ASSETS.md=20?= =?UTF-8?q?p=C3=B3s-migra=C3=A7=C3=A3o=20Bootstrap/Composer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ficaram desatualizados depois da sessão de fixes: CLAUDE.md ainda dizia "Bootstrap 4+5 em simultâneo" (já não, ver 1e2068b) e listava "sem srcset"/"sem create/edit unificado" sem as razões reais por trás de cada um continuar em aberto. ASSETS.md ainda tinha a tabela de antes da migração (duas versões de Bootstrap, jQuery duplicado, "sem Composer") — reescrito para o estado real: Bootstrap 5.3.3 único, jQuery uma cópia, Composer ligado (composer.json/lock), PHPMailer hand-vendored por decisão documentada (não por falta de tentar). Co-Authored-By: Claude Sonnet 5 --- ASSETS.md | 34 ++++++++++++++++++---------------- CLAUDE.md | 16 +++++++++------- 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/ASSETS.md b/ASSETS.md index d0c6ddd..d451fee 100644 --- a/ASSETS.md +++ b/ASSETS.md @@ -1,32 +1,34 @@ # Assets de front-end desta app Estado real a 25/09/2026 (auditoria em `CLAUDE_GITEA/audits/fitme3070-auditoria-2026-09-24.html`, -ponto 7.4). Não segue ainda a convenção da frota (`shared/platform-tools/ASSETS.md`): sem -Composer, sem versão no nome das pastas, duas bibliotecas em duplicado. +ponto 7.4). Composer real desde 25/09 (`composer.json`/`composer.lock`, ver `PLATFORM_TOOLS.md`), +mas ainda sem versão no nome das pastas dos ficheiros hand-vendored. ## O que está vendorizado e onde | Biblioteca | Versão | Caminho | Usado em | |------------------------|--------|----------------------------------------|----------------------| -| Bootstrap | 4.3.1 (EOL) | `assets/vendor/bootstrap/` | Site público | -| Bootstrap | 5.3.3 | `assets/vendor/bootstrap5/` | Backoffice | +| Bootstrap | 5.3.3 | `assets/vendor/bootstrap5/` | Site público + backoffice (unificado 25/09) | | Bootstrap Icons | — | `assets/vendor/bootstrap-icons/` | Backoffice | -| jQuery | 3.7.1 | `assets/vendor/jquery/jquery-3.7.1.min.js` | Backoffice | -| jQuery | 3.7.1 | `site/assets/js/jquery-3.7.1.min.js` | Site público (cópia idêntica, pasta diferente) | +| jQuery | 3.7.1 | `assets/vendor/jquery/jquery-3.7.1.min.js` | Site público + backoffice (deduplicado 25/09) | | Font Awesome Free | 5.13.1 | `site/assets/fonts/fontawesome/` | Site público (~18 MB, todo o pacote) | -| PHPMailer | 7.1.1 | `vendor/PHPMailer/` | Envio de email (`config/functions_mail.php`) | +| PHPMailer | 7.1.1 | `vendor/PHPMailer/` | Envio de email (`config/functions_mail.php`, partilhado) | -Nenhuma pasta tem a versão no nome; para confirmar a versão real de cada uma, ver os comentários -de cabeçalho dos `.min.css`/`.min.js` ou `VERSION`/`const VERSION` no caso do PHPMailer. +`assets/vendor/bootstrap/` (a cópia 4.3.1) ficou sem nenhuma referência depois da migração — +ainda no disco, ninguém a carrega, por remover (`git rm -r`, não feito ainda). -## Porque não segue a convenção da frota +Nenhuma pasta hand-vendored tem a versão no nome; para confirmar a versão real de cada uma, ver +os comentários de cabeçalho dos `.min.css`/`.min.js` ou `VERSION`/`const VERSION` no caso do +PHPMailer. `composer.lock` já fixa a versão exata do que o Composer instala. -- **Sem Composer** (ver ponto 7.1 da auditoria): o PHPMailer devia vir de `composer require - phpmailer/phpmailer` e copiar-se o ficheiro final para vendor/, não ser colado à mão. -- **Duas versões de Bootstrap no mesmo projeto** porque o site público nunca migrou para o 5; até - lá, as duas cópias mantêm-se (o backoffice não pode regredir para o 4). -- **jQuery duplicado** em `assets/vendor/` e `site/assets/js/` — mesma versão, cópia - desnecessária; devia ser um só ficheiro partilhado pelos dois lados. +## Porque não segue por completo a convenção da frota + +- **PHPMailer continua hand-vendored** em vez de vir do Composer da app: `shared/platform-tools/ + functions_mail.php` (partilhado por toda a frota) exige `vendor/PHPMailer/src/PHPMailer.php` por + caminho fixo, não o layout `vendor/phpmailer/phpmailer/...` que o Composer geraria — mudar isso é + código partilhado, fora do alcance de uma app só (mesma razão que a fotografia mantém as duas + árvores). `composer.json` declara a dependência mesmo assim, para `composer audit`/`outdated` + saberem da versão. - **Google Fonts ainda vem de CDN** (`site/includes/include.php`) — pendente self-hosting do Roboto (ver [[fitme-audit-2026-09]] na memória do projeto, "Pending for André"). diff --git a/CLAUDE.md b/CLAUDE.md index 557f185..eac7dff 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -105,15 +105,17 @@ audit`/`outdated` are meaningful) — added 2026-09-25, matching the fotografia platform's setup. `vendor/PHPMailer/` is the one hand-vendored exception, gitignore- allowlisted: `shared/platform-tools/functions_mail.php` hard-codes that exact path fleet-wide, so Composer's own `vendor/phpmailer/phpmailer/` exists in parallel but -isn't what actually gets `require_once`'d. See `ASSETS.md` for frontend asset versions -(two Bootstrap majors, duplicated jQuery — known debt, not yet unified). +isn't what actually gets `require_once`'d. See `ASSETS.md` for frontend asset versions. +Both the public site and the backoffice load Bootstrap 5.3.3 (unified 2026-09-25 — the +public site ran 4.3.1 before that); jQuery is one shared copy, not duplicated. ## What's not done (tracked, not silently missing) The full audit and its live status live in a separate report, not in this repo (`CLAUDE_GITEA/audits/fitme3070-auditoria-2026-09-24.html` on the maintainer's -machine). As of 2026-09-25: no real front controller (6.2, above), no unified -create/edit view pairs, no DataTables on backoffice listings, public site still on -Bootstrap 4 while the backoffice runs 5, no `srcset`/responsive images. None of these -are urgent; none should be "fixed" as a side effect of an unrelated change — each is -its own piece of work. +machine). As of 2026-09-25: no real front controller (6.2, above), no central listing +registry, no DataTables on backoffice listings, no `srcset` (deliberate — uploads are +already close to their CSS display size, see the audit item), `views/admin/galerias/` +still has separate create/edit (deliberately — they're not actually a duplicated pair, +see the audit item). None of these are urgent; none should be "fixed" as a side effect +of an unrelated change — each is its own piece of work.