Resumo
O Astro 7.3.6 reúne correções no servidor de desenvolvimento, nos handlers compostos de astro/fetch e astro/hono, no CSS gerado pelo build e nas rotas com i18n. A versão também confere o cabeçalho Host contra security.allowedDomains no adapter Node. A proteção contra CSRF considera os cabeçalhos enviados pelos navegadores atuais.
Novidades
- Astro 7.3.6 — YAML: o parser aceita timestamps e chaves de mesclagem. Os erros de YAML ganham o mesmo formato no Astro, no Markdown, no MDX e no Markdoc.
- Astro 7.3.6 — CLI: os comandos do Astro conseguem instalar versões de pacote identificadas por tag.
Melhorias
- Astro 7.3.6 — Segurança: o adapter Node valida o cabeçalho
Hostcontrasecurity.allowedDomains. A proteção contra CSRF lê os cabeçalhos que os navegadores modernos enviam. - Astro 7.3.6 — Build reproduzível: o array
assetsdo manifesto do servidor recebe ordem fixa. Builds com as mesmas entradas geram arquivos idênticos byte a byte.
Correções
- Astro 7.3.6 — Servidor de desenvolvimento:
astro:actionsdentro de server island deixa de derrubar o servidor em adapters com ambiente SSR pré-empacotado, como@astrojs/cloudflare. O HMR atualiza estilos com escopo quando a marcação e o<style>mudam na mesma gravação do arquivo. CSS Modules usam hash calculado pelo caminho em desenvolvimento, o que permite atualizar o estilo sem recarregar a página. - Astro 7.3.6 — Handlers compostos: o
i18n()deastro/fetcheastro/honorenderiza a página 404 personalizada para caminhos sem prefixo de idioma. Ocontext.propsdeixa de chegar comonullquandoactions()roda antes demiddleware(). Caminhos com codificação excessiva recebem400 Bad Request. Páginas de erro localizadas, comosrc/pages/pt/404.astro, deixam de responder com status200. - Astro 7.3.6 — CSS do build: o CSS importado por um script de
injectScript('page')volta a entrar no build. Um componente renderizado no servidor e comclient:onlyna mesma página deixa de duplicar CSS. O CSS pré-carregado por import dinâmico deixa de responder 404 quando o módulo usa uma ilha hidratada da mesma página. - Astro 7.3.6 — Rotas e i18n: rotas criadas com
injectRoute()respondem sem prefixo de idioma quandoi18n.routing.prefixDefaultLocaleestá ativo.Astro.rewrite()econtext.rewrite()escolhem a rota certa emastro devquando duas rotas dinâmicas atendem ao mesmo caminho. - Astro 7.3.6 — Content collections: o loader
glob()lê arquivos com#ou?no caminho. Mudanças nas coleções voltam a aparecer depois que o servidor reinicia por alteração de configuração. Um componenteserver:deferdentro de slot de outro componente, numa entrada MDX, deixa de travar a renderização. - Astro 7.3.6 — Actions: um corpo JSON malformado retorna
400(BAD_REQUEST). Um nome de action com codificação percentual inválida retorna404(NOT_FOUND). Os dois casos respondiam com500. - Astro 7.3.6 — Ambientes e componentes:
astro buildvolta a funcionar no Windows com Node.js 25 ou superior, sem o erroERR_INVALID_ARG_VALUE. O Astro roda no StackBlitz e em outros ambientes WebContainer.Astro.cookies.get()retorna cookies com valor vazio. O<video muted>mantém o áudio desligado depois de uma navegação pelo ClientRouter no Chrome.
Ponto de Atenção
Projetos com o adapter Node e security.allowedDomains configurado recusam requisições cujo Host não esteja na lista. Teste sugerido: acesse o site pelo domínio público e por um endereço fora da lista e confira a recusa. Clientes que tratavam o status 500 de uma action com JSON inválido precisam reconhecer o 400.
Notas da versão
As mudanças estão nas notas oficiais do Astro 7.3.6, publicadas em 06/10/2026. A versão também atualiza @astrojs/internal-helpers para 0.12.0 e @astrojs/markdown-satteri para 0.4.3.