Skip to content

Upgrade redis to 6.1.0 and preserve v5 semantics where needed#1584

Open
davidmerfield wants to merge 1 commit into
masterfrom
codex/update-redis-from-5-to-6.1.0
Open

Upgrade redis to 6.1.0 and preserve v5 semantics where needed#1584
davidmerfield wants to merge 1 commit into
masterfrom
codex/update-redis-from-5-to-6.1.0

Conversation

@davidmerfield

Copy link
Copy Markdown
Owner

Motivation

  • Upgrade the Node Redis client from 5.11.0 to 6.1.0 and adopt the v6 migration guidance (RESP defaults, Node.js engine bump).
  • Avoid breaking changes caused by RESP3 becoming the v6 default and other default behaviour changes by preserving v5 semantics where the app expects them.
  • Ensure session/rate-limit/auxiliary scripts keep the same reply shapes and timeouts until codepaths are audited and tested under RESP3.

Description

  • Bumped redis dependency to 6.1.0 and added an engines.node entry >=20.0.0 in package.json to reflect v6 Node requirement.
  • Kept the main app model client on RESP: 3 but explicitly set maintNotifications: "disabled", commandOptions: { timeout: undefined }, and socket.keepAliveInitialDelay: 5000 in app/models/redis.js to preserve v5 defaults for maintenance and timeouts.
  • Pinned auxiliary/dedicated clients (session, rate-limit, latency profiler) to RESP: 2 and set commandOptions/socket.keepAliveInitialDelay to v5 defaults in app/dashboard/util/session.js, app/dashboard/log-in/rateLimit.js, and scripts/db/redis-latency-profile.js to avoid accidental RESP3-shaped reply changes for those consumers.
  • Searched the codebase for removed/renamed v5 options and RESP3 gates (e.g. unstableResp3*, legacy(), Sentinel/cluster/pool constructors, specific commands called out in the migration guide) and found no direct usages requiring changes.

Testing

  • Ran npm install --ignore-scripts to update node_modules; installation completed successfully. (succeeded)
  • Verified installed Redis package version with node -e "console.log(require('redis/package.json').version)" and saw 6.1.0. (succeeded)
  • Required the models client with NODE_PATH=app node -e "require('./app/models/redis')(); console.log('models redis ok')" to ensure the new client loads; this completed and printed models redis ok. (succeeded)
  • Ran git diff --check to validate diffs; no whitespace/errors reported. (succeeded)
  • Attempted to run the full test script via npm test, but the repository test harness invokes Docker and this environment does not have Docker available, so the full test suite was not run here. (not run)

If CI runs the full suite (with Docker/Redis), it should detect any remaining behavioral regressions related to RESP3 type mapping or prototype normalization; the changes in this PR intentionally preserve v5 reply/timeouts for risky code paths while letting the main client use RESP3 with explicit v5 defaults where required.


Codex Task

@cursor

cursor Bot commented Jul 15, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@davidmerfield

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Already looking forward to the next diff.

Reviewed commit: ef9dc32dfa

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant