flowviant 0.74.1 → 0.74.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -421,6 +421,13 @@ export function startAuthProxy({ targetPort, log, onAbuse, grantSecret, shareId,
421
421
  // WS upgrade (HMR). The browser resends the Basic-auth header on same-origin
422
422
  // upgrades, so we gate it too, then pipe the two sockets together.
423
423
  server.on('upgrade', (req, socket, head) => {
424
+ // OWN THE SOCKET FROM THE FIRST LINE. Between this handler firing and the
425
+ // origin's 101, the client socket had no 'error' listener — a browser
426
+ // that RSTs mid-handshake (tab closed during HMR reconnect) emitted
427
+ // 'error' with nobody listening, and an uncaughtException took the WHOLE
428
+ // daemon down (2026-08 audit HIGH, reproduced on Node 24; closed
429
+ // 2026-09-02). The post-101 block still swaps in the cross-destroy pair.
430
+ socket.on('error', () => socket.destroy());
424
431
  // Nothing under the reserved prefix is ever piped to the origin.
425
432
  if (safePathname(req.url).startsWith('/__fv/')) {
426
433
  socket.destroy();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flowviant",
3
- "version": "0.74.1",
3
+ "version": "0.74.2",
4
4
  "description": "Run your own coding CLIs as build agents for Flowviant \u2014 Claude Code, Codex or Antigravity, on your own credentials. Holds your sessions, keeps a worktree per tab, and ships branches on your word.",
5
5
  "type": "module",
6
6
  "bin": {