From 4dba12a0cba0bd6780acc9afaca43ef8fedf9867 Mon Sep 17 00:00:00 2001 From: Joan Leon Date: Thu, 22 Oct 2026 10:22:50 +0200 Subject: [PATCH 1/2] chore(cli): release 1.2.0, with request headers, throttling and own domains The CLI adds `--header`, sent only to the origin of the measured URL, `--cpu` and `--network` with the presets of DevTools, and `--own-domains`, for the domains of the site that count as first party. cli/package.json, cli/server.json and the lockfile go to 1.2.0, and the changelog of the CLI moves the three entries from Unreleased to 1.2.0. No snippet changed since 1.1.0. The root changelog gets the entry of the Claude Code plugin (#292), merged without one. --- CHANGELOG.md | 1 + cli/CHANGELOG.md | 4 ++++ cli/README.md | 2 +- cli/package.json | 2 +- cli/server.json | 4 ++-- content/CLI.mdx | 2 +- package-lock.json | 2 +- 7 files changed, 11 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ea6d64e..d9b6da85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ### Added - `npm run eval:mcp`: the same question about a local page with a known answer, asked to an agent with the webperf MCP server, with Chrome DevTools MCP and the webperf skills, and with Chrome DevTools MCP alone, graded on the diagnosis and measured in tokens, turns and time. It runs by hand, not in CI. +- A Claude Code plugin, `webperf`, in a marketplace of this repository (`.claude-plugin/marketplace.json`). It starts the MCP server of the CLI with `npx -y webperf-snippets@1 mcp`, pinned to the major version, and installs with `/plugin install webperf --marketplace nucliweb/webperf-snippets`. - `npm run smoke:cli-package`: packs the CLI as the publish workflow does, installs it in an empty folder and checks its MCP server without Chromium and after `npx playwright install chromium`. It runs by hand before a release of the CLI. - LCP-Subparts splits the Resource Load Time into the wait for the server and the download of the resource, in `details.subParts.resourceLoadTime.waiting` and `.download`, from its Resource Timing entry. When the wait is the larger part of the slowest phase, the console recommends the server, CDN and cache instead of compressing the image. The split is missing when another origin hides its timing (no `Timing-Allow-Origin`). diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index bce86f3b..8fef37e5 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -8,6 +8,10 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). The CL ## [Unreleased] +--- + +## [1.2.0] — 2026-10-22 + ### Added - `--header "Name: value"`, repeatable, sends request headers to the origin of the measured URL only, for pages behind an access proxy such as Cloudflare Access. Third parties never receive them, so their requests keep their CORS behavior and timings. - `--cpu ` and `--network ` measure under CPU and network throttling, with the network presets of DevTools (`fast-4g`, `slow-4g`, `3g`). The reports name the conditions under their header, and the JSON output and the `--report-to` payload carry them in `throttling`. diff --git a/cli/README.md b/cli/README.md index da035184..842f4929 100644 --- a/cli/README.md +++ b/cli/README.md @@ -152,7 +152,7 @@ Without `--report-to` the CLI makes no external calls. With it, the results are "timestamp": "2026-05-06T10:00:00.000Z", "navMs": 1240, "results": [], - "meta": { "viewport": "mobile", "waitMs": 3000, "cli_version": "1.1.0" } + "meta": { "viewport": "mobile", "waitMs": 3000, "cli_version": "1.2.0" } } ``` diff --git a/cli/package.json b/cli/package.json index f0ac30dd..ecf36079 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "webperf-snippets", - "version": "1.1.0", + "version": "1.2.0", "mcpName": "io.github.nucliweb/webperf-snippets", "description": "Run curated WebPerf Snippets headlessly via Playwright. Diagnose Core Web Vitals beyond what Lighthouse exposes.", "type": "module", diff --git a/cli/server.json b/cli/server.json index 786b7118..3830c8be 100644 --- a/cli/server.json +++ b/cli/server.json @@ -9,13 +9,13 @@ "source": "github", "subfolder": "cli" }, - "version": "1.1.0", + "version": "1.2.0", "packages": [ { "registryType": "npm", "registryBaseUrl": "https://registry.npmjs.org", "identifier": "webperf-snippets", - "version": "1.1.0", + "version": "1.2.0", "transport": { "type": "stdio" }, diff --git a/content/CLI.mdx b/content/CLI.mdx index b19fd2c1..2cfcc636 100644 --- a/content/CLI.mdx +++ b/content/CLI.mdx @@ -153,7 +153,7 @@ Without `--report-to` the CLI makes no external calls. With it, the results are "timestamp": "2026-05-06T10:00:00.000Z", "navMs": 1240, "results": [], - "meta": { "viewport": "mobile", "waitMs": 3000, "cli_version": "1.1.0" } + "meta": { "viewport": "mobile", "waitMs": 3000, "cli_version": "1.2.0" } } ``` diff --git a/package-lock.json b/package-lock.json index 1d42a8f0..076952a9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,7 +30,7 @@ }, "cli": { "name": "webperf-snippets", - "version": "1.1.0", + "version": "1.2.0", "license": "MIT", "dependencies": { "@modelcontextprotocol/server": "^2.3.1" From 8ab8881e07c7738f39ea41ffce9f8e187ab6250e Mon Sep 17 00:00:00 2001 From: Joan Leon Date: Thu, 22 Oct 2026 10:25:32 +0200 Subject: [PATCH 2/2] docs(changelog): link CLI 1.2.0 and list its options in the root changelog The links at the end of cli/CHANGELOG.md compare Unreleased from cli-v1.2.0 and add the comparison of 1.2.0, which the release commit missed. The root changelog gets a line for the CLI 1.2.0 with its three options and a link to the changelog of the CLI, as 1.0.0 had. --- CHANGELOG.md | 1 + cli/CHANGELOG.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d9b6da85..21986d09 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ### Added - `npm run eval:mcp`: the same question about a local page with a known answer, asked to an agent with the webperf MCP server, with Chrome DevTools MCP and the webperf skills, and with Chrome DevTools MCP alone, graded on the diagnosis and measured in tokens, turns and time. It runs by hand, not in CI. +- The CLI reaches version 1.2.0 (see [`cli/CHANGELOG.md`](cli/CHANGELOG.md)): `--header` for pages behind an access proxy, sent only to the origin of the measured URL, `--cpu` and `--network` for CPU and network throttling with the presets of DevTools, and `--own-domains` for the domains of the site that count as first party. - A Claude Code plugin, `webperf`, in a marketplace of this repository (`.claude-plugin/marketplace.json`). It starts the MCP server of the CLI with `npx -y webperf-snippets@1 mcp`, pinned to the major version, and installs with `/plugin install webperf --marketplace nucliweb/webperf-snippets`. - `npm run smoke:cli-package`: packs the CLI as the publish workflow does, installs it in an empty folder and checks its MCP server without Chromium and after `npx playwright install chromium`. It runs by hand before a release of the CLI. - LCP-Subparts splits the Resource Load Time into the wait for the server and the download of the resource, in `details.subParts.resourceLoadTime.waiting` and `.download`, from its Resource Timing entry. When the wait is the larger part of the slowest phase, the console recommends the server, CDN and cache instead of compressing the image. The split is missing when another origin hides its timing (no `Timing-Allow-Origin`). diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index 8fef37e5..7fd17e52 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -149,7 +149,8 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). The CL --- -[Unreleased]: https://github.com/nucliweb/webperf-snippets/compare/cli-v1.1.0...HEAD +[Unreleased]: https://github.com/nucliweb/webperf-snippets/compare/cli-v1.2.0...HEAD +[1.2.0]: https://github.com/nucliweb/webperf-snippets/compare/cli-v1.1.0...cli-v1.2.0 [1.1.0]: https://github.com/nucliweb/webperf-snippets/compare/cli-v1.0.0...cli-v1.1.0 [1.0.0]: https://github.com/nucliweb/webperf-snippets/compare/cli-v0.5.0...cli-v1.0.0 [0.5.0]: https://github.com/nucliweb/webperf-snippets/compare/cli-v0.4.1...cli-v0.5.0