0.2.0 gated `buildSeoMap` on `preset === 'linked-home'`, leaving
`runtimeConfig.public.parallax.seoMap` as `{}` for every multi-tenant
consumer. The runtime `[slug].vue` reads from that map via
`useSiteSeo(slug)` to fill `<title>`, `<meta og:title>`, `<meta og:image>`,
and the html lang — so multi-tenant pages prerendered:
<title>aurora-y-mateo</title> ← raw slug, not `meta.title`
<meta og:title content="aurora-y-mateo">
<meta og:image content> ← empty
<html lang> ← missing → ua default
iMessage / WhatsApp / X link previews look broken because there's no
image and the title is the URL fragment. That's a regression vs the
hand-rolled `useEventMeta` the previous nuxt.config-based multi-tenant
consumer was running.
Drop the gate. `buildSeoMap` runs for both presets; the runtime page
already does the right thing once the map is populated. The privacy
framing of `multi-tenant` (no robots index, no sitemap, no analytics)
is about discoverability, not social previews — the moment a recipient
opens the share, the meta tags are visible to them anyway, so baking
them is the strictly better default for a "share a private URL"
workflow.
No new option / no surface change — the `seoMap` already lives at the
right key for both presets. Existing tests (`nuxt-scan-content.test.ts`)
cover `buildSeoMap`'s behaviour against real `mkdtemp` content trees;
no new test needed since the failure was at the module wiring level,
not in the map builder.
Bump 0.2.0 → 0.2.1.
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>