Skip to content

chore(deps): bump ws from 7.5.11 to 8.21.1 - #289

Merged
AprilNEA merged 1 commit into
masterfrom
dependabot/npm_and_yarn/ws-8.21.1
Jul 29, 2026
Merged

chore(deps): bump ws from 7.5.11 to 8.21.1#289
AprilNEA merged 1 commit into
masterfrom
dependabot/npm_and_yarn/ws-8.21.1

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 27, 2026

Copy link
Copy Markdown
Contributor

Bumps ws from 7.5.11 to 8.21.1.

Release notes

Sourced from ws's releases.

8.21.1

Bug fixes

  • Empty fragments are now counted toward the limit (a2f4e7c0).
  • The default values of the maxBufferedChunks and maxFragments options have been reduced (f197ac65).

8.21.0

Features

  • Introduced the maxBufferedChunks and maxFragments options (2b2abd45).

Bug fixes

  • Fixed a remote memory exhaustion DoS vulnerability (2b2abd45).

A high volume of tiny fragments and data chunks could be sent by a peer, using modest network traffic, to crash a ws server or client due to OOM.

import { WebSocket, WebSocketServer } from 'ws';
const wss = new WebSocketServer({ port: 0 }, function () {
const data = Buffer.alloc(1);
const options = { fin: false };
const { port } = wss.address();
const ws = new WebSocket(ws://localhost:${port});
ws.on('open', function () {
(function send() {
ws.send(data, options, function (err) {
if (err) return;
send();
});
})();
});
ws.on('error', console.error);
ws.on('close', function (code, reason) {
console.log(client close - code: ${code} reason: ${reason.toString()});
});
});
wss.on('connection', function (ws) {
ws.on('error', console.error);
ws.on('close', function (code, reason) {
console.log(server close - code: ${code} reason: ${reason.toString()});
});
});

... (truncated)

Commits
  • ae1de54 [dist] 8.21.1
  • 8e9511b [ci] Trust Coveralls Homebrew tap
  • f197ac6 [fix] Lower default values of maxBufferedChunks and maxFragments
  • 8df8265 [ci] Update actions/checkout action to v7
  • a2f4e7c [fix] Count empty fragments toward the limit (#2329)
  • e79f912 [pkg] Approve install scripts for bufferutil and utf-8-validate
  • 4ea355d [doc] Document 32-bit signed integer coercion for option values
  • 2120f4c [example] Remove uuid dependency
  • 4c534a6 [security] Add latest vulnerability to SECURITY.md
  • bca91ad [dist] 8.21.0
  • Additional commits viewable in compare view

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Jul 27, 2026
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/ws-8.21.1 branch 3 times, most recently from 92111ea to c879119 Compare July 29, 2026 09:00
Bumps [ws](https://github.com/websockets/ws) from 7.5.11 to 8.21.1.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](websockets/ws@7.5.11...8.21.1)

---
updated-dependencies:
- dependency-name: ws
  dependency-version: 8.21.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/ws-8.21.1 branch from c879119 to 7fb2eca Compare July 29, 2026 09:21
@AprilNEA
AprilNEA self-requested a review July 29, 2026 10:12
@AprilNEA
AprilNEA merged commit ff82f72 into master Jul 29, 2026
5 of 7 checks passed
@AprilNEA
AprilNEA deleted the dependabot/npm_and_yarn/ws-8.21.1 branch July 29, 2026 10:12
AprilNEA added a commit that referenced this pull request Jul 29, 2026
#313)

## Summary

Replaces the imperative View Transition stopgap that #299 shipped
(manual `startViewTransition`, generation guard, DOM name pairing) with
React's official `<ViewTransition>` component, per the decision to allow
the canary channel. Four commits:

1. **`chore(deps)`** — catalog react/react-dom →
`19.3.0-canary-96fcba90-20260728` (web/desktop renderers only; mobile
pins its own react — the stale catalog comment claiming otherwise is
fixed). The canary export is **unprefixed** `ViewTransition`
(stable-track; canary is the channel Next.js ships in production).
`minimumReleaseAgeExclude` entries added; drop back to latest once 19.3
goes stable.
2. **`refactor(workbench,ui,desktop)`** — the declarative rewrite,
shaped by two source-verified facts:
- **Pairing is strictly mount/unmount-based** (react-dom's appearing-map
× deletions walk — a persisting boundary never pairs). So the row
title's boundary *unmounts when its row becomes active* (a plain span
takes over, visually seamless) while the header's boundary remounts
keyed by session — giving forward *and* return flights for free.
- **zustand rides `useSyncExternalStore`, which never enters a
transition lane** — `startTransition` around a store write does nothing.
One `useDeferredValue(selectedId)` in `useWorkbenchSessions` bridges the
render path into the lane (a documented ViewTransition trigger), and
puts the row unmount + header mount in the same deferred commit, which
the pairing requires.
- `@linkcode/ui` gains a typed named re-export via an in-module `declare
module 'react'` augmentation (@types/react tracks stable). The whole
stopgap module + its 7 unit tests are deleted; interruption/coalescing
is now React's own.
3. **`fix(assets)`** — drive-by: the committed pi closure manifest was
stale since the ws 7→8 bump (#289) nested `ws@8.21.0` copies under the
pi closure; `closure.test.ts` was already red on master. Regenerated.
4. **`refactor(webview)`** — extends the boundary to the web shell's
title (the render point #299's follow-up commit 8e5b485 covered with
the now-removed data attribute).

Motion pacing moves to `::view-transition-group(*)` on
`--motion-normal`; the app-level reduce-motion preference silences
snapshot animations via CSS (the root-attached pseudos are out of reach
of the `.reduce-motion *` reset).

## Verification

- Drive probe against the built desktop app (isolated daemon + two real
pi threads): 4 sidebar switches → 3 `document.startViewTransition`
invocations (the rapid double-fire coalesced by React), zero console
errors.
- react-dom canary pairing semantics read from the installed production
build, not guessed.
- `biome` / `eslint` (serial — the concurrency OOM is CODE-468) / `tsc`
green; full vitest suite 2056 passed, including the previously-red
closure test.
- Hand-feel needs the usual manual pass (switch, rapid clicks,
reduce-motion on/off).

Closes CODE-469
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 javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant