chore(webapp,supervisor,core): move socket.io to 4.8.3 - #4635
Conversation
|
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
socket.iowas pinned at exactly4.7.4in three manifests (apps/webapp,apps/supervisor,packages/core). That pin cappedengine.ioat 6.5.4, because 4.7.4 declaresengine.io: ~6.5.2.Moving all three pins to
4.8.3lifts that cap: 4.8.3 declaresengine.io: ~6.6.0. The webapp's directengine.iodevDependency moves from^6.5.4to^6.6.7to match.These are direct dependencies, so they are bumped in place rather than forced with an override.
Result
The tree previously carried two
engine.iocopies. It now carries one:react-emailwas already resolvingsocket.io@4.8.3in this same tree, so that combination was already running here before this change.Servers move, clients do not
This bumps
socket.io(the server) only.socket.io-clientstays at4.7.5inpackages/coreandpackages/cli-v3, deliberately: the fix is server-side, and clients ship inside user deployments, so leaving them alone keeps the blast radius small. That means a 4.8.3 server will be talking to 4.7.5 clients indefinitely, which is worth being explicit about.That pairing is safe because neither wire protocol changed. Both versions report the same protocol numbers:
socket.io-parser)engine.io-parser)The version bump moves
socket.io-parser4.2.6 to 4.2.7 andengine.io6.5.4 to 6.6.8, but the protocol constants each exports are unchanged. The 4.8.0 changes are additive on the client (custom transport implementations, atryAllTransportsoption) and bug fixes on the server.Verified rather than assumed, with a cross-version matrix covering both transports and both directions:
Each case exercised connect, a server-initiated emit,
emitWithAck, room join, room broadcast, and a binary payload. Compatibility holds in both directions, so there is no upgrade-ordering requirement between server and client.pnpm run typecheckpasses across all 57 workspaces.Stacked on #4634.