Skip to content

build(docs): upgrade starlight and install the docs plugins - #1866

Merged
nasyrov merged 1 commit into
mainfrom
docs/upgrade-starlight-install-plugins
Aug 22, 2026
Merged

nasyrov merged 1 commit into
mainfrom
docs/upgrade-starlight-install-plugins

Conversation

@nasyrov

@nasyrov nasyrov commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

What does this PR do?

Brings apps/docs up to the dependency set the documentation work assumes. Nothing behaves
differently — astro.config.mjs is untouched and the rendered site is byte-identical apart from
Starlight dropping a dead pageHide listener (the DOM event is pagehide, so it never fired).

Verified by snapshotting dist/ before the change and diffing after a forced rebuild: same file
set, and that one script line is the only delta across both pages, modulo scoped-style and asset
hashes.

Closes #1852

The Starlight range needs a note

The ticket asked for >=0.41.5 "a patch bump inside the existing range". The specifier is
>=0.41.5 <0.41.7 rather than a caret, because ^0.41.5 floats to 0.41.7, which does not
type-check.

0.41.7 shipped on 5 August with @astrojs/markdown-satteri: ^0.3.5 and its own satteri: ^0.9.1
— consistent then, since 0.3.5 and 0.3.6 were still on satteri@^0.9.1. On 19 August
@astrojs/markdown-satteri@0.3.7 moved to satteri@^0.10.3 and that range swallowed it. Two
Sätteri copies now meet inside Starlight's own integrations/markdown-plugins.ts, which
pnpm typecheck compiles from source, so the docs app fails to type-check on a dependency it never
imports.

Confirmed upstream rather than a local resolution artefact: it reproduces on 0.41.6 and 0.41.7
with astro at both 7.1.1 and 7.2.4, and forcing satteri to 0.10.5 through pnpm.overrides
only swaps it for a different genuine error in the same file, because Starlight's code targets
satteri 0.9.

Starlight is migrating in withastro/starlight#4134,
blocked on an Astro release carrying
withastro/astro#17766 (merged, unreleased).
apps/docs/README.md records the constraint; #1865 tracks lifting it.

Knip

The five new dependencies have no consumer yet — that is the point of the prefactor — so each is
listed in knip's apps/docs ignore set with a note on which ticket wires it up.

Reviewer notes

  • apps/docs gets vitest without @plumix/vitest-config, coverage, or a test:unit script,
    unlike every other vitest-having package. Those belong with the content-check suite ticket.
  • The cap could alternatively live in root pnpm.overrides, the repo's existing mechanism for
    blocking a bad upstream version. I put it on the dependency so the acceptance criterion's floor
    and the upstream break sit where a reader is already looking; happy to move it.
  • No changeset: apps/docs is private.

Type of change

  • Bug fix
  • Feature (requires approved Discussion)
  • Refactor (no behavior change)
  • Documentation
  • Performance improvement
  • Tests
  • Chore (dependencies, CI, tooling)

Checklist

  • pnpm typecheck passes
  • pnpm lint passes
  • pnpm build passes
  • I have added/updated tests for my changes (if applicable)

pnpm format, pnpm knip, pnpm test and pnpm install --frozen-lockfile also pass. No tests
added: this change installs dependencies and wires nothing up. The suite that exercises them lands
with the content-check ticket.

AI-generated code disclosure

  • This PR includes AI-generated code

Screenshots

No admin UI change.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 22, 2026 •

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
plumix-docs e3b146f Commit Preview URL

Branch Preview URL
Aug 22 2026, 09:32 PM

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 22, 2026 •

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
plumix-marketing e3b146f Commit Preview URL

Branch Preview URL
Aug 22 2026, 09:32 PM

Brings apps/docs up to the dependency set the documentation work assumes. Nothing behaves
differently — the rendered site is byte-identical apart from Starlight dropping a dead
`pageHide` listener (the DOM event is `pagehide`, so it never fired).

The Starlight floor is `0.41.5`, where the `docsSchema({ extend })` bugs with Zod enums and
unions were fixed; written against `0.41.3`, the two-value `stability` enum would surface as a
confusing failure rather than a known issue.

The specifier is `>=0.41.5 <0.41.7` rather than a caret range because `0.41.7` raised its
`@astrojs/markdown-satteri` floor to `^0.3.5` while leaving its own `satteri` dependency at
`^0.9.1`, and `@astrojs/markdown-satteri@0.3.7` moved on to `satteri@^0.10.3`. The two Sätteri
copies meet inside Starlight's own `integrations/markdown-plugins.ts`, which `pnpm typecheck`
compiles from source, so the docs app stops type-checking on a dependency it never imports.
apps/docs/README.md records the constraint; #1865 tracks lifting it.

`starlight-auto-sidebar`, `starlight-links-validator` and `starlight-llms-txt` land as
dependencies; `vitest` and `plumix` as devDependencies. None has a consumer yet, so each is
listed in knip's `apps/docs` ignore set with a note on which ticket wires it up.

Closes #1852
@nasyrov
nasyrov force-pushed the docs/upgrade-starlight-install-plugins branch from 4c58595 to e3b146f Compare August 22, 2026 21:31
@nasyrov
nasyrov merged commit ffe78e9 into main Aug 22, 2026
27 checks passed
@nasyrov
nasyrov deleted the docs/upgrade-starlight-install-plugins branch August 22, 2026 22:05
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.

docs: upgrade Starlight and install the docs plugins

1 participant