Skip to content

fix(seo): getSiteSeo falls back to lowercase "site" key - #479

Merged
aline-pereira merged 1 commit into
mainfrom
fix/get-site-seo-case-insensitive-lookup
Aug 20, 2026
Merged

aline-pereira merged 1 commit into
mainfrom
fix/get-site-seo-case-insensitive-lookup

Conversation

@aline-pereira

@aline-pereira aline-pereira commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Problema

getSiteSeo() em packages/blocks/src/cms/loader.ts e o bloco equivalente em workerEntry.ts fazem lookup de blocks["Site"] (S maiúsculo). Em sites migrados do Fresh/Preact/Deno, o block key do site é "site" (minúsculo) — causando retorno silencioso de {} e zerando o SEO global (title, og:image, og:site_name, etc.) em todas as páginas.

Reportado em deco-sites/oficina-tanstack#59.

Fix

Tenta blocks["Site"] primeiro (backward compat com sites que usam a chave maiúscula), depois blocks["site"]:

// antes
const site = blocks["Site"] as Record<string, unknown> | undefined;

// depois
const site = (blocks["Site"] ?? blocks["site"]) as Record<string, unknown> | undefined;

Arquivos alterados:

  • packages/blocks/src/cms/loader.tsgetSiteSeo()
  • packages/tanstack/src/sdk/workerEntry.ts — bloco inline equivalente

Compatibilidade

  • Sites com chave "Site" (maiúsculo): comportamento idêntico, blocks["Site"] ainda retorna primeiro
  • Sites com chave "site" (minúsculo): agora encontram o bloco corretamente
  • Sites sem nenhum dos dois: retornam {} como antes

🤖 Generated with Claude Code


Summary by cubic

Fixes global SEO defaults by resolving the site block with a fallback to lowercase. Previously getSiteSeo and the worker only read blocks["Site"], returning {} on migrated projects and wiping site-wide SEO; now they try blocks["Site"] and then blocks["site"].

  • Backward compatible; no migration required. If neither key exists, behavior remains {}.
  • Touched code: packages/blocks/src/cms/loader.ts (getSiteSeo) and packages/tanstack/src/sdk/workerEntry.ts (worker SEO merge).

Written for commit 7fa67cb. Summary will update on new commits.

Review in cubic

The decofile block key for the site config is "site" (lowercase) in
sites migrated from Fresh/Preact/Deno. getSiteSeo() and the inline
equivalent in workerEntry.ts only looked up blocks["Site"] (capital S),
silently returning {} and zeroing out the global SEO fallback (title,
og:image, og:site_name, etc.) on every page.

Fix: try blocks["Site"] first (keeps backward compat with sites that use
the capital key), then fall back to blocks["site"].

Reported by: deco-sites/oficina-tanstack#59
@aline-pereira
aline-pereira requested a review from a team August 19, 2026 18:22
@aline-pereira
aline-pereira merged commit acb6229 into main Aug 20, 2026
1 check passed
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 7.48.4 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants