From 9598af1720401cffc793634f9ea2cbe4382d1b0f Mon Sep 17 00:00:00 2001 From: chrischall Date: Mon, 14 Sep 2026 03:57:53 -0400 Subject: [PATCH 1/2] chore(main): release 3.0.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 29 +++++++++++++++++++++++++ package-lock.json | 4 ++-- package.json | 2 +- packages/bootstrap/package.json | 2 +- packages/cli/package.json | 2 +- packages/cli/src/version.ts | 2 +- packages/extension-chrome/manifest.json | 2 +- packages/extension-chrome/package.json | 2 +- packages/extension-core/package.json | 2 +- packages/protocol/package.json | 2 +- packages/server/package.json | 2 +- packages/test-helpers/package.json | 2 +- 13 files changed, 42 insertions(+), 13 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 895554eb..d4f6f299 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "2.11.3" + ".": "3.0.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index e402a3d6..7f741811 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,34 @@ # Changelog +## [3.0.0](https://github.com/chrischall/fetchproxy/compare/v2.11.3...v3.0.0) (2026-09-14) + + +### ⚠ BREAKING CHANGES + +* **server:** a waiting verb's own timeoutMs governs its own deadline ([#371](https://github.com/chrischall/fetchproxy/issues/371)) +* **protocol:** per-session ephemerals on both sides, AAD over the frame's identity, and v3 refused at the hello ([#368](https://github.com/chrischall/fetchproxy/issues/368)) + +### Features + +* **protocol:** per-session ephemerals on both sides, AAD over the frame's identity, and v3 refused at the hello ([#368](https://github.com/chrischall/fetchproxy/issues/368)) ([f1bb5f3](https://github.com/chrischall/fetchproxy/commit/f1bb5f3adeae965406e4e65d1cd4222f6da0e6d0)) +* **server:** a waiting verb's own timeoutMs governs its own deadline ([#371](https://github.com/chrischall/fetchproxy/issues/371)) ([1500d2d](https://github.com/chrischall/fetchproxy/commit/1500d2d6f3c86c9919599a2745dc8fbbb551160b)) + + +### Bug Fixes + +* **cli:** a cookie value off the command line, hostname-matched profiles, and profile writes that survive an interrupt ([#360](https://github.com/chrischall/fetchproxy/issues/360)) ([c49b81a](https://github.com/chrischall/fetchproxy/commit/c49b81a1481ccc55950af463ce374efad7f4c4a8)) +* **cli:** check the profile before draining stdin, and match a profile's domains the way the server does ([#366](https://github.com/chrischall/fetchproxy/issues/366)) ([da063e7](https://github.com/chrischall/fetchproxy/commit/da063e71aa99cf3224fbd8be1df401b4b416c82c)) +* **server,extension:** refuse a public-suffix domain and a local Origin, and surface only the self-derived pair code ([#364](https://github.com/chrischall/fetchproxy/issues/364)) ([1c457c7](https://github.com/chrischall/fetchproxy/commit/1c457c74c1615efe07c878384f1852251148e8b7)) +* **server:** authenticate before advancing the replay counter, and implement the handshake timeout the docs already claim ([#356](https://github.com/chrischall/fetchproxy/issues/356)) ([a4c940b](https://github.com/chrischall/fetchproxy/commit/a4c940babd54d5cda4f1da47cb897352f6df0124)) +* **server:** export the verb-deadline constants, and correct what [#371](https://github.com/chrischall/fetchproxy/issues/371) left saying ([#373](https://github.com/chrischall/fetchproxy/issues/373)) ([5dd6e1c](https://github.com/chrischall/fetchproxy/commit/5dd6e1cc024820853b74037792af766c99d6269a)) +* **server:** refuse a public-suffix domain at the constructor, where it fails loudly ([#367](https://github.com/chrischall/fetchproxy/issues/367)) ([e8ebf09](https://github.com/chrischall/fetchproxy/commit/e8ebf09133143158d3015563525d37ed149424ab)) + + +### Documentation + +* **plans:** the protocol v4 wire break — forward secrecy, AAD over the frame's identity, and the cohort choreography ([#361](https://github.com/chrischall/fetchproxy/issues/361)) ([21197c3](https://github.com/chrischall/fetchproxy/commit/21197c3e3848feca1a871d5fa0ff9595a3843f34)) +* **protocol:** the session key is salted by the transcript, not by one side's nonce ([#370](https://github.com/chrischall/fetchproxy/issues/370)) ([98e05df](https://github.com/chrischall/fetchproxy/commit/98e05df34065548238ac7fc61e8f5f059d536967)) + ## [2.11.3](https://github.com/chrischall/fetchproxy/compare/v2.11.2...v2.11.3) (2026-09-11) diff --git a/package-lock.json b/package-lock.json index c93bc0eb..ba11c557 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "fetchproxy", - "version": "2.11.3", + "version": "3.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "fetchproxy", - "version": "2.11.3", + "version": "3.0.0", "license": "MIT", "workspaces": [ "packages/*" diff --git a/package.json b/package.json index f18ef3ea..06bd3ce3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "fetchproxy", - "version": "2.11.3", + "version": "3.0.0", "private": true, "type": "module", "workspaces": [ diff --git a/packages/bootstrap/package.json b/packages/bootstrap/package.json index a69b2b21..57c6f558 100644 --- a/packages/bootstrap/package.json +++ b/packages/bootstrap/package.json @@ -1,6 +1,6 @@ { "name": "@fetchproxy/bootstrap", - "version": "2.11.3", + "version": "3.0.0", "description": "One-shot session-bootstrap helper for MCPs using fetchproxy: declare your scope, read it once, then operate from Node.", "type": "module", "main": "./dist/index.js", diff --git a/packages/cli/package.json b/packages/cli/package.json index 03480061..93035865 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@fetchproxy/cli", - "version": "2.11.3", + "version": "3.0.0", "description": "One-shot CLI for the fetchproxy bridge: authenticated fetches and session reads through the user's signed-in browser tab, scoped by per-service profiles.", "type": "module", "bin": { diff --git a/packages/cli/src/version.ts b/packages/cli/src/version.ts index d2bdf80d..496cc8c7 100644 --- a/packages/cli/src/version.ts +++ b/packages/cli/src/version.ts @@ -1,2 +1,2 @@ // Managed by release-please (generic updater) — do not hand-edit. -export const VERSION = '2.11.3'; // x-release-please-version +export const VERSION = '3.0.0'; // x-release-please-version diff --git a/packages/extension-chrome/manifest.json b/packages/extension-chrome/manifest.json index 81c0dd15..a5c48927 100644 --- a/packages/extension-chrome/manifest.json +++ b/packages/extension-chrome/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 3, "name": "Transporter", - "version": "2.11.3", + "version": "3.0.0", "description": "Bridge local MCP servers to your signed-in browser tabs — let agentic tools hit authenticated APIs without copying credentials.", "icons": { "16": "icons/16.png", diff --git a/packages/extension-chrome/package.json b/packages/extension-chrome/package.json index 1adcf225..4abed21b 100644 --- a/packages/extension-chrome/package.json +++ b/packages/extension-chrome/package.json @@ -1,6 +1,6 @@ { "name": "@fetchproxy/extension-chrome", - "version": "2.11.3", + "version": "3.0.0", "private": true, "type": "module", "scripts": { diff --git a/packages/extension-core/package.json b/packages/extension-core/package.json index ad0eab2c..1e7b0389 100644 --- a/packages/extension-core/package.json +++ b/packages/extension-core/package.json @@ -1,6 +1,6 @@ { "name": "@fetchproxy/extension-core", - "version": "2.11.3", + "version": "3.0.0", "private": true, "type": "module", "main": "./dist/index.js", diff --git a/packages/protocol/package.json b/packages/protocol/package.json index 0202cba8..681ad08c 100644 --- a/packages/protocol/package.json +++ b/packages/protocol/package.json @@ -1,6 +1,6 @@ { "name": "@fetchproxy/protocol", - "version": "2.11.3", + "version": "3.0.0", "description": "WebSocket frame types + runtime validators for fetchproxy.", "type": "module", "main": "./dist/index.js", diff --git a/packages/server/package.json b/packages/server/package.json index 0f8d23a0..b45851ac 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,6 +1,6 @@ { "name": "@fetchproxy/server", - "version": "2.11.3", + "version": "3.0.0", "description": "Localhost WebSocket bridge an MCP server uses to relay fetches through the user's signed-in browser via the fetchproxy extension.", "type": "module", "main": "./dist/index.js", diff --git a/packages/test-helpers/package.json b/packages/test-helpers/package.json index 25b7bde0..4a56309b 100644 --- a/packages/test-helpers/package.json +++ b/packages/test-helpers/package.json @@ -1,6 +1,6 @@ { "name": "@fetchproxy/test-helpers", - "version": "2.11.3", + "version": "3.0.0", "description": "Vitest mock helpers for @fetchproxy/server — drop-in FetchproxyServer mock that captures constructor opts and exposes spy-able request/fetch/captureRequestHeader/bridgeHealth methods.", "type": "module", "main": "./dist/index.js", From 8f722bf195ac7e235bb3c5f98f57e425525978bf Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 14 Sep 2026 07:58:08 +0000 Subject: [PATCH 2/2] chore: sync cross-package @fetchproxy/* deps to ^3.0.0 --- package-lock.json | 36 +++++++++++++------------- packages/bootstrap/package.json | 4 +-- packages/cli/package.json | 8 +++--- packages/extension-chrome/package.json | 4 +-- packages/extension-core/package.json | 2 +- packages/server/package.json | 2 +- packages/test-helpers/package.json | 2 +- 7 files changed, 29 insertions(+), 29 deletions(-) diff --git a/package-lock.json b/package-lock.json index ba11c557..98728500 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2771,35 +2771,35 @@ }, "packages/bootstrap": { "name": "@fetchproxy/bootstrap", - "version": "2.11.3", + "version": "3.0.0", "license": "MIT", "dependencies": { - "@fetchproxy/protocol": "^2.11.3", - "@fetchproxy/server": "^2.11.3" + "@fetchproxy/protocol": "^3.0.0", + "@fetchproxy/server": "^3.0.0" } }, "packages/cli": { "name": "@fetchproxy/cli", - "version": "2.11.3", + "version": "3.0.0", "license": "MIT", "dependencies": { - "@fetchproxy/bootstrap": "^2.11.3", - "@fetchproxy/protocol": "^2.11.3", - "@fetchproxy/server": "^2.11.3" + "@fetchproxy/bootstrap": "^3.0.0", + "@fetchproxy/protocol": "^3.0.0", + "@fetchproxy/server": "^3.0.0" }, "bin": { "fpx": "dist/index.js" }, "devDependencies": { - "@fetchproxy/test-helpers": "^2.11.3" + "@fetchproxy/test-helpers": "^3.0.0" } }, "packages/extension-chrome": { "name": "@fetchproxy/extension-chrome", - "version": "2.11.3", + "version": "3.0.0", "dependencies": { - "@fetchproxy/extension-core": "^2.11.3", - "@fetchproxy/protocol": "^2.11.3" + "@fetchproxy/extension-core": "^3.0.0", + "@fetchproxy/protocol": "^3.0.0" }, "devDependencies": { "esbuild": "^0.28.2", @@ -2808,9 +2808,9 @@ }, "packages/extension-core": { "name": "@fetchproxy/extension-core", - "version": "2.11.3", + "version": "3.0.0", "dependencies": { - "@fetchproxy/protocol": "^2.11.3" + "@fetchproxy/protocol": "^3.0.0" }, "devDependencies": { "@types/chrome": "^0.2.9", @@ -2819,15 +2819,15 @@ }, "packages/protocol": { "name": "@fetchproxy/protocol", - "version": "2.11.3", + "version": "3.0.0", "license": "MIT" }, "packages/server": { "name": "@fetchproxy/server", - "version": "2.11.3", + "version": "3.0.0", "license": "MIT", "dependencies": { - "@fetchproxy/protocol": "^2.11.3", + "@fetchproxy/protocol": "^3.0.0", "ws": "^8.21.3" }, "devDependencies": { @@ -2836,10 +2836,10 @@ }, "packages/test-helpers": { "name": "@fetchproxy/test-helpers", - "version": "2.11.3", + "version": "3.0.0", "license": "MIT", "peerDependencies": { - "@fetchproxy/server": "^2.11.3", + "@fetchproxy/server": "^3.0.0", "vitest": ">=1.0.0" } } diff --git a/packages/bootstrap/package.json b/packages/bootstrap/package.json index 57c6f558..a0dcb11f 100644 --- a/packages/bootstrap/package.json +++ b/packages/bootstrap/package.json @@ -27,7 +27,7 @@ }, "license": "MIT", "dependencies": { - "@fetchproxy/protocol": "^2.11.3", - "@fetchproxy/server": "^2.11.3" + "@fetchproxy/protocol": "^3.0.0", + "@fetchproxy/server": "^3.0.0" } } diff --git a/packages/cli/package.json b/packages/cli/package.json index 93035865..eacaff25 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -30,11 +30,11 @@ }, "license": "MIT", "dependencies": { - "@fetchproxy/bootstrap": "^2.11.3", - "@fetchproxy/protocol": "^2.11.3", - "@fetchproxy/server": "^2.11.3" + "@fetchproxy/bootstrap": "^3.0.0", + "@fetchproxy/protocol": "^3.0.0", + "@fetchproxy/server": "^3.0.0" }, "devDependencies": { - "@fetchproxy/test-helpers": "^2.11.3" + "@fetchproxy/test-helpers": "^3.0.0" } } diff --git a/packages/extension-chrome/package.json b/packages/extension-chrome/package.json index 4abed21b..9d0701d7 100644 --- a/packages/extension-chrome/package.json +++ b/packages/extension-chrome/package.json @@ -8,8 +8,8 @@ "build:dev": "tsx build.ts --dev" }, "dependencies": { - "@fetchproxy/extension-core": "^2.11.3", - "@fetchproxy/protocol": "^2.11.3" + "@fetchproxy/extension-core": "^3.0.0", + "@fetchproxy/protocol": "^3.0.0" }, "devDependencies": { "esbuild": "^0.28.2", diff --git a/packages/extension-core/package.json b/packages/extension-core/package.json index 1e7b0389..15526a58 100644 --- a/packages/extension-core/package.json +++ b/packages/extension-core/package.json @@ -8,7 +8,7 @@ "build": "tsc -b" }, "dependencies": { - "@fetchproxy/protocol": "^2.11.3" + "@fetchproxy/protocol": "^3.0.0" }, "devDependencies": { "@types/chrome": "^0.2.9", diff --git a/packages/server/package.json b/packages/server/package.json index b45851ac..52eadba0 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -28,7 +28,7 @@ }, "license": "MIT", "dependencies": { - "@fetchproxy/protocol": "^2.11.3", + "@fetchproxy/protocol": "^3.0.0", "ws": "^8.21.3" }, "devDependencies": { diff --git a/packages/test-helpers/package.json b/packages/test-helpers/package.json index 4a56309b..a883a6bc 100644 --- a/packages/test-helpers/package.json +++ b/packages/test-helpers/package.json @@ -27,7 +27,7 @@ }, "license": "MIT", "peerDependencies": { - "@fetchproxy/server": "^2.11.3", + "@fetchproxy/server": "^3.0.0", "vitest": ">=1.0.0" } }