Skip to content

build(deps): major bumps — astro 6→7, @types/node 25→26 (+ starlight ecosystem)#258

Open
theagenticguy wants to merge 1 commit into
mainfrom
deps/major-astro7-typesnode26
Open

build(deps): major bumps — astro 6→7, @types/node 25→26 (+ starlight ecosystem)#258
theagenticguy wants to merge 1 commit into
mainfrom
deps/major-astro7-typesnode26

Conversation

@theagenticguy

Copy link
Copy Markdown
Owner

Stages tonight's two flagged major bumps together, with the ecosystem packages each one drags along. All quality gates pass locally.

Bumps

Package From To Scope
astro 6.4.8 7.0.3 @opencodehub/docs
@astrojs/starlight 0.40.0 0.41.1 docs (peer-requires astro ^7.0.2)
starlight-links-validator 0.24.1 0.25.1 docs (dev)
starlight-page-actions 0.6.1 0.6.2 docs (dev)
@types/node 25.9.3 26.0.1 all 18 packages (dev)

Code change required by @types/node 26

v26 widened ExecException.code from number to string | number (it can be a signal name). The old double-cast in packages/analysis/src/git.ts (err as NodeJS.ErrnoException & { code: number }) no longer type-checks. Rewrote it to read the property once into a loosely-typed local and narrow on typeof === "number" — the runtime guard was already doing exactly this, so behavior is unchanged (numeric exit code, or fail-open to 1 on a signal/undefined).

Verification (local, this branch)

  • pnpm run typecheck — ✓ (all 18 packages, exit 0)
  • pnpm --filter '!@opencodehub/docs' -r build — ✓
  • pnpm --filter @opencodehub/docs build — ✓ astro 7: 64 pages, all internal links valid, pagefind search index built, sitemap generated
  • pnpm exec biome check . — ✓ (686 files)
  • pnpm -r test — ✓ (354 tests, 0 fail)

Known residual (non-blocking)

pnpm peers check still flags two soft unmet-peer warnings:

  • starlight-llms-txt@0.10.0 (its latest) declares peer astro ^6.0.0
  • a transitive @astrojs/mdx@5.0.6 declares peer astro ^6

These are warnings, not errors — the docs build succeeds on astro 7 regardless. Clear them once starlight-llms-txt ships an astro-7 peer; no action needed to merge.

Blast radius

astro/starlight = docs-site only (excluded from the CI build + test matrix). @types/node = dev-time typings only, no runtime change. The one source edit is a type-narrowing cleanup in a read-only git helper.

🤖 Generated with Claude Code

…e 25→26

Two major upgrades staged together with their required ecosystem bumps:

- astro ^6.4.8 → ^7.0.3 (@opencodehub/docs) + @astrojs/starlight
  0.40.0 → 0.41.1 (peer-requires astro ^7.0.2) + starlight-links-validator
  0.24.1 → 0.25.1 + starlight-page-actions 0.6.1 → 0.6.2. Docs build is
  green: 64 pages, all internal links valid, pagefind index built.
- @types/node 25.9.3 → 26.0.1 across all 18 packages. v26 widened
  ExecException.code to `string | number`, which broke the double-cast in
  packages/analysis/src/git.ts; rewritten to read the property once and
  narrow on `typeof === "number"` (the runtime guard was already correct).

Gates: typecheck ✓, build ✓, biome ✓ (686 files), 354 tests ✓.

Residual: starlight-llms-txt@0.10.0 (latest) and a transitive
@astrojs/mdx@5.0.6 still declare astro ^6 as a peer — soft warnings only;
the docs build succeeds. Drop the override path once those publish astro-7
peers.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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