From d9f14cb0dbcccdf54260d457a965cc593dec5a4f Mon Sep 17 00:00:00 2001 From: "pulse-triage[bot]" <249995291+pulse-triage[bot]@users.noreply.github.com> Date: Wed, 14 Oct 2026 05:15:05 +0100 Subject: [PATCH 1/3] Record the missing real-phone PBS history consumers Complete the retained three phone topologies after the corrected viewport reached ordinary browser admission. Real touch, snapshot correlation, range retention, explicit target withdrawal and hidden-Overview polling pass at 390px, with all six originals inspected. Preserve the completed desktop consumers and the separate adverse authentication/native jobs. Contract-Neutral: This records new previously missing phone consumer evidence for unchanged production contracts; no runtime, monitoring or access behaviour changes. Change-source: pulse-maintainer --- .../2026-10-14-pbs-phone-consumers.json | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 frontend-modern/browser-verification/2026-10-14-pbs-phone-consumers.json diff --git a/frontend-modern/browser-verification/2026-10-14-pbs-phone-consumers.json b/frontend-modern/browser-verification/2026-10-14-pbs-phone-consumers.json new file mode 100644 index 0000000000..7333274aa9 --- /dev/null +++ b/frontend-modern/browser-verification/2026-10-14-pbs-phone-consumers.json @@ -0,0 +1,86 @@ +{ + "version": 1, + "base_sha": "7d2c9b52581ec24e828dab6da9369621be79330d", + "verified_at": "2026-10-14T04:14:07.481847+00:00", + "result": "passed", + "changed_paths": [ + "frontend-modern/browser-tests/pbs-host-history-correlation.html" + ], + "content_sha256": { + "frontend-modern/browser-tests/pbs-host-history-correlation.html": "1952533ab3b823c4204a50d13006520bf4608f308d980356a7d0d6e7c1573ec7", + "frontend-modern/browser-tests/pbs-host-history-correlation.tsx": "5817353310efc2b89e9219e3ce304c01ce53b81acd75843ab40c6e1e10b17e12", + "frontend-modern/src/components/Infrastructure/ResourceDetailDrawer.tsx": "a9f6116d18eeb473aa86dd91c4b24b98fb1a2e59dda35347718bfb5dbb770f2b", + "frontend-modern/src/components/Workloads/GuestDrawerHistory.tsx": "11ffac0be9469fc1107e63c4e8c99fcd7df26fd401b76ac29664c29cde8a680a" + }, + "routes": [ + "/browser-tests/pbs-host-history-correlation.html?topology=guest", + "/browser-tests/pbs-host-history-correlation.html?topology=pbs-only", + "/browser-tests/pbs-host-history-correlation.html?topology=side-by-side" + ], + "states": [ + "Three genuine390px dark phone topologies use the production PBS table/drawer/history. Previous three desktop results are retained separately,not repeated.", + "Transient correlated-host omission preserves selected series; target withdrawal removes charts; restoration retains7d and drawer owner." + ], + "interactions": [ + "Real touch disclosure/range/phone charts; automatic/reordered snapshots; Overview/Manage switch and bounded5.5-second hidden-Overview polling control.", + "No guest action or external request. One unmatched read-only operator-state endpoint remains a404 safe-fixture limit." + ], + "viewports": [ + { + "width": 390, + "height": 844 + } + ], + "runtime": { + "playwright": "1.56.1", + "webkit": "26.0" + }, + "preview": { + "source": "6ced391ac3d4c832f2b7012a2397a6b9f76d990d", + "containing_source": "7d2c9b52581ec24e828dab6da9369621be79330d", + "archive_sha256": "0897dabec2bfdfb8beca6732fde7bbfd1e845985973ba7c5c543c0f617555719", + "source_input_validation": "All2819 original input hashes match except one unimported Docs test with explicit old/new containing bridge; all compiled inputs and176 artifact hashes match." + }, + "pixel_review": { + "tool": "native view_image", + "opened": [ + { + "file": "pbs-phone-guest-host-history.png", + "bytes": 77417, + "sha256": "68a28ae6229484c1cab52054441386077ed4ca1ad52731ca1636335974beb5fa", + "pixel_observation": "History and identity are readable within genuine390px; target withdrawal leaves no chart or measured zero." + }, + { + "file": "pbs-phone-guest-target-withdrawn.png", + "bytes": 24848, + "sha256": "9ffacbebadf8e0e0f2931abe5f8b60a3f2675ccf0763a844a52b095b391ea72c", + "pixel_observation": "History and identity are readable within genuine390px; target withdrawal leaves no chart or measured zero." + }, + { + "file": "pbs-phone-pbs-only-host-history.png", + "bytes": 88074, + "sha256": "1c46cee85e04d9e8e80d9cb28ac23b2ce3265510a9bebdc0a875e06b56a4b956", + "pixel_observation": "History and identity are readable within genuine390px; target withdrawal leaves no chart or measured zero." + }, + { + "file": "pbs-phone-pbs-only-target-withdrawn.png", + "bytes": 25264, + "sha256": "7aa87cff8397a1b3236e2bbe1fd52e38678e969397ca3f0f808b5f0be9a64a19", + "pixel_observation": "History and identity are readable within genuine390px; target withdrawal leaves no chart or measured zero." + }, + { + "file": "pbs-phone-side-by-side-host-history.png", + "bytes": 88092, + "sha256": "0269916f805f80f0dfc5d9191614c5907693c9493afb906b596ad61c40930f4b", + "pixel_observation": "History and identity are readable within genuine390px; target withdrawal leaves no chart or measured zero." + }, + { + "file": "pbs-phone-side-by-side-target-withdrawn.png", + "bytes": 25264, + "sha256": "7aa87cff8397a1b3236e2bbe1fd52e38678e969397ca3f0f808b5f0be9a64a19", + "pixel_observation": "History and identity are readable within genuine390px; target withdrawal leaves no chart or measured zero." + } + ] + }, + "proof_scope": "Completes missing phone PBS source-consumer proof only. Does not establish native PBS disappearance/restart/thaw,authentication golden acceptance,release inclusion or reporter resolution." +} From aaa1446815aa774ad4742e6fc4fb1629191894b1 Mon Sep 17 00:00:00 2001 From: "pulse-triage[bot]" <249995291+pulse-triage[bot]@users.noreply.github.com> Date: Wed, 14 Oct 2026 05:16:11 +0100 Subject: [PATCH 2/3] Refresh the complete frontend group with compatible Solid serializers Account for every update in PR 2759 using its complete original graph and the already verified official serializer metadata, rather than carrying the old security override into Solid 1.9.16. Lock both runtime edges to 1.6.8, preserve every security override and add installed-version checks that reject stale offline graphs. Acquisition and fresh exact-graph qualification remain required before integration. Contract-Neutral: Compatible patch/tooling refresh within existing rendering, security and serialization contracts; no new surface or authority, and all security floors, strict audit and consumer checks remain required. Change-source: pulse-maintainer --- frontend-modern/package-lock.json | 250 +++++++++++------- frontend-modern/package.json | 14 +- .../__tests__/dependencyTooling.test.ts | 20 ++ 3 files changed, 184 insertions(+), 100 deletions(-) diff --git a/frontend-modern/package-lock.json b/frontend-modern/package-lock.json index 78f8a43477..842a9cb8cb 100644 --- a/frontend-modern/package-lock.json +++ b/frontend-modern/package-lock.json @@ -15,7 +15,7 @@ "lucide-solid": "^0.577.0", "marked": "^17.0.1", "qrcode": "^1.5.4", - "solid-js": "^1.9.15" + "solid-js": "^1.9.16" }, "devDependencies": { "@eslint/js": "^9.39.2", @@ -23,21 +23,21 @@ "@tailwindcss/typography": "^0.5.19", "@tailwindcss/vite": "^4.3.3", "@testing-library/jest-dom": "^6.5.0", - "@types/node": "^26.6.3", + "@types/node": "^26.6.4", "@types/qrcode": "^1.5.6", - "@typescript-eslint/eslint-plugin": "^8.71.0", - "@typescript-eslint/parser": "^8.71.0", + "@typescript-eslint/eslint-plugin": "^8.71.1", + "@typescript-eslint/parser": "^8.71.1", "@vitest/coverage-v8": "^4.1.11", "eslint": "^9.20.0", "eslint-config-prettier": "^10.0.0", - "eslint-plugin-solid": "^0.18.0", - "globals": "^17.12.0", + "eslint-plugin-solid": "^0.18.1", + "globals": "^17.13.0", "jscpd": "^5.4.0", "jsdom": "^24.1.0", "prettier": "3.9.9", "tailwindcss": "^4.3.3", "typescript": "^5.3.0", - "typescript-eslint": "^8.71.0", + "typescript-eslint": "^8.71.1", "vite": "^6.4.3", "vite-plugin-solid": "^2.11.14", "vite-plugin-sri-gen": "^1.7.4", @@ -1932,6 +1932,72 @@ "node": ">=14.0.0" } }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/core": { + "version": "1.11.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/runtime": { + "version": "1.11.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/wasi-threads": { + "version": "1.2.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@tybys/wasm-util": { + "version": "0.10.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/tslib": { + "version": "2.8.1", + "dev": true, + "inBundle": true, + "license": "0BSD", + "optional": true + }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.3.tgz", @@ -2126,9 +2192,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-26.6.3.tgz", - "integrity": "sha512-dsqMQQoeTLqu9wynDD00q573mNzso3IdQOAfHRJqLCcmCFPoGo9A1bDpUcv/9tnKpErQWv9uKeGfl37EIS02Yg==", + "version": "26.6.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.6.4.tgz", + "integrity": "sha512-ldVPDCzj7fsaGZrLB0NuHuTvJcsNasysBAqMolr/cgxrLd1xbqxIr3XJiPnHHJUCxj5sNF1vnRj9aWnrVh5Jcg==", "dev": true, "license": "MIT", "dependencies": { @@ -2153,17 +2219,17 @@ "optional": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.71.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.71.0.tgz", - "integrity": "sha512-pqcS9c1HxZTHt7End4nXqd0s5lJrrFzrgCkKFJrsbUnaL6M3+6oBFZaslg6Gjsl3argl2DDRFROnXARaZ2e4Nw==", + "version": "8.71.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.71.1.tgz", + "integrity": "sha512-nNlBf6HuotqMgZvSkWD5hNdemiBIxQ2NmrlgfcUIeZRs+BbakjscCQRq/Hb74EFVnFiSWWdL12JruqwBy3ERDw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.71.0", - "@typescript-eslint/type-utils": "8.71.0", - "@typescript-eslint/utils": "8.71.0", - "@typescript-eslint/visitor-keys": "8.71.0", + "@typescript-eslint/scope-manager": "8.71.1", + "@typescript-eslint/type-utils": "8.71.1", + "@typescript-eslint/utils": "8.71.1", + "@typescript-eslint/visitor-keys": "8.71.1", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" @@ -2176,22 +2242,22 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.71.0", + "@typescript-eslint/parser": "^8.71.1", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "8.71.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.71.0.tgz", - "integrity": "sha512-CG4nPk1f2zc8yw4pALqHsFYH2hdo+h1T9daSp21+Hnxi9LOE3GT9hAfTKJCBXVNM2GmYs1eMEP615wPoeOgk3A==", + "version": "8.71.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.71.1.tgz", + "integrity": "sha512-oM/5sAqz/l1v/zYK1qTOPrn2+JIrBGC1V6uNYucRO5gh6eT9vWJ/RhPbGE59byvZEUQ4VP6XkLBaS5Jti5jpvw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.71.0", - "@typescript-eslint/types": "8.71.0", - "@typescript-eslint/typescript-estree": "8.71.0", - "@typescript-eslint/visitor-keys": "8.71.0", + "@typescript-eslint/scope-manager": "8.71.1", + "@typescript-eslint/types": "8.71.1", + "@typescript-eslint/typescript-estree": "8.71.1", + "@typescript-eslint/visitor-keys": "8.71.1", "debug": "^4.4.3" }, "engines": { @@ -2207,14 +2273,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.71.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.71.0.tgz", - "integrity": "sha512-aABjw5rjBacYONVPaPiWOCjJu0vEF4a25iQuodlmQYL1trtLZ0X/y+2Vzl3BKI1odM4LnwLE1oUDXYp1wzx1TQ==", + "version": "8.71.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.71.1.tgz", + "integrity": "sha512-Oijc9RUsohHjncg6iGi7gCtjnEjYt9FWv9u6ygK8uKcHK5eLjLAkqERQ9BaytbpceOFdk6kifPCS/zAZE+A99g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.71.0", - "@typescript-eslint/types": "^8.71.0", + "@typescript-eslint/tsconfig-utils": "^8.71.1", + "@typescript-eslint/types": "^8.71.1", "debug": "^4.4.3" }, "engines": { @@ -2229,14 +2295,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.71.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.71.0.tgz", - "integrity": "sha512-gWF0BhUcnjZxSpLE8ngS/59n2SB0J3YqRxvX1+2aoRJk9hNtHSLOV+TcarFiOr5ipXm3yc1QrI4c9YZc8zyCxw==", + "version": "8.71.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.71.1.tgz", + "integrity": "sha512-1YUDZXdTnXLlob03SFHBipdyMBsDVm7zoSz0ytTJ39dk5J1TgsTK03VlR/dLXG/RLLUrPcYbD4rp23BmHxHP0w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.71.0", - "@typescript-eslint/visitor-keys": "8.71.0" + "@typescript-eslint/types": "8.71.1", + "@typescript-eslint/visitor-keys": "8.71.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2247,9 +2313,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.71.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.71.0.tgz", - "integrity": "sha512-Z1UlWHADEK2Mlb9NpWfDeSjqoZ5EyrOv4R3eQpbkzqn/EwaIdOpXXupEA1+0ZIOSJSZZDBHG0BrQyN8zUG6Pwg==", + "version": "8.71.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.71.1.tgz", + "integrity": "sha512-oTvkml5SxXhgg+WWKhod5qWQICDXtOB+/Hi9VdPKFAANJ2b7YOgMffgvzXuqog7R6A/JtrzRf128dsxummyWhg==", "dev": true, "license": "MIT", "engines": { @@ -2264,15 +2330,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.71.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.71.0.tgz", - "integrity": "sha512-i8uO1qbdxeKgRnS5sCRt6On3/nfo2d2DwQe3Yvjx543zLy7r8ySqRuPPiIIXAhS03U0v5NfAFx+rUgxFzKKwNw==", + "version": "8.71.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.71.1.tgz", + "integrity": "sha512-kH3t3jZCYv2PZSBEWPKTariLrCaoF1CLoPitYFBJOhAGEwWnSRAtGEifrfrpBa4K9JlwWNZotgA5w3/wLSk/FQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.71.0", - "@typescript-eslint/typescript-estree": "8.71.0", - "@typescript-eslint/utils": "8.71.0", + "@typescript-eslint/types": "8.71.1", + "@typescript-eslint/typescript-estree": "8.71.1", + "@typescript-eslint/utils": "8.71.1", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, @@ -2289,9 +2355,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.71.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.71.0.tgz", - "integrity": "sha512-cJ4OoxPGWvFnBTnSZyaU+qJzGTqPTGJY+gDchj6cRyLRdmIdt4rcsE4twj+zPfrNiWuVi38wijHzShL++Z9atQ==", + "version": "8.71.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.71.1.tgz", + "integrity": "sha512-ybYnPTUwg3VQQOFEiBPLs8Jxl1ry2vXdn1kVKguomBbvxpetdu3MKTNDqFNUrlG8ylP9MpZosmXMFYlGQHk1oQ==", "dev": true, "license": "MIT", "engines": { @@ -2303,16 +2369,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.71.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.71.0.tgz", - "integrity": "sha512-PEEF4G5sLLWAS5BpPrUvms4ySZkiBQQZM4z+3ReI46axK5Vqr/vXBQatJQIZZOYdGyPUAKTtsrWzpqKuU+3DEw==", + "version": "8.71.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.71.1.tgz", + "integrity": "sha512-pSKSEK1JJpHs6KiKVtABCE4iJK5d7FLFzDXQNBQ2oRY7LEd3UwOt3TZemTgu9syTIf56dJWlTn/pdmrO9oKUXQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.71.0", - "@typescript-eslint/tsconfig-utils": "8.71.0", - "@typescript-eslint/types": "8.71.0", - "@typescript-eslint/visitor-keys": "8.71.0", + "@typescript-eslint/project-service": "8.71.1", + "@typescript-eslint/tsconfig-utils": "8.71.1", + "@typescript-eslint/types": "8.71.1", + "@typescript-eslint/visitor-keys": "8.71.1", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", @@ -2331,16 +2397,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.71.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.71.0.tgz", - "integrity": "sha512-pKR/tEMVrXZG23UFKUn5BQf3zfmfk7KQceI2cGzywZ5nxM5Eu3hEJU1utjWzydtzBbcJAQhHN8iPCxobHpPcZQ==", + "version": "8.71.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.71.1.tgz", + "integrity": "sha512-CBjT6gfAz3DW2j9Q4moFnqt208Aq+506sVGXfpRcyAeqn0EpayL0mjdWoCO2t3RC7GewNrFxdeehuEaPg6DMzQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.71.0", - "@typescript-eslint/types": "8.71.0", - "@typescript-eslint/typescript-estree": "8.71.0" + "@typescript-eslint/scope-manager": "8.71.1", + "@typescript-eslint/types": "8.71.1", + "@typescript-eslint/typescript-estree": "8.71.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2355,13 +2421,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.71.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.71.0.tgz", - "integrity": "sha512-8eQ9R218XORK+KLosnf4bu/QsUXvUyVwTbArg7/0NMB1Pu87OJKvj4nhFblkYE8gQV73mW1dx1ptlPCkwRGa7A==", + "version": "8.71.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.71.1.tgz", + "integrity": "sha512-0GxiUGqMU0qXJt58cBsiG3DP8lUmBaFo2vChtUX+CT7PnR3v/VGLLrzVP4K9r1lNiZXjHYefMBbPunplr09v6w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.71.0", + "@typescript-eslint/types": "8.71.1", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -3348,9 +3414,9 @@ } }, "node_modules/eslint-plugin-solid": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-solid/-/eslint-plugin-solid-0.18.0.tgz", - "integrity": "sha512-Q3tSfb5EqU1nt8raRR8u7uMCLmB1779atKFxZ48TLor0rX+S0Bxt1gcTgYQTK+FK0T/iwFZJf13sSQncjFOBPg==", + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-solid/-/eslint-plugin-solid-0.18.1.tgz", + "integrity": "sha512-zxGSWGEfaVCujuOT358UVrBWuKEf91RP6bRbEIQaoX2d3VVP6R2+4NchdSajtpwNliw7eAJDjYBviuyPuSwmUQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3736,9 +3802,9 @@ } }, "node_modules/globals": { - "version": "17.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-17.12.0.tgz", - "integrity": "sha512-cezEd/DTyyht9cvSSURyygXPfy04GtWO/5e6ZPvH7fCtjKz9PYOmuawphw1Ctd1f6C+5JypXfGD7ahNMXvevBA==", + "version": "17.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.13.0.tgz", + "integrity": "sha512-RwMTC61u7hrG3ZJMkZQOK4JLJrKS8QtoTii63EmWvFXHqycY9FObBJQCbsLxSO8kjKhWE5kV1GC+Vb1g3RI0Zg==", "dev": true, "license": "MIT", "engines": { @@ -5312,24 +5378,22 @@ } }, "node_modules/seroval": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/seroval/-/seroval-1.6.3.tgz", - "integrity": "sha512-5PwLbVPpT4DEki1hYVSSsoxWY6xCNMVucAVLK/CH0mXSDfp/I4KaAex72q80GNt5hpn7CCMGdSpIg4YGqH/wXQ==", - "license": "MIT", + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/seroval/-/seroval-1.6.8.tgz", + "integrity": "sha512-HlSgSAkTk4EqHcje1ptJjfZi1YDv5KbhVJ/d3P7T/nAXua2VmDu+AKDX5VTdFfZf48nDkWB2TKYt0DrCSa+3wg==", "engines": { "node": ">=10" } }, "node_modules/seroval-plugins": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/seroval-plugins/-/seroval-plugins-1.5.5.tgz", - "integrity": "sha512-+BDhqYM6CEn3x09v44dpa9p6974FuUB2dxk+Ctn04k0cO1Zt6QODTXfmEZK0eBaTe/fJBvP4NMGuNJ+R8T+QMg==", - "license": "MIT", - "engines": { - "node": ">=10" - }, + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/seroval-plugins/-/seroval-plugins-1.6.8.tgz", + "integrity": "sha512-N7mWAMydj89EnYTHtRpS3LBrAz3J9O6oVrqpuXuvlAHfAUG8WEKqtbAd7SBiJNY5NfCAFhSdyAh7wI4Shjqy4g==", "peerDependencies": { "seroval": "^1.0" + }, + "engines": { + "node": ">=10" } }, "node_modules/set-blocking": { @@ -5369,14 +5433,14 @@ "license": "ISC" }, "node_modules/solid-js": { - "version": "1.9.15", - "resolved": "https://registry.npmjs.org/solid-js/-/solid-js-1.9.15.tgz", - "integrity": "sha512-EeiY2xfpZJqPLjXspVEKjAII4yv8NyG//NxZ3IpOFHdUNnnTyL0uJOeS9LWGvA7cFCz5y94cjFwYlmw5Luncsg==", + "version": "1.9.16", + "resolved": "https://registry.npmjs.org/solid-js/-/solid-js-1.9.16.tgz", + "integrity": "sha512-vESESWrNRebA0sQv+Vr9/2wOFOL6NK2QQow7F5/WCBH4c+OVoDyQNEbiVKVL7YqE1M7MPd7z7p27KElLkaD0bw==", "license": "MIT", "dependencies": { "csstype": "^3.1.0", - "seroval": "~1.5.4", - "seroval-plugins": "~1.5.4" + "seroval": "~1.6.8", + "seroval-plugins": "~1.6.8" } }, "node_modules/solid-refresh": { @@ -5676,16 +5740,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.71.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.71.0.tgz", - "integrity": "sha512-fBdHYiqQ14RW6mOMXD14Svn82ZsCYAoQSzGRzyEjR59S5A2Krh/l7fGTOQ7iCr8gGy/mHVXtEF7s5fgjEdV0Pw==", + "version": "8.71.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.71.1.tgz", + "integrity": "sha512-oiNVPC3/NbV1FpaHU07l8O6ynqG9v4PAiW2WvTrAmZdR0f2HI/gE668ElMLCK7Xbsu5k2fK5C4fXNiq05j7/nQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.71.0", - "@typescript-eslint/parser": "8.71.0", - "@typescript-eslint/typescript-estree": "8.71.0", - "@typescript-eslint/utils": "8.71.0" + "@typescript-eslint/eslint-plugin": "8.71.1", + "@typescript-eslint/parser": "8.71.1", + "@typescript-eslint/typescript-estree": "8.71.1", + "@typescript-eslint/utils": "8.71.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" diff --git a/frontend-modern/package.json b/frontend-modern/package.json index 9909821e4b..b207d4623f 100644 --- a/frontend-modern/package.json +++ b/frontend-modern/package.json @@ -58,7 +58,7 @@ "lucide-solid": "^0.577.0", "marked": "^17.0.1", "qrcode": "^1.5.4", - "solid-js": "^1.9.15" + "solid-js": "^1.9.16" }, "overrides": { "esbuild": "0.28.1", @@ -76,21 +76,21 @@ "@tailwindcss/typography": "^0.5.19", "@tailwindcss/vite": "^4.3.3", "@testing-library/jest-dom": "^6.5.0", - "@types/node": "^26.6.3", + "@types/node": "^26.6.4", "@types/qrcode": "^1.5.6", - "@typescript-eslint/eslint-plugin": "^8.71.0", - "@typescript-eslint/parser": "^8.71.0", + "@typescript-eslint/eslint-plugin": "^8.71.1", + "@typescript-eslint/parser": "^8.71.1", "@vitest/coverage-v8": "^4.1.11", "eslint": "^9.20.0", "eslint-config-prettier": "^10.0.0", - "eslint-plugin-solid": "^0.18.0", - "globals": "^17.12.0", + "eslint-plugin-solid": "^0.18.1", + "globals": "^17.13.0", "jscpd": "^5.4.0", "jsdom": "^24.1.0", "prettier": "3.9.9", "tailwindcss": "^4.3.3", "typescript": "^5.3.0", - "typescript-eslint": "^8.71.0", + "typescript-eslint": "^8.71.1", "vite": "^6.4.3", "vite-plugin-solid": "^2.11.14", "vite-plugin-sri-gen": "^1.7.4", diff --git a/frontend-modern/src/security/__tests__/dependencyTooling.test.ts b/frontend-modern/src/security/__tests__/dependencyTooling.test.ts index cdcf66dec5..42a5a41fb3 100644 --- a/frontend-modern/src/security/__tests__/dependencyTooling.test.ts +++ b/frontend-modern/src/security/__tests__/dependencyTooling.test.ts @@ -33,6 +33,26 @@ describe('reviewed formatter behaviour', () => { }); describe('patched transitive dependency compatibility', () => { + it.each([ + 'solid-js', + 'seroval', + 'seroval-plugins', + '@types/node', + '@typescript-eslint/eslint-plugin', + '@typescript-eslint/parser', + 'eslint-plugin-solid', + 'globals', + 'typescript-eslint', + ])('executes the exact committed %s version, not a stale offline install', (name) => { + const lock = JSON.parse( + readFileSync(new URL('../../../package-lock.json', import.meta.url), 'utf8'), + ) as { packages: Record }; + const installed = JSON.parse( + readFileSync(new URL(`../../../node_modules/${name}/package.json`, import.meta.url), 'utf8'), + ) as { version: string }; + expect(installed.version).toBe(lock.packages[`node_modules/${name}`].version); + }); + it.each([ ['solid-js', 'seroval'], ['seroval-plugins/web', 'seroval'], From a0db3ef1e92dffde16f914cd2b480bb576cf538b Mon Sep 17 00:00:00 2001 From: "pulse-triage[bot]" <249995291+pulse-triage[bot]@users.noreply.github.com> Date: Wed, 14 Oct 2026 05:22:23 +0100 Subject: [PATCH 3/3] Preserve the qualified topology for the unchanged WASM bundle Keep all seventeen refreshed versions and the compatible serializers, but use maintained main's existing complete lock representation for the unchanged optional WASM archive. The proposal's six extra inBundle records have no independent tarball or SRI; they add inventory, not resolutions. Preserve the exact official parent tarball, SRI, bundled names and declared dependencies instead of inventing child integrity or changing the registry-only acquisition check. Contract-Neutral: No package, security floor or runtime dependency is removed; the unchanged bundle remains authenticated by its original parent archive, using the existing qualified lock topology. Change-source: pulse-maintainer --- frontend-modern/package-lock.json | 66 ------------------------------- 1 file changed, 66 deletions(-) diff --git a/frontend-modern/package-lock.json b/frontend-modern/package-lock.json index 842a9cb8cb..f6e1bb385a 100644 --- a/frontend-modern/package-lock.json +++ b/frontend-modern/package-lock.json @@ -1932,72 +1932,6 @@ "node": ">=14.0.0" } }, - "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/core": { - "version": "1.11.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/wasi-threads": "1.2.2", - "tslib": "^2.4.0" - } - }, - "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/runtime": { - "version": "1.11.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/wasi-threads": { - "version": "1.2.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@tybys/wasm-util": "^0.10.1" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - }, - "peerDependencies": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1" - } - }, - "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@tybys/wasm-util": { - "version": "0.10.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/tslib": { - "version": "2.8.1", - "dev": true, - "inBundle": true, - "license": "0BSD", - "optional": true - }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.3.tgz",