---
changelog:
  category: Release
  version: blume@1.1.1
date: '2026-07-19T18:56:45Z'
seo:
  description: >-
    Add seo.og.titles to name the generated Open Graph card of a custom .astro
    page, keyed by route. A custom page has no frontmatter to read, so its card
    was…
title: blume@1.1.1
type: changelog
---
### Patch Changes

- b5ed87a: Add `seo.og.titles` to name the generated Open Graph card of a custom `.astro` page, keyed by route. A custom page has no frontmatter to read, so its card was titled by humanizing the last URL segment — turning `/cli` into "Cli" with no way to say "CLI". An entry here wins over the humanized segment; `"/"` addresses the home, whose card otherwise carries the site title.
- 52cfa77: Give each GitHub-sourced changelog release page a unique meta description derived from its release notes, instead of every release falling back to the site-wide description. The summary is the notes reduced to plain text — section headings ("### Patch Changes") and changesets' commit-hash bullet prefixes dropped, code fences and link syntax stripped — then cut at a word boundary to fit the 110–160 character search-snippet range `blume audit` checks for. It's carried as `seo.description`, so it feeds the meta/OG/Twitter description tags without adding a visible lede paragraph to the page.
- 20ae16d: Fix `blume check` failing on generated files under a strict tsconfig: island and example wrappers now mirror the wrapped component's props onto `Astro.props` so required props type-check through the spread, and the OG endpoint's `customRoutes` array is explicitly typed so an empty list is no longer an implicit `any[]`.
- 9a6345f: Decouple Twoslash from the project's hoisted TypeScript so sites can use TypeScript 7 (tsgo). The generated Astro config now wires in `blumeTwoslashTransformer` from `blume/markdown`, which compiles Twoslash fences with Blume's own pinned classic TypeScript (passed explicitly as `tsModule` plus `tsLibDirectory` for the default lib files) instead of resolving whatever `typescript` the surrounding project installed — under TS7 that package's main export is a version stub with no compiler API and no `lib.*.d.ts` files, so any `twoslash` fence crashed the build.
- 32ced54: Evaluate `{frontmatter.*}` prop expressions when downleveling components for agent-facing output. Serializers — built-in and `ai.markdownComponents` — now receive the same values the rendered page shows instead of empty props, and the page's front-matter is exposed on the serializer context.
- ff37999: Stop `blume audit` flagging the changelog RSS feed link in llms.txt as a stale entry. The stale-entry check compared each llms.txt target against built pages only, but the generator itself links non-page assets — the changelog RSS feed — so a target the static file index serves now counts as valid, the same way redirect targets may land on a served asset.
- f322ac1: Warn when an index page's own frontmatter `title` diverges from its folder's explicit `meta.title`. The two are resolved independently, so a translator can update one and forget the other — the sidebar looks right while the page's own `<title>`/heading stays stale. Reported as `BLUME_NAV_INDEX_TITLE_MISMATCH` from `blume doctor`/`blume check`. A mismatch is reported once — untranslated pages filled in from the fallback locale are exempt, since their fix is translating the page, not editing the fallback locale's frontmatter.
- eb25103: Link Blume's nested integrations into the generated runtime when npm's split install hoists astro away from them. An `overrides` astro pin plus an incremental `npm install` — the exact steps the Astro-conflict warning recommends — hoists astro to the project root while `@astrojs/mdx` and Blume's other deps stay nested under `node_modules/blume/node_modules`, so fresh checkouts and `blume build --isolated` failed with `Cannot find module '@astrojs/mdx'`. The dependency link now probes for the integrations instead of astro alone and links the nested set, letting astro keep resolving from the hoisted copy.
- 80dc1c1: Fail `blume build` (exit 1) when any page fails frontmatter validation, instead of silently dropping the invalid pages and reporting a green build. Pass `--no-strict` to restore the old lenient behavior — the build then warns how many pages were dropped instead of printing an unqualified success.
- 7c75bb8: Warn when two sidebar siblings (pages or folders) resolve to the same explicit or numeric `order`, instead of silently falling back to an alphabetical tiebreak. Reported as `BLUME_DUPLICATE_SIDEBAR_ORDER` from `blume doctor`/`blume check` and any other diagnostics consumer.
