docs: atualiza CLAUDE.md e ASSETS.md pós-migração Bootstrap/Composer

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 <noreply@anthropic.com>
This commit is contained in:
andreandClaude Sonnet 5 committed 2026-09-25 22:01:29 +01:00
1 parent 4ddefa6dae
commit 7482dc98f2
2 files changed
+27 -23

No files matched your search

+18 -16
View File
@@ -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é").
+9 -7
View File
@@ -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.