From b4706ca1d889d6c493fca7a83f07c15120c12ff5 Mon Sep 17 00:00:00 2001 From: Maciek Date: Wed, 1 Apr 2026 12:17:15 +0200 Subject: [PATCH 1/3] chore(frontend): Remove unused CSP domains Signed-off-by: Maciek --- app/nginx.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/nginx.conf b/app/nginx.conf index 2bab3a0f..f6b8bda9 100644 --- a/app/nginx.conf +++ b/app/nginx.conf @@ -22,7 +22,7 @@ http { # CSP: the sha256 hash whitelists the inline theme bootstrap script in index.html. # If that script changes, regenerate with: # python3 -c "import hashlib,base64,re;h=re.search(r'',open('index.html').read(),re.DOTALL).group(1);print(base64.b64encode(hashlib.sha256(h.encode()).digest()).decode())" - add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'sha256-cdVSBJUTkdt+/1Hv5fQ1ypvOVNP5cRMEKnfA9q6dHo4=' https://browser.sentry-cdn.com; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self' ${VITE_API_URL} https://*.${VITE_DNS_CHECK_DOMAIN} https://browser.sentry-cdn.com https://*.ingest.sentry.io ; frame-ancestors 'none'; base-uri 'self'; form-action 'self'" always; + add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'sha256-cdVSBJUTkdt+/1Hv5fQ1ypvOVNP5cRMEKnfA9q6dHo4='; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self' ${VITE_API_URL} https://*.${VITE_DNS_CHECK_DOMAIN} ; frame-ancestors 'none'; base-uri 'self'; form-action 'self'" always; add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always; # Access Control From 648bc38f4a0e9256d9e3784c5c4d8b04d3754dd5 Mon Sep 17 00:00:00 2001 From: Maciek Date: Wed, 1 Apr 2026 12:18:10 +0200 Subject: [PATCH 2/3] chore(frontend): Remove console errors Signed-off-by: Maciek --- app/src/lib/webauthn.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/src/lib/webauthn.ts b/app/src/lib/webauthn.ts index 61040ccc..aa50134a 100644 --- a/app/src/lib/webauthn.ts +++ b/app/src/lib/webauthn.ts @@ -67,7 +67,6 @@ export async function registerPasskey(email: string, subid: string): Promise { throw new Error("Failed to complete passkey addition"); } } catch (err: unknown) { - console.error('Add passkey error:', err); const webauthnErr = err as WebAuthnError; // Handle 429 rate limiting errors From 9e44a4402d8082dba5688301c31d22c8a179d503 Mon Sep 17 00:00:00 2001 From: Maciek Date: Wed, 1 Apr 2026 12:18:26 +0200 Subject: [PATCH 3/3] chore(frontend): Remove Sentry replay integration lazy loading Signed-off-by: Maciek --- app/src/sentry.ts | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/app/src/sentry.ts b/app/src/sentry.ts index f86560da..b8871f8b 100644 --- a/app/src/sentry.ts +++ b/app/src/sentry.ts @@ -11,7 +11,7 @@ Sentry.init({ integrations: [ Sentry.browserTracingIntegration(), - // Sentry.reactRouterV5BrowserTracingIntegration(history), + Sentry.replayIntegration(), ], replaysSessionSampleRate: 0.1, tracesSampleRate: 1.0, @@ -25,8 +25,3 @@ Sentry.init({ return event; }, }); - -// Lazy-load the replay integration to reduce initial bundle size -Sentry.lazyLoadIntegration('replayIntegration').then((replay) => { - Sentry.addIntegration(replay()); -});