Skip to content

chore(docs): upgrade Blume to 2.2.3 - #789

Merged
thebuilder merged 1 commit into
mainfrom
feat/react-intersection-observer-docs-cd7153
Oct 16, 2026
Merged

thebuilder merged 1 commit into
mainfrom
feat/react-intersection-observer-docs-cd7153

Conversation

@thebuilder

@thebuilder thebuilder commented Oct 16, 2026 •

Copy link
Copy Markdown
Owner

Upgrades the docs site from Blume 1.2.1 to 2.2.3, following the Blume 2 upgrade guide.

Config migration

Blume 2 replaces the keyed config blocks with adapters imported from blume/* subpaths:

  • analytics: { vercel: true } becomes analytics: [vercel()] from blume/analytics
  • content.sources entries become filesystem({ root: "docs" }) and custom(...) from blume/sources
  • ai.llmsTxt moves to agents.llmsTxt
  • the deployment block is removed: it only pinned output: "static", which is the default when no host adapter is named

components.ts already used the accepted Blume 2 form and needed no change. npx blume upgrade reports nothing left to change.

Two breakages the upgrade check could not see

Both were found by verifying the built site rather than by any command exiting zero, so they are the parts worth reviewing.

Mobile header collapsed. theme.css hid [data-blume-header] > .flex.items-center.gap-2 below 30rem to make room for the logo lockup. In Blume 1 that selector matched the header's right-hand action group. Blume 2 re-laid out the header, so it started matching the left branding group instead, and the logo plus the nav drawer toggle disappeared on phones. Blume 2's header fits the lockup down to 320px, so the rule is dropped rather than retargeted. Checked at 320, 375, 560 and 768px on both the landing page and the docs pages.

Changelog pages leaked into search. sources/github-releases.ts wraps the release source only to stamp search: { exclude: true } on each entry, keeping 100+ release pages out of the search index. Blume 2 rebuilds a custom() source on the scan's own context by calling withContext, which the wrapper inherited from the source it spread, so Blume got an unwrapped source back and the exclusion was silently discarded. The wrapper now re-wraps on rebuild. The raw source factory also moved to blume/core/sources/github-releases.ts, since blume/sources/github-releases.ts is now the adapter factory.

To confirm this was a regression rather than something pre-existing, the docs were built at the pre-upgrade commit: Blume 1 indexed 9 routes with 0 changelog entries, Blume 2 indexed 109 with all 100 changelog pages. After the fix it is back to 9 and 0.

Verification

blume build, blume doctor, blume check, blume validate and biome check all pass, as do the library and docs turbo lint/typecheck/test tasks. The built site keeps its 301 changelog files, llms.txt, and static output.

Notes for the reviewer

  • storybook#typecheck fails on tsconfig.json option downlevelIteration being removed in TypeScript 7. This is pre-existing on this branch and unrelated: the committed lockfile already resolved typescript 7.0.2 for that workspace and its tsconfig is untouched here. Left for a separate change.
  • pnpm install re-resolved some shared transitive versions (vite, yaml, postcss), which is why the lockfile diff is large.
  • An oxc-transform-react peer warning appears under @astrojs/react. It does not affect the build.

Blume 2 replaces the keyed config blocks with adapters imported from
`blume/*` subpaths, so `blume.config.ts` moves to `vercel()` from
`blume/analytics` and `filesystem()`/`custom()` from `blume/sources`.
`ai.llmsTxt` becomes `agents.llmsTxt`, and the `deployment` block goes
away entirely since it only pinned `output: "static"`, now the default
when no host adapter is named.

Two breakages the upgrade check could not see:

`theme.css` hid `[data-blume-header] > .flex.items-center.gap-2` below
30rem to make room for the logo lockup, which in Blume 1 matched the
header's right-hand action group. Blume 2 re-laid out the header and the
selector started matching the left branding group instead, so the logo
and the nav drawer toggle vanished on phones. Blume 2's header fits the
lockup down to 320px, so the rule is simply dropped.

`sources/github-releases.ts` wraps the release source only to stamp
`search: { exclude: true }` on each entry, keeping 100+ changelog pages
out of the search index. Blume 2 rebuilds a `custom()` source on the
scan's own context via `withContext`, which the wrapper inherited from
the source it spread, handing Blume back an unwrapped source and
silently dropping the exclusion. It now re-wraps on rebuild. The raw
source also moved to `blume/core/sources/github-releases.ts`, since
`blume/sources/github-releases.ts` is the new adapter factory.

Verified: build, doctor, check, validate and lint pass, and the built
search index holds no `/changelog/` routes, matching Blume 1.
@bolt-new-by-stackblitz

Copy link
Copy Markdown

Review PR in StackBlitz Codeflow Run & review this pull request in StackBlitz Codeflow.

@vercel

vercel Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
react-intersection-observer Ready Ready Preview Oct 16, 2026 1:53pm UTC
react-intersection-observer-storybook Ready Ready Preview Oct 16, 2026 1:53pm UTC

@pkg-pr-new

pkg-pr-new Bot commented Oct 16, 2026

Copy link
Copy Markdown
npm i https://pkg.pr.new/react-intersection-observer@789

commit: 1d070e9

@thebuilder
thebuilder merged commit 591e167 into main Oct 16, 2026
10 checks passed
@thebuilder
thebuilder deleted the feat/react-intersection-observer-docs-cd7153 branch October 16, 2026 14:03

This branch was successfully deployed

2 active deployments
Preview – react-intersection-observer-storybook — 1d070e94 Deployed Oct 16, 2026 by vercel[bot]
Preview – react-intersection-observer — 1d070e94 Deployed Oct 16, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant