From 58839c2d322b5dffcadeb887e19b7c9b87a85ee3 Mon Sep 17 00:00:00 2001 From: enricobuehler Date: Sun, 9 Aug 2026 09:46:34 +0200 Subject: [PATCH] =?UTF-8?q?fix(deps):=200.1.1=20=E2=80=94=20pin=20effect?= =?UTF-8?q?=20exactly;=20a=20caret=20range=20on=20a=20beta=20crash-looped?= =?UTF-8?q?=20the=20plugin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The plugin would not start. Every launch died at module import with TypeError: Schema3.TaggedErrorClass is not a function reported by the runner as the uninformative `UnknownError: An error occurred in Effect.tryPromise` (`sdk/src/runner.ts` wraps the import in a bare `tryPromise` and logs only the first line of the cause, so the real TypeError never reaches a log line). Cause: `"effect": "^4.0.0-beta.102"`. A caret range spans breaking prereleases. effect still had `Schema.TaggedErrorClass` at beta.102 but had removed it by beta.106, so a fresh install resolved beta.106 and the contract's Schema-backed error classes failed to construct at import time — before any of this plugin's code ran. Pinned to exactly the version it was already written against, beta.102, which still has the API; this is the smallest change that makes runtime match the build. Measured: beta.99 and beta.102 both export TaggedErrorClass, beta.106 does not. Verified by reproduction rather than inspection — clean sandbox, same command: 0.1.0 (^4.0.0-beta.102) -> resolves effect beta.106 -> import fails with the TypeError above 0.1.1 (4.0.0-beta.102) -> resolves effect beta.102 -> import OK, default export `virtualhere` Gates: frozen-lockfile install, typecheck x3, 73 tests, biome — all clean. Same class of bug as punktfunk-plugin-rom-manager#4. The other plugins (epic, gog, heroic, lutris, steam, xbox) already pin exactly and are unaffected; playnite still carries `^4.0.0-beta.99` and has the same latent bug. --- plugin/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin/package.json b/plugin/package.json index 4f9953d..607ab52 100644 --- a/plugin/package.json +++ b/plugin/package.json @@ -1,6 +1,6 @@ { "name": "@punktfunk/plugin-virtualhere", - "version": "0.1.0", + "version": "0.1.1", "private": false, "type": "module", "description": "Punktfunk plugin: hands a couch's physical USB device (pad, wheel, HOTAS) to the host for the length of a session over VirtualHere, and gives it back after. Integration only \u2014 VirtualHere is sold separately by VirtualHere Pty. Ltd.", @@ -40,7 +40,7 @@ "dependencies": { "@punktfunk/host": "^0.1.2", "@punktfunk/plugin-kit": "^0.2.0", - "effect": "^4.0.0-beta.102" + "effect": "4.0.0-beta.102" }, "devDependencies": { "@types/bun": "^1.3.0", -- 2.54.0