From ccc0c37f3039a7cab0537a22c0babefdc401f208 Mon Sep 17 00:00:00 2001 From: Joseph Petersen Date: Sat, 11 Jul 2026 15:35:41 +0200 Subject: [PATCH 1/2] fix(web): use WASM diff highlighter --- apps/web/src/components/DiffWorkerPoolProvider.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/web/src/components/DiffWorkerPoolProvider.tsx b/apps/web/src/components/DiffWorkerPoolProvider.tsx index 3ec748c6bcb..ac0d93c9009 100644 --- a/apps/web/src/components/DiffWorkerPoolProvider.tsx +++ b/apps/web/src/components/DiffWorkerPoolProvider.tsx @@ -72,6 +72,9 @@ export function DiffWorkerPoolProvider({ children }: { children?: ReactNode }) { totalASTLRUCacheSize: 240, }} highlighterOptions={{ + // Oniguruma avoids the runaway backtracking possible when TextMate grammars + // are translated to native JavaScript regular expressions. + preferredHighlighter: "shiki-wasm", theme: diffThemeName, tokenizeMaxLineLength: 1_000, useTokenTransformer: true, From ed35e48873fa1eefcc851967ec85ea1ef62968a0 Mon Sep 17 00:00:00 2001 From: Joseph Petersen Date: Sat, 11 Jul 2026 15:49:44 +0200 Subject: [PATCH 2/2] fix(desktop): allow WebAssembly compilation --- apps/desktop/src/electron/ElectronProtocol.test.ts | 3 ++- apps/desktop/src/electron/ElectronProtocol.ts | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/desktop/src/electron/ElectronProtocol.test.ts b/apps/desktop/src/electron/ElectronProtocol.test.ts index 92e30000427..2db85dafc4d 100644 --- a/apps/desktop/src/electron/ElectronProtocol.test.ts +++ b/apps/desktop/src/electron/ElectronProtocol.test.ts @@ -57,7 +57,7 @@ describe("ElectronProtocol", () => { assert.equal(yield* Effect.promise(() => response.text()), "ok"); assert.include( response.headers.get("content-security-policy") ?? "", - "script-src 'self' 'unsafe-inline' https://clerk.t3.codes https://challenges.cloudflare.com", + "script-src 'self' 'unsafe-inline' 'wasm-unsafe-eval' https://clerk.t3.codes https://challenges.cloudflare.com", ); assert.include( response.headers.get("content-security-policy") ?? "", @@ -212,6 +212,7 @@ describe("ElectronProtocol", () => { assert.deepEqual(directives["script-src"], [ "'self'", "'unsafe-inline'", + "'wasm-unsafe-eval'", "https://clerk.t3.codes", "https://challenges.cloudflare.com", ]); diff --git a/apps/desktop/src/electron/ElectronProtocol.ts b/apps/desktop/src/electron/ElectronProtocol.ts index 03c7ef64fd7..9d5a47806b3 100644 --- a/apps/desktop/src/electron/ElectronProtocol.ts +++ b/apps/desktop/src/electron/ElectronProtocol.ts @@ -71,6 +71,7 @@ export function makeDesktopContentSecurityPolicy(input: DesktopProtocolRegistrat const scriptSources = [ "'self'", "'unsafe-inline'", + "'wasm-unsafe-eval'", ...(clerkOrigin ? [clerkOrigin] : []), "https://challenges.cloudflare.com", ];