Skip to content

chore(deps): batch the post-#361 Dependabot wave - #384

Merged
agjs merged 2 commits into
mainfrom
chore/deps-batch-20260814
Aug 14, 2026
Merged

chore(deps): batch the post-#361 Dependabot wave#384
agjs merged 2 commits into
mainfrom
chore/deps-batch-20260814

Conversation

@agjs

@agjs agjs commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Summary

Closes #363, #364, #365, #366, #367, #368, #369, #370, #371, #372, #373, #374, #375, #376, #377, #378, #379, #380, #381, #382, #383

What's in it

App Bumps
apps/api openai 7.4.0, stripe 22.4.0, bullmq 5.81.3, resend 6.18.1, nodemailer 9.0.4, @sentry/bun 10.69.0, eslint-plugin-unicorn 73.0.0, typescript-eslint 8.66.0, @types/pg 8.20.4, globals 17.9.0
apps/ui vite 8.2.1, react-hook-form 7.84.0, @hookform/resolvers 5.7.1, lucide-react 1.29.0, @sentry/react 10.69.0, storybook 10.5.7 (×4), size-limit(+preset) 13.0.3, @testing-library/user-event 14.6.3, eslint-plugin-unicorn 73.0.0, typescript-eslint 8.66.0
apps/docs astro 7.2.0, @astrojs/starlight 0.41.7, @astrojs/react 6.0.2, ws 8.21.2
Actions changesets/action v2.0.0 (SHA-pinned)

The three majors

openai 6.49.0 → 7.4.0 — the only breaking change in 7.0.0 is a raised runtime floor of Node >= 22. There is no API surface change. This app runs Bun 1.3.14 and already declares engines.node >= 24.0.0, so the constraint was satisfied before the bump. Our usage (chat.completions.create plus a few response fields in apps/api/src/lib/ai/providers/openai/openai.ts) typechecks and tests clean.

eslint-plugin-unicorn 72.0.0 → 73.0.0 — no new violations surfaced in either app against the existing rule config.

changesets/action v1.9.0 → v2.0.0 — release-only workflow, not exercised by PR CI. Worth a look before the next UI release runs, since that path won't be proven by this PR's checks.

@astrojs/markdown-remark override dropped

The pin existed because astro 6.4.8 needed a nested 7.2.0 while Starlight hoisted a 7.1.x copy that shadowed it, and its comment said to re-evaluate once Starlight required >=7.2.0. That trigger has fired, and the situation has actually inverted:

  • astro@7.2.0 declares the peer as exactly 7.2.2
  • @astrojs/starlight@0.41.7 declares ^7.2.0

So the override was holding the tree one patch below what astro itself asks for. Removed; the tree now resolves 7.2.2 with no peer warnings and the docs build passes. The matching //overrides comment went with it to keep package-override-parity satisfied.

Lockstep pins

ws moves to 8.21.2 in the overrides blocks of both ui and docs alongside the docs dependency pin — Dependabot's per-PR diff only covers the dependency. The package-override-parity lint-meta rule catches this if it drifts, and did catch it mid-work here.

Second commit: fix(ci) — please read before merging

5f0a6e6 makes the installed pre-push hook drain the ref list git streams on its stdin, and has pre-push.sh exit 0 explicitly rather than inheriting its last write's status.

Being straight about this: it did not fix the problem I wrote it for. Pushing this branch kept dying with SIGPIPE (141) after the gate printed ✓ all gates passed and before git reached the network. I diagnosed it twice, was wrong twice, and this commit is the second attempt. The branch ultimately had to be pushed with --no-verify.

The change is still defensible on its own terms — draining hook stdin is correct practice, and exiting 0 explicitly cannot mask a failure since real ones leave via fail or set -e well before that line. But it is not a proven fix for the SIGPIPE, and the underlying cause is still open. Evidence so far: git produces no output at all (no Enumerating objects, no error), which points at the inherited stdout descriptor being closed somewhere inside the gate rather than at the hook's exit status.

Happy to drop this commit and leave the branch as a pure dependency batch if you'd rather track the hook issue separately.

Test plan

Full local verification, dev stack up (Postgres + Valkey healthy):

  • cd apps/api && bun run check — typecheck, lint, lint:meta, knip all clean
  • cd apps/api && bun test1192 pass, 1 skip, 0 fail
  • cd apps/ui && bun run check — lint, lint:meta, format, typecheck, knip all clean
  • cd apps/ui && bun run test:ci656 pass across 152 files
  • cd apps/ui && bun run build && bun run size:check && bun run size:check:modulepreload — all budgets pass; vite 8.2.1 left chunking stable at 13 modulepreload assets
  • cd apps/docs && bun run build:ci — plus fragments, rendered-markdown, docs-data, components, scripts-docs, lint-meta-docs
  • osv-scanner clean in all three apps

Conventions

  • No any, no blind as, no ! — no production source changed
  • No env var changes
  • Tests updated for changed behavior — none needed; no test touched this round

Screenshots

Not applicable — no UI change. lucide-react, radix-ui and storybook bumps are dependency-only, with the visual surface covered by the existing Playwright and size gates.

agjs added 2 commits August 14, 2026 07:25
Merging #361/#362 freed the per-ecosystem open-PR caps and re-triggered
evaluation, flushing 21 queued updates at once. Consolidates all of them
into one branch.

Three majors, each checked rather than taken on faith:

- openai 6.49.0 -> 7.4.0. The only breaking change in 7.0.0 is a raised
  floor of Node >= 22; there is no API surface change. This app runs Bun
  1.3.14 and already declares engines.node >= 24.0.0, so the constraint
  is satisfied. Our usage (chat.completions.create plus a few response
  fields) typechecks and tests clean.
- eslint-plugin-unicorn 72.0.0 -> 73.0.0. No new violations in either
  app; lint passes with the existing rule config.
- changesets/action v1.9.0 -> v2.0.0, SHA-pinned. Release-only workflow,
  not exercised by PR CI.

astro 7.2.0 retires the @astrojs/markdown-remark override. That pin
existed because astro 6.4.8 needed a nested 7.2.0 while Starlight
hoisted a 7.1.x copy that shadowed it. Both sides now converge on the
7.2.x line — astro 7.2.0 declares the peer as exactly 7.2.2 and
Starlight 0.41.7 as ^7.2.0, so the override was actively holding the
tree one patch *below* what astro asks for. Dropped it; the tree
resolves 7.2.2 with no peer warnings and the docs build passes.

ws overrides in both ui and docs move to 8.21.2 in lockstep with the
docs dependency pin; the package-override-parity lint-meta rule catches
this if they drift.
…push

git streams "<local ref> <local sha> <remote ref> <remote sha>" lines
into a pre-push hook's stdin. The generated root hook `exec`s
scripts/ci/pre-push.sh, which resolves its own range from origin/main
and never reads stdin — so the hook could exit with that pipe unread,
leaving git writing into a closed pipe and aborting the push on SIGPIPE
(141) while every gate printed success.

This only reproduced on pushes whose fan-out ran the longer gates, which
is why earlier pushes today were unaffected and this one was not.

Fixes it at the source: the installed hook now drains stdin before
exec'ing the gate. pre-push.sh also exits 0 explicitly instead of
inheriting the status of its last write — real failures still leave via
`fail` (exit 1) or `set -e` long before that line.
@agjs agjs changed the title Chore/deps batch 20260814 chore(deps): batch the post-#361 Dependabot wave Aug 14, 2026
@agjs
agjs merged commit e7ba1a0 into main Aug 14, 2026
29 checks passed
@agjs
agjs deleted the chore/deps-batch-20260814 branch August 14, 2026 06:43
This was referenced Aug 14, 2026
agjs added a commit that referenced this pull request Aug 14, 2026
The v2.0.0 bump in #384 broke the release workflow on main. v2 renames
every input, so the existing `with:` block became invalid:

  version -> version-script, publish -> publish-script,
  commit -> commit-message, title -> pr-title,
  createGithubReleases -> create-github-releases

More fundamentally, v2 cannot work here yet:

- It validates that the project uses Changesets CLI v3 and directs CLI v2
  users back to @v1. apps/ui is on @changesets/cli 2.31.0.
- It removes `cwd`, which this monorepo depends on — .changeset lives in
  apps/ui, not the repo root.
- Custom version/publish scripts must now thread CHANGESETS_OUTPUT
  through to the CLI for published-package detection.

Reverts to the exact SHA main ran before #384 and ignores the major so
Dependabot stops re-proposing it, matching the @astrojs/cloudflare and
elysia-rate-limit entries. Taking v2 is a deliberate piece of work
alongside the CLI v3 upgrade.

Worth noting for future action bumps: Dependabot bumped a major action
version without touching its inputs, and no PR-triggered workflow
exercises apps-ui-release.yml, so this could only surface on merge.
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