chore(deps): upgrade documentation dependencies for Astro 7 (DOCSDEV-75) - #3974
Merged
Merged
Conversation
Move the documentation package to Astro 7 and Starlight 0.42. Dependency changes, documentation package only: - astro ~6.3.8 to ~7.2.10 - @astrojs/starlight ^0.39.2 to ^0.42.0 - @astrojs/markdown-remark ^7.1.2 to ^7.3.0 - @interledger/docs-design-system ^0.13.0 to ^0.14.0 - mermaid ^11.15.0 to ^11.17.2 - starlight-links-validator ^0.24.0 to ^0.26.0 - starlight-llms-txt ^0.9.0 to ^0.11.0 - starlight-versions ^0.9.0 to ^0.10.1 - eslint, prettier, typescript-eslint and globals to current - eslint-plugin-astro and astro-eslint-parser to version 3 - add eslint-plugin-jsx-a11y and turn on the accessibility rules Code changes: - Astro 7 replaces the remark and rehype pipeline with Satteri. Wrap the four existing plugins in the unified() processor from @astrojs/markdown-remark. The plugin order stays the same, so heading anchors still work. - Drop the unused Badge import in signing-admin-api-requests.mdx. The design system never exported Badge. Astro 6 tolerated the missing export. Astro 7 rejects it. - Remove six dead client:load directives from MermaidWrapper and Tooltip. Both are Astro components, so the directive did nothing. It only produced a build warning. The rendered HTML does not change. The root tooling stays on ESLint 8.57 and TypeScript 5.4 on purpose. Only the documentation package moves.
✅ Deploy Preview for brilliant-pasca-3e80ec ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
🚀 Performance Test ResultsTest Configuration:
Test Metrics:
📜 Logs |
0.14.0 imports mermaid with a bare specifier. That resolves to a build which expects a bundler to fix the CommonJS interop for dayjs. The Vite dev server does not do that, so the module throws and no diagram renders. Production was never affected. 0.14.1 imports the pre-bundled mermaid build instead. Verified on the dev server, not on astro preview.
Contributor
Anca2022
previously approved these changes
Sep 10, 2026
Anca2022
left a comment
Contributor
There was a problem hiding this comment.
Just need to update interledger/docs-design-system to v0.14.2 for the stylistic fix you already flagged.
The rest looks good! 😁
Astro 7 removes the whitespace text node between a sidebar link and its external-link icon. The design system rule declared no spacing of its own, so the icon touched the last letter of the link text. 0.14.2 declares the gap with margin-inline-start. This repo has 320 external sidebar links across 160 of its 174 pages. Verified on the built output: the icon sits 3.5px clear of the text, and all 35 mermaid diagrams still render.
mkurapov
approved these changes
Sep 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
Move
packages/documentationto Astro 7 and Starlight 0.42, part of the DOCSDEV-75 cycle.Only
packages/documentation/changes, plus the lockfile.Code changes
1. Markdown pipeline moves to
unified()Astro 7 replaces the remark and rehype pipeline with Satteri, a Rust processor. Satteri cannot
run remark or rehype plugins. This package needs four of them, so the config now wraps them in
the
unified()escape hatch from@astrojs/markdown-remark.2. Remove an unused
Badgeimportsigning-admin-api-requests.mdximportedBadgefrom the design system. The design systemhas never exported
Badge. Astro 6 tolerated the missing export. Astro 7 fails the build with[MISSING_EXPORT].Badgewas never used in the file, so the import is gone.3. Remove six dead
client:loaddirectivesTwo on
MermaidWrapperand four onTooltip, across both locales and both doc versions. Bothare Astro components, so a hydration directive does nothing on them. All six only produced a
build warning.
This is not an Astro 7 regression. Astro 6.3.8 emits the identical warning.
The rendered HTML does not change. I rebuilt and diffed all six pages. Two are byte
identical. The other four differ only in the random UUID that
Tooltip.astrogenerates onevery build, and they are byte identical once that UUID is normalized.
4. Turn on the accessibility rules
eslint-plugin-astro3 exposes thejsx-a11yrule set, soeslint.config.jsnow extendsflat/jsx-a11y-recommended.Result: 34 rules active, 0 findings. The rules are confirmed to run against
.astrofiles,so the zero is a real result.
Verification
Node 24.18.1, pnpm 10.33.0.
pnpm --filter documentation run build:docsstarlight-links-validatorpnpm lint:docs--max-warnings=0pnpm checksat rootpnpm --filter documentation run build:docs:graphql/llms.txt,/llms-full.txt,/llms-small.txtAstro.locals.starlightRoutestill worksexpressiveCodeborder overridesv1-betapagescompressHTMLdefault change to'jsx'One thing to know about the lockfile
packages/frontendandlocalenv/mock-account-servicing-entityeach changed exactly one line.The
@remix-run/dev@2.17.5peer resolution key gained(lightningcss@1.33.0). Astro 7 andVite 8 pull
lightningcssinto the workspace, andvite@6.4.1declares it an optional peer,so pnpm folds it into the key.
@remix-run/devdoes not change. It stays 2.17.5.css.transformer: 'lightningcss'is set. No config ineither package sets it.
This leak cannot be avoided without adding root
pnpm.overrides, which is out of scope here.Test plan