Skip to content

chore(deps): roll up 13 Dependabot bumps (Astro 7.3, TypeScript 6, prettier-plugin-astro 1.0) - #78

Merged
ephbaum merged 5 commits into
mainfrom
claude/dependent-pr-review-jj79kc
Sep 21, 2026
Merged

ephbaum merged 5 commits into
mainfrom
claude/dependent-pr-review-jj79kc

Conversation

@ephbaum

@ephbaum ephbaum commented Sep 21, 2026 •

Copy link
Copy Markdown
Owner

📝 What's This PR About?

Type of Change:

  • 🔧 Maintenance - Bug fixes, dependency updates, refactoring

📋 Description

Consolidates all 13 open Dependabot PRs into one branch so a single build gates
the lot. Two of them were red on their own; neither failure was real, and both
are explained below.

For Technical Changes:

  • What changed: 13 dependency bumps in 3 commits, plus a CLAUDE.md note.
  • Why: 13 PRs, 13 CI runs, and two permanently-red ones that each needed
    diagnosing before they could be judged.
  • Impact: Lockfile and package.json only, except the third commit, which
    reformats 11 .astro files.

d8945d0 — 11 bumps whose CI was already green

Package From To Was
zod 4.4.3 4.6.5 #77
vite 8.2.1 8.3.0 #73
@iconify-json/logos 1.2.12 1.2.14 #71
globals 17.11.0 17.12.0 #69
@typescript-eslint/parser 8.67.0 8.70.0 #68
@astrojs/sitemap 3.7.3 3.7.4 #66
sharp 0.35.3 0.35.4 #63
satori 0.29.0 0.33.4 #60
typescript 5.9.3 6.0.3 #57
@eslint/js 9.8.0 9.39.5 #46
unocss + @unocss/astro + @unocss/reset 66.7.5 66.10.2 #74

Dependabot raised only @unocss/reset; the three unocss packages share a
release train, so the other two move with it.

ea73b6d — astro 7.2.1 → 7.3.2 (was #76)

Red on its own with 20 astro check errors, every post.data access reported as
unknown. The cause is zod, not Astro: 7.3 infers a collection's data type
through the schema's .transform() in src/content.config.ts, and zod 4.4.3's
output types defeat that inference. Reproduced on a bare main, then bumped zod
alone on top — zero errors. Which is why it rides along here rather than
standing alone. The range resolves to 7.3.3.

ec72aed — prettier-plugin-astro 0.14.1 → 1.0.0 (was #75)

Red on its own because 1.0.x breaks JSX-ish expressions differently, leaving 11
files failing format:check. This commit carries the reformat. The ^1.0.0
range resolves to 1.0.1.

Two things found while verifying it, both upstream bugs rather than anything
wrong here:

  1. It is not idempotent. One pnpm run format emits a BaseHead.astro that
    fails format:check; a second pass converges. Minimal repro is a
    self-closing <script /> inside a {cond && …} expression long enough to
    wrap — all three conditions required. Writing the explicit </script>
    sidesteps it, which is what the tree now does.
  2. A worse sibling, #487,
    which we are not exposed to but easily could be.
    Multi-line /* … */
    comments in a <style> block gain two spaces of indentation every run and
    never converge, so format:check could never pass. Confirmed against our
    install (7 → 9 → 11 → 13 spaces). None of the three <style> blocks here
    carries a comment today, which is the only reason CI is green.

7206ab8 + c1e9129 record both in CLAUDE.md, since the symptom —
check:fix leaving CI red on a file it just rewrote — reads like a stale cache.

🖼️ Visual Changes

  • Visual changes described in comments

One, from the reformat. <Button>&larr; Back to blog</Button> in
BlogContent.astro now breaks across lines, which adds collapsing whitespace
either side of the label inside the anchor.

Established by diffing all 215 built pages against a 7.3.3 build of the previous
formatting, normalising out the per-build random font-fallback ids and
brutal-ui colours. That anchor is the only difference. Separately confirmed the
Umami <script> tag emits byte-identically with PUBLIC_UMAMI_WEBSITE_ID set,
since that branch is env-gated and absent from the page diff.

If zero output change is preferred, ec72aed is the only commit that causes any
and reverts cleanly on its own — at the cost of leaving #75 red.

🧪 Testing

  • Tested locally with pnpm run dev
  • Built successfully with pnpm run build
  • Preview deployment looks good
  • No console errors
  • Mobile responsive (if UI changes)

pnpm run lint, pnpm run format:check and pnpm run build all clean at each
of the three dependency commits, not just at the tip — 215 pages, astro check
reporting zero errors under TypeScript 6.

The unchecked boxes are genuinely unverified rather than assumed: the dev server
was not exercised, and the Vercel preview and mobile rendering want eyes on the
one whitespace change above. Nothing here touches layout or components beyond
formatting.

📚 Documentation

  • New features documented

CLAUDE.md gains a Working conventions entry on the two prettier-plugin-astro
1.0.x bugs. No README change needed.

🔗 Related

✅ Checklist

  • Code follows project conventions
  • No linting errors
  • Preview deployment works correctly
  • Ready for review

Preview deployment left unchecked until Vercel reports on this PR.

🤖 Generated with Claude Code

https://claude.ai/code/session_01G214G6mJBeVBZ3CbukkNRu


Generated by Claude Code

Consolidates the Dependabot PRs whose CI was already green into a single
lockfile update, so one build gates the lot instead of eleven:

  zod                       4.4.3  -> 4.6.5   (#77)
  vite                      8.2.1  -> 8.3.0   (#73)
  @iconify-json/logos       1.2.12 -> 1.2.14  (#71)
  globals                   17.11.0 -> 17.12.0 (#69)
  @typescript-eslint/parser 8.66.0 -> 8.70.0  (#68)
  @astrojs/sitemap          3.7.3  -> 3.7.4   (#66)
  sharp                     0.35.3 -> 0.35.4  (#63)
  satori                    0.29.0 -> 0.33.4  (#60)
  typescript                5.9.3  -> 6.0.3   (#57)
  @eslint/js                9.8.0  -> 9.39.5  (#46)
  unocss / @unocss/astro / @unocss/reset 66.7.5 -> 66.10.2 (#74)

Dependabot raised only @unocss/reset; the three unocss packages share a
release train and have to move together, so the other two ride along.

Verified with pnpm run lint, format:check, and build — 215 pages, no
astro check errors under TypeScript 6.

Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01G214G6mJBeVBZ3CbukkNRu
Raised on its own (#76) this bump failed `astro check` with 20 errors —
every `post.data` access reported as `unknown`. The cause is zod, not
Astro: 7.3 infers a collection's `data` type through the schema's
`.transform()`, and zod 4.4.3's output types defeat that inference. With
the zod 4.6.5 bump from the previous commit in place, `astro check`
reports zero errors, which is why this rides along here instead.

The range resolves to 7.3.3, the current patch.

Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01G214G6mJBeVBZ3CbukkNRu
1.0.0 changes how it breaks JSX-ish expressions in .astro files, so the
bump alone left 11 files failing `format:check` — that is why #75 is red.
This commit carries the reformat with it.

Two things worth knowing about the new output:

- It is not idempotent on the first pass. One `pnpm run format` turns
  `{cond && <script ... />}` in BaseHead.astro into a form it then wants
  to rewrite again as `{cond && (<script ... />)}`, so a single
  `check:fix` can still leave CI red. Run it twice; the tree here has
  converged and a third pass is a no-op.
- Rendered HTML is unchanged except for one construct: `<Button>&larr;
  Back to blog</Button>` in BlogContent.astro now breaks across lines,
  which adds collapsing whitespace either side of the label inside the
  anchor. Diffed all 215 built pages against a 7.3.3 build of the
  previous formatting; that anchor is the only difference once the
  per-build random font-fallback ids and brutal-ui colours are
  normalised out.

Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01G214G6mJBeVBZ3CbukkNRu
The plugin's 1.0.x printer is not idempotent for a self-closing
`<script />` inside a `{cond && …}` expression that has to wrap: one
`format` pass emits output that fails `format:check`, and a second pass
converges. Records the shape to avoid and, more usefully, what the
confusing CI failure means when it happens.

Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01G214G6mJBeVBZ3CbukkNRu
Two corrections to the note added a moment ago. It pinned the behaviour to
1.0.1 when what is actually known is that it is a 1.0.x regression — 0.14.1
was stable — so a future reader should not assume moving off 1.0.1 clears it.

It also missed the worse of the two bugs: multi-line CSS comments in a
`<style>` block gain two spaces of indentation on every run and never reach
a fixed point, so `format:check` cannot pass at all. Verified against
upstream issue 487's repro on our install (7 -> 9 -> 11 -> 13 spaces).
No `<style>` block here carries a comment today, which is why CI is green;
adding one to BlogContent, BaseFooter, or SummaryCard would strand it.

Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01G214G6mJBeVBZ3CbukkNRu
@vercel

vercel Bot commented Sep 21, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated
ephbaumdotdev Ready Ready Preview Sep 21, 2026 12:07am UTC

@ephbaum
ephbaum merged commit 6eda91d into main Sep 21, 2026
3 checks passed

This branch was successfully deployed

1 active deployment
Preview — c1e91291 Deployed Sep 21, 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.

2 participants