Pular para o conteúdo

Changelog — página 5

Tag: 0.55.0 Data: 2026-09-14

Atualiza a documentação para as versões mais recentes do Astro e do Starlight, mantendo o deployment estático em Cloudflare Workers com prerenderização Node.

Validação:

  • pnpm release:check;
  • pnpm test, pnpm check, pnpm validate e pnpm docs:build;
  • pnpm --dir apps/docs check e pnpm --dir apps/docs test.

Tag: 0.54.0 Data: 2026-09-13

Release minor que simplifica o workflow de desenvolvimento e mantém a cobertura visual através dos previews Astro, do catálogo de fixtures e dos previews Gutenberg. A identidade React no SSR Astro também foi corrigida para que a integração @astrojs/react seja a única responsável pela otimização dos módulos React.

Validação:

  • pnpm release:check;
  • pnpm test, pnpm check, pnpm validate e pnpm docs:build;
  • pnpm test:astro-preview (37 testes).

Tag: 0.53.9 Data: 2026-09-13

Release de correção após a validação do workflow identificar uma regra de formatação PHP no utilitário de backups do CMS. Mantém a instalação do Português (Portugal, AO90) e a atualização das traduções no deployment Ploi.

Validação:

  • pnpm release:check;
  • pnpm test, pnpm check, pnpm validate e pnpm docs:build.

Tag: 0.53.8 Data: 2026-09-13

Correção do deployment do CMS em Ploi para garantir a instalação e ativação do Português (Portugal, AO90) e a atualização das traduções do core, plugins e temas WordPress.

Validação:

  • pnpm release:check;
  • pnpm test, pnpm check e pnpm validate.

Tag: 0.53.7 Data: 2026-09-12

Primeira release coordenada preparada para o produto Bioeconomia.pt. A versão SemVer canónica é validada no monorepo e o workflow protegido publicará o frontend, o WordPress e a documentação a partir do mesmo commit etiquetado. Deployment: pendente de configuração e aprovação dos providers.

  • O manifesto de release regista as versões de produto e dos plugins CMS com ciclo próprio.
  • O deployment Ploi recebe a tag e o SHA exatos através de RELEASE_REF e RELEASE_SHA, em vez de depender de uma revisão móvel de main.
  • Frontend, CMS e documentação expõem endpoints de smoke para confirmar que a versão publicada é a esperada.
  • Tags de pré-release validam o código sem alterar produção.

Validação:

  • pnpm release:check;
  • pnpm test, pnpm check, pnpm validate e pnpm docs:build;
  • checks CMS e plugin do workflow de release.

Tag: v0.53.6 / nomia-blocks-v0.53.6
Data: 2026-09-02

Auditoria dos 35 blocos estruturados Gutenberg ↔ Astro, com contratos, previews dos blocos e renderização WordPress sincronizados.

Blocos afetados:

  • o inventário completo de blocos getquick/* mantém as chaves canónicas separadas das leituras legacy e passa a exigir conteúdo de preview não vazio;
  • getquick/page-hero-media-grid, getquick/page-hero-static e getquick/page-hero-slider deixam de expor opções de apresentação indevidas no contrato, mantendo apenas os controlos visuais intencionais do hero media grid;
  • os blocos de gráficos validam intervalos e descartam linhas inválidas; getquick/urban-waste-geo-chart passa a aceitar regiões tipadas e getquick/grafico-donut usa preenchimentos posicionais do frontend;
  • listas, eventos, mapas, PAEC, PABS e cartões requerem conteúdo mínimo válido antes de renderizar.

Impacto no WordPress e no frontend:

  • o editor Gutenberg ganhou controlos de media, URLs, alinhamento, raios e partilha para o hero media grid, com IDs de media emparelhados com os respetivos URLs;
  • os adapters Astro deixam de preencher blocos editoriais com dados de demonstração quando o conteúdo WordPress está ausente ou inválido; os fallbacks de arquivo de plataformas e podcasts continuam explícitos;
  • URLs legacy (*Url, url) continuam a ser lidos sem substituir as chaves canónicas (*Href, *Src), evitando migrações destrutivas;
  • eventos sem href ou slug utilizável, e dados quantitativos fora do intervalo, deixam de receber identidade ou valores fabricados.

Migração:

  • conteúdo existente continua compatível através de legacyReads; novas gravações devem usar as chaves canónicas do contrato;
  • preencha os IDs de media ao selecionar imagens no editor e forneça regions/slices/linhas de dados válidas nos blocos de gráficos;
  • os valores de cor, preenchimento, classes e IDs de Figma são derivados pelo frontend e não devem ser adicionados como atributos Gutenberg.

Validação:

  • pnpm cms:build e pnpm contract:check na raiz de bioeconomia.pt;
  • pnpm test e pnpm validate na raiz de bioeconomia.pt;
  • deploy não executado nesta preparação.

Tag: v0.14.0 / nomia-blocks-v0.14.0 Data: 2026-06-21

Maior release de consolidação do sistema de blocos. Normaliza a nomenclatura dos blocos (breaking), remove um campo de contrato sem uso, refatora o editor e os renderizadores Astro, e resolve os últimos detalhes de compatibilidade nativa com o WordPress. Conclui os 16 tickets do plano plans/improvements.

Nomenclatura de blocos (T11, breaking):

  • o nome WordPress (blockName) passa a derivar sempre do catalogId (getquick/${catalogId}), tornando a relação blockName ↔ catalogId trivialmente derivável;
  • 22 nomes PT ou inconsistentes foram renomeados para inglês alinhado com o catalogId (podcasts-list→content-list, plataformas-grid→content-grid-filters, map-list-explorer→map-list, barometro-results→cta-results, família bioeconomia-*→EN, família economia-circular-*→EN, indicadores→indicators-grid, oportunidades→opportunities-grid, biblioteca→library-grid, multimedia→multimedia-grid, família graph-*→EN);
  • os catalogId são mantidos estáveis, pelo que os briefs Markdown, as âncoras de /blocks e os ids de componentes React ficam inalterados — não há migração de post_content nem wp search-replace;
  • getquick/grafico-donut é a única exceção documentada: o seu catalogId em PT serve também de id do componente React para hidratação client:only;
  • o campo astroComponent foi removido do tipo de contrato e das 31 entradas (não era usado — o dispatcher resolve o componente Astro via um mapa de imports explícito em WpCustomBlock.astro).

Compatibilidade WordPress (T16):

  • a lista de dependências de fallback do editor passa a espelhar build/index.asset.php (adicionados wp-data e react-jsx-runtime), evitando sub-enqueue silencioso se o index.asset.php estiver em falta;
  • o render_callback emite um comentário HTML de debug para que content(format: RENDERED) e vistas non-headless sejam inspecionáveis (o Astro continua a renderizar via content(format: RAW));
  • o ArrayField passa a usar MediaUploadButton, uniformizando o rótulo “Substituir imagem”;
  • o CSS do editor é colocado junto de cada componente (editors/<Nome>.css) mais lib/tematica.css para o controlo de temática partilhado; os primitivos comuns continuam em editor.css. O bundle final é idêntico ao anterior.

Editor Gutenberg (T04, T05, T06, T13):

  • o editor é convertido de createElement() manual para JSX (T04);
  • o index.jsx monolítico é dividido em editors/, fields/ e lib/ (T05);
  • a cadeia if do Edit() é substituída por um registo CUSTOM_EDITORS (T06) — adicionar um editor customizado é agora uma linha no registo;
  • são extraídos os primitivos partilhados UrlField, MediaUploadButton e ImageAltControl (T13).

Renderizadores Astro (T07, T08, T12):

  • o ternário do WpCustomBlock.astro é substituído por um mapa RENDERERS (T07);
  • os wrappers Astro passam a usar normalizadores partilhados (textOr, firstArray, mapValid, enumText), eliminando duplicação em 27 renderizadores (T08);
  • o tipo AttrsFor<N> passa a ser derivado do contrato, pelo que ler um campo fora do contrato falha no astro check (T12).

Catálogo e UX (T03, T09):

  • são removidos os 11 blocos demo bar-chart-*/interactive-area-chart (sem conteúdo editável, com “dados fictícios”), deixando o catálogo em 31 blocos (T03);
  • o src do iframe de preview passa a ser debounced (300 ms), reduzindo o volume de pedidos ao digitar (T09).

Decisão de arquitetura (T10):

  • documentada em ARCHITECTURE.md a decisão de manter o registo de blocos via loop PHP a partir de uma fonte única, em vez de adotar block.json por bloco.

Testes (T15):

  • adicionado um conjunto Pest ao plugin (stubs WordPress, sem DDEV) cobrindo bootstrap, contratos, filtro de categoria e config localizada; esta release traz 21 testes.

Versão e deploy:

  • nomia-fe, getquick/nomia-blocks, tema nomia-black e nomia-docs alinhados em 0.14.0;
  • o composer.lock do plugin foi regenerado.

Validação e deploy:

  • pnpm version:check no workspace apa-nomia;
  • pnpm -C nomia-fe test (10 validadores), pnpm -C nomia-fe exec astro check (0 erros) e Pest (21 testes);
  • tags v0.14.0 e nomia-blocks-v0.14.0 publicadas em nomia-fe;
  • bump do tema em nomia-admin e de nomia-docs, com pins de submódulo atualizados no workspace.

Tag: v0.13.0 / nomia-blocks-v0.13.0 Data: 2026-06-20

Limpa a duplicação de atributos espelho (*Href/*Url e *Src/*Url), deixa de versionar artefactos gerados do plugin e melhora a experiência de edição.

Contratos e editor:

  • remove 17 chaves espelho em 12 contratos de blocos (forma canónica = *Href/*Src);
  • apaga os helpers setMirroredAttribute/attributeText do editor; os campos de CTA e imagem passam a escrever apenas a chave canónica;
  • centraliza os fallbacks de leitura legacy em optionalText() (normalizers.ts);
  • o alt das imagens passa a ser derivado da biblioteca de media;
  • cada bloco pode definir uma descrição própria no inserter do editor.

Build e versionamento:

  • deixa de fazer tracking de artefactos gerados (build/, contracts.json, contracts.php) via .gitignore (T01);
  • normalização de finais de linha para LF via .gitattributes;
  • 12 briefs de blocos e 2 exemplos do ARCHITECTURE.md atualizados.

Validação e deploy:

  • pnpm version:check;
  • tags v0.13.0 e nomia-blocks-v0.13.0 em nomia-fe;
  • bump do tema nomia-black para 0.13.0 e de nomia-docs para 0.13.0.

Tag: v0.12.0 / nomia-blocks-v0.12.0 Data: 2026-06-19

Corrige a integração headless do questionário do Barómetro com Gravity Forms e publica a primeira documentação estrutural das páginas principais do site.

Frontend e Barómetro:

  • a página /barometro/questionario/ passa a carregar metadados do formulário através de uma rota server-side do Astro;
  • GET /api/gravity-forms/1 tenta primeiro a rota pública WordPress GET /wp-json/nomia/v1/gravity-forms/1, evitando depender de credenciais Gravity Forms para leitura pública;
  • o fallback autenticado para a REST API v2 do Gravity Forms continua disponível para ambientes que não tenham a rota pública activa;
  • foi adicionado GET /api/gravity-debug/[formId] para diagnosticar origem WordPress, credenciais configuradas e modo de autenticação sem expor o segredo;
  • a resolução de credenciais distingue ambientes locais e produção com variáveis GRAVITY_REST_CONSUMER_KEY_LOCAL, GRAVITY_REST_CONSUMER_SECRET_LOCAL, GRAVITY_REST_CONSUMER_KEY_PRODUCTION e GRAVITY_REST_CONSUMER_SECRET_PRODUCTION.

WordPress e Composer:

  • adiciona a rota pública nomia/v1/gravity-forms/{id} no WordPress para devolver a estrutura do formulário via GFAPI::get_form();
  • reforça as permissões do papel administrator para Gravity Forms quando GFCommon::all_caps() está disponível;
  • actualiza o tema nomia-black para 0.12.0;
  • actualiza o composer.lock de nomia-admin para getquick/nomia-blocks 0.12.0.

Documentação:

  • nomia-docs fica alinhado em 0.12.0;
  • a secção Páginas passa a documentar a navegação principal do site;
  • adiciona a página Páginas > Barómetro > Questionário, descrevendo objectivo editorial, fluxo esperado, endpoints envolvidos e requisitos técnicos.

Validação e deploy:

  • pnpm version:check no workspace apa-nomia;
  • tsc --noEmit, oxlint e oxfmt --check nos ficheiros frontend alterados;
  • php -l web/app/mu-plugins/nomia-config.php;
  • deploy de nomia-fe para Cloudflare Workers e purge de cache;
  • deploy de nomia-docs para Cloudflare Workers;
  • smoke test em produção com https://nomia.getquick.io/api/gravity-forms/1 e https://nomia.getquick.io/barometro/questionario/.

Tag: v0.11.2 / nomia-blocks-v0.11.2 Data: 2026-06-16

Republica a release dos blocos Nomia com o mesmo conjunto funcional de 0.11.1, mas com a documentação técnica e os fixtures exigidos pelo workflow de packaging já incluídos no commit etiquetado.

Blocos afetados:

  • getquick/title-with-label: mantém o novo bloco editorial com etiqueta e título em uma ou duas linhas.
  • getquick/page-hero-static: mantém os controlos de imagem, CTA e alinhamento adicionados na release anterior.

Impacto no WordPress e no frontend:

  • a release Composer volta a apontar para o mesmo comportamento de frontend já publicado em nomia-fe;
  • o workflow de registry passa a validar também os briefs Markdown e fixtures do bloco antes de publicar o pacote getquick/nomia-blocks.

Validação de release:

  • pnpm version:check
  • pnpm test em nomia-fe
  • ddev composer update getquick/nomia-blocks --no-install em nomia-admin