Pular para o conteúdo

Changelog

Este changelog segue as tags de release do repositório nomia-fe. As releases semver usam a tag v<versão> e, para o pacote Gutenberg, a tag nomia-blocks-v<versão>.

As entradas antigas mantêm um resumo simples baseado na mensagem da tag ou do commit associado. As próximas releases devem ter notas mais completas, escritas antes de publicar as tags.

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-listcontent-list, plataformas-gridcontent-grid-filters, map-list-explorermap-list, barometro-resultscta-results, família bioeconomia-*→EN, família economia-circular-*→EN, indicadoresindicators-grid, oportunidadesopportunities-grid, bibliotecalibrary-grid, multimediamultimedia-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

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

Adiciona o novo bloco Gutenberg getquick/title-with-label, baseado no componente aprovado em Figma, e melhora o bloco getquick/page-hero-static com controlos editoriais mais completos.

Blocos afetados:

  • getquick/title-with-label: novo bloco para combinar uma etiqueta curta com um título em uma ou duas linhas.
  • getquick/page-hero-static: a seleção de imagem passa a existir na barra lateral e na barra de ferramentas, o CTA pode ser ocultado no inspector e o alinhamento do texto pode ser alternado entre esquerda, centro e direita.

Impacto no WordPress e no frontend:

  • o plugin getquick/nomia-blocks passa a expor o novo contrato title-with-label;
  • o Astro em nomia-fe passa a renderizar getquick/title-with-label e a respeitar showCta e textAlign em getquick/page-hero-static.

Validação de release:

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

Tag: v0.8.1 / nomia-blocks-v0.8.1
Data: 2026-06-11

Adiciona a documentação pública do Nomia Docs com Astro Starlight, tema Obsidian e deploy em Cloudflare Workers.

Inclui a categoria Blocos, com uma página em Português de Portugal para cada bloco Gutenberg personalizado existente, instruções de utilização e exemplos visuais. Também adiciona este changelog e reforça o processo de release para que futuras alterações a blocos Gutenberg actualizem a documentação correspondente antes da publicação.

Validação de release:

  • versões alinhadas entre nomia-docs, nomia-fe, getquick/nomia-blocks e nomia-admin;
  • pnpm --dir nomia-docs check;
  • pnpm docs:build.

Tag: v0.8.0 / nomia-blocks-v0.8.0
Data: 2026-06-11

Adiciona templates de splash page ao conjunto Nomia.

Tag: v0.7.1 / nomia-blocks-v0.7.1
Data: 2026-06-03

Release de manutenção do pacote getquick/nomia-blocks.

Tag: v0.6.1 / nomia-blocks-v0.6.1
Data: 2026-06-03

Corrige rotas dinâmicas e páginas filhas de multimédia servidas pelo WordPress.

Tag: v0.6.0 / nomia-blocks-v0.6.0
Data: 2026-06-02

Carrega o menu de cabeçalho a partir do WordPress.

Tag: v0.5.1 / nomia-blocks-v0.5.1
Data: 2026-05-27

Release de manutenção do pacote getquick/nomia-blocks.

Tag: v0.5.0 / nomia-blocks-v0.5.0
Data: 2026-05-27

Liga os blocos Gutenberg de catálogo ao frontend.

Tag: v0.4.1 / nomia-blocks-v0.4.1
Data: 2026-05-27

Adiciona metadados de repositório ao pacote nomia-blocks.

Tag: v0.4.0 / nomia-blocks-v0.4.0
Data: 2026-05-23

Permite validação de versão em modo standalone.

Tag: v0.3.1 / nomia-blocks-v0.3.1
Data: 2026-05-23

Renderiza páginas WordPress a partir do JSON dos blocos.

Tag: v0.3.0 / nomia-blocks-v0.3.0
Data: 2026-05-23

Adiciona páginas WordPress on-demand e editor inline para o bloco home-intro.

Tag: v0.2.0 / nomia-blocks-v0.2.0
Data: 2026-05-19

Corrige o pacote de release ao excluir vendor e executar preflight antes de publicar.

Tag: v0.1.1
Data: 2026-05-19

Adopta semver para nomia-blocks e documenta o processo de incrementos .1.

Tag: v0.1.07
Data: 2026-05-19

Adiciona o bloco grafico-donut e organiza gráficos por tipo.

Tag: nomia-blocks-v0.1.05
Data: 2026-05-19

Corrige o bootstrap Composer do plugin em Bedrock.

Tag: v0.1.04
Data: 2026-05-19

Publica a versão 0.1.04 do plugin WordPress getquick/nomia-blocks.

Tag: v0.1.03
Data: 2026-05-18

Actualiza o plugin de blocos Nomia para 0.1.03.

Tag: v0.1.02
Data: 2026-05-17

Corrige o carregamento do plugin de blocos Nomia.

Tag: v0.1.01
Data: 2026-05-17

Actualiza workflows para usar Node 25.