Skip to content

build(deps): bump @upstash/redis from 1.37.0 to 1.38.0#371

Merged
mergify[bot] merged 2 commits into
mainfrom
dependabot/npm_and_yarn/upstash/redis-1.38.0
May 18, 2026
Merged

build(deps): bump @upstash/redis from 1.37.0 to 1.38.0#371
mergify[bot] merged 2 commits into
mainfrom
dependabot/npm_and_yarn/upstash/redis-1.38.0

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github May 11, 2026

Bumps @upstash/redis from 1.37.0 to 1.38.0.

Release notes

Sourced from @​upstash/redis's releases.

@​upstash/redis@​1.38.0

Minor Changes

  • c71f581: Separate read/write commands into separate pipelines in auto pipeline. As a result, mixed read/write Promise.all batches may now be split across multiple pipeline HTTP requests instead of a single request, and read-after-write ordering may no longer be preserved within those mixed batches.

@upstash/redis@1.38.0-canary-20260505130836-8b3b33ccd367ba9ddb5b7f5ca33eb32ccf7e940d

What's Changed

Full Changelog: https://github.com/upstash/redis-js/compare/@​upstash/redis@1.37.0...@​upstash/redis@1.38.0-canary-20260505130836-8b3b33ccd367ba9ddb5b7f5ca33eb32ccf7e940d

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [@upstash/redis](https://github.com/upstash/redis-js) from 1.37.0 to 1.38.0.
- [Release notes](https://github.com/upstash/redis-js/releases)
- [Commits](https://github.com/upstash/redis-js/compare/@upstash/redis@1.37.0...@upstash/redis@1.38.0)

---
updated-dependencies:
- dependency-name: "@upstash/redis"
  dependency-version: 1.38.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added the dependencies Pull requests that update a dependency file label May 11, 2026
Copy link
Copy Markdown
Collaborator

@julianken-bot julianken-bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: APPROVE

Minor bump @upstash/redis 1.37.0 → 1.38.0 with the lockfile updates that fall out of it (rollup 4.60.2 → 4.60.3, a new postcss 8.5.14 / nanoid 3.3.12 are transitive resolutions, not behavioral).

Why the auto-pipeline changelog does not regress this repo

The 1.38.0 release notes flag that mixed read/write Promise.all batches in auto-pipeline mode may now be split across multiple pipeline HTTP requests, breaking read-after-write ordering within those batches. I verified the repo's usage pattern against this:

  1. The only direct @upstash/redis consumer is src/lib/rate-limit.ts:91-102, which constructs a Redis client and hands it to @upstash/ratelimit's Ratelimit({ redis, ... }). The app never calls redis.pipeline(), redis.multi(), or wraps Redis commands in Promise.all itself. Search confirms zero hits for autoPipeline, pipeline(, or direct multi-command batching in src/**.
  2. The active limiter is Ratelimit.slidingWindow, which inside @upstash/ratelimit@2.0.8 reduces to a single safeEval / evalsha call (one Lua script, one HTTP request, atomic on the Upstash REST endpoint). Auto-pipeline batch splitting cannot fragment a single EVALSHA.
  3. @upstash/ratelimit does have a mixed Promise.all at dist/index.mjs:890 between the limiter Eval and checkDenyList, but the second branch is gated on enableProtection: true. This repo's createRateLimiter (rate-limit.ts:96-102) does not enable protection, so the second arm is the constant Promise.resolve({ deniedValue: void 0, invalidIpDenyList: false }) — no Redis call, no pipeline interaction.
  4. submitAnalytics (line 960 of the ratelimit dist) does Promise.all([ratelimitResponse.pending, analyticsP]), but this is the fire-and-forget pending channel — no caller awaits it for ordering and it never participates in the API response path.

Verification ledger

  • Read PR diff: package.json + pnpm-lock.yaml only, no source changes.
  • Searched for @upstash/redis imports across src/**: 1 file (src/lib/rate-limit.ts).
  • Searched for autoPipeline, pipeline(, multi(): 0 hits in src/**.
  • Read node_modules/.pnpm/@upstash+ratelimit@2.0.8.../dist/index.mjs for the limit-path call graph — confirmed single-EVAL pattern + gated Promise.all.
  • CI: ESLint, TypeScript, Vitest, Next.js Build, Analyze Bundle, CodeQL, E2E 1-4/4 all pass on HEAD 3a6c176.
  • Bot collaborator permission: write (APPROVE will register).

No findings.

— reviewed by @julianken-bot per reviewing-as-julianken-bot rubric

@julianken-bot
Copy link
Copy Markdown
Collaborator

@Mergifyio queue

@mergify
Copy link
Copy Markdown
Contributor

mergify Bot commented May 18, 2026

Merge Queue Status

  • Entered queue2026-05-18 00:58 UTC · Rule: default
  • Checks passed · in-place
  • Merged2026-05-18 01:06 UTC · at a814e8f5a5721ced7fc33e07550329f9577b4f6f · squash

This pull request spent 7 minutes 54 seconds in the queue, including 3 minutes 32 seconds running CI.

Required conditions to merge
  • #approved-reviews-by >= 1 [🛡 GitHub branch protection]
  • #changes-requested-reviews-by = 0 [🛡 GitHub branch protection]
  • github-review-decision = APPROVED [🛡 GitHub branch protection]
  • any of [🛡 GitHub branch protection]:
    • check-success = ESLint
    • check-neutral = ESLint
    • check-skipped = ESLint
  • any of [🛡 GitHub branch protection]:
    • check-success = TypeScript
    • check-neutral = TypeScript
    • check-skipped = TypeScript
  • any of [🛡 GitHub branch protection]:
    • check-success = Vitest
    • check-neutral = Vitest
    • check-skipped = Vitest
  • any of [🛡 GitHub branch protection]:
    • check-success = Next.js Build
    • check-neutral = Next.js Build
    • check-skipped = Next.js Build
  • any of [🛡 GitHub branch protection]:
    • check-success = Analyze Bundle
    • check-neutral = Analyze Bundle
    • check-skipped = Analyze Bundle
  • any of [🛡 GitHub branch protection]:
    • check-success = CodeQL Analysis
    • check-neutral = CodeQL Analysis
    • check-skipped = CodeQL Analysis
  • any of [🛡 GitHub branch protection]:
    • check-success = E2E Shard 1/4
    • check-neutral = E2E Shard 1/4
    • check-skipped = E2E Shard 1/4
  • any of [🛡 GitHub branch protection]:
    • check-success = E2E Shard 2/4
    • check-neutral = E2E Shard 2/4
    • check-skipped = E2E Shard 2/4
  • any of [🛡 GitHub branch protection]:
    • check-success = E2E Shard 3/4
    • check-neutral = E2E Shard 3/4
    • check-skipped = E2E Shard 3/4
  • any of [🛡 GitHub branch protection]:
    • check-success = E2E Shard 4/4
    • check-neutral = E2E Shard 4/4
    • check-skipped = E2E Shard 4/4

@mergify mergify Bot added the queued label May 18, 2026
@mergify mergify Bot merged commit fe7d830 into main May 18, 2026
13 checks passed
@mergify mergify Bot deleted the dependabot/npm_and_yarn/upstash/redis-1.38.0 branch May 18, 2026 01:06
@mergify mergify Bot removed the queued label May 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant