- fix(cli): theme:build não trunca mais dist/theme.css (no-op seguro entry-null)
- feat(themes): isolation 'manual' (engine css) + tema default já escopado
- feat(api): GET /themes leitura pura, sync explícito em POST /themes/sync
- fix(core): THEMES_DIR = alias de OKCMS_THEMES_DIR (diretório único p/ web+API)
- refactor(web): descoberta de templates unificada no theme-runtime
- chore(themes): themes/default/theme.json canônico + screenshot + compatibility
- fix(lint): imports não usados que quebravam o gate de lint do CI
- test(e2e): seção de temas no e2e-api (46/46)
1029 testes unitários / 96 arquivos, typecheck, lint e e2e verdes.