Gap: portal-davinci run (2026-08-20)
Problema
Assets hasheados (/assets/main-*.js) são servidos pelo CF Workers Assets antes do worker, então a lógica FINGERPRINTED_ASSET_RE do createDecoWorkerEntry (immutable, max-age=31536000) nunca aplica neles. Resultado: shipam com o default do Vite/CF public, max-age=0, must-revalidate → parity cache module penaliza (12 requests cacheable não cacheados, 590KB, cache score 52).
Fix
deco-migrate deve gerar public/_headers no scaffold:
/assets/*
Cache-Control: public, max-age=31536000, immutable
CF Workers Assets honra _headers. Filenames são content-addressed → 1 ano immutable é seguro.
Alternativa
Configurar assets.run_worker_first no wrangler.jsonc pra o worker interceptar, mas o _headers é mais simples e não adiciona latência de worker aos assets.
Aplicado no site
portaldavinci-tanstack commit 0b78c40. Template storefront-tanstack também não tem _headers → mesmo gap.
Transferida de decocms/parity#253 (bug de template do deco-migrate / @decocms/blocks-cli, fora do escopo do repo parity).
Gap: portal-davinci run (2026-08-20)
Problema
Assets hasheados (
/assets/main-*.js) são servidos pelo CF Workers Assets antes do worker, então a lógicaFINGERPRINTED_ASSET_REdocreateDecoWorkerEntry(immutable, max-age=31536000) nunca aplica neles. Resultado: shipam com o default do Vite/CFpublic, max-age=0, must-revalidate→ parity cache module penaliza (12 requests cacheable não cacheados, 590KB, cache score 52).Fix
deco-migratedeve gerarpublic/_headersno scaffold:CF Workers Assets honra
_headers. Filenames são content-addressed → 1 ano immutable é seguro.Alternativa
Configurar
assets.run_worker_firstno wrangler.jsonc pra o worker interceptar, mas o_headersé mais simples e não adiciona latência de worker aos assets.Aplicado no site
portaldavinci-tanstack commit 0b78c40. Template storefront-tanstack também não tem _headers → mesmo gap.
Transferida de decocms/parity#253 (bug de template do deco-migrate / @decocms/blocks-cli, fora do escopo do repo parity).