From 6718acde0f2b6c1589f5d9abbf43f1dbe5a46c2e Mon Sep 17 00:00:00 2001 From: HeavenVR Date: Tue, 4 Aug 2026 09:57:45 +0200 Subject: [PATCH 01/13] Reapply "fix: Use https for submodules" This reverts commit a3e03a5626160c4cfdf2d5141519b48df138b7a4. --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index 41792b62..3be40ab2 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "packages/svelte-core"] path = packages/svelte-core - url = git@github.com:OpenShock/svelte-core.git + url = https://github.com/OpenShock/svelte-core.git From 81c0edc25c73b295159b9d9e78067407de969eec Mon Sep 17 00:00:00 2001 From: LucHeart Date: Tue, 4 Aug 2026 10:20:04 +0200 Subject: [PATCH 02/13] =?UTF-8?q?=C3=A0dd=20note=20about=20git=20urls,=20r?= =?UTF-8?q?emove=20old=20instructions=20from=20readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 28 ++++------------------------ 1 file changed, 4 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index c4ffeaf7..84cbbed5 100644 --- a/README.md +++ b/README.md @@ -34,34 +34,14 @@ This is the frontend for the OpenShock project that interfaces with the OpenShoc - `pnpm run dev` - Start the development server - `pnpm run build` - Build the project - `pnpm run preview` - Preview the built project -- `pnpx openapi-generator-cli generate` - Generate the API client +- `pnpx regenßapi` - Generate the API client ## Setup -To get started with development, you will need to have **Node.js** and **pnpm** installed. - -We recommend using a version manager like [Volta](https://docs.volta.sh/guide/getting-started) to manage your Node.js versions. - -### Install Node.js and pnpm - -Install on Linux: - -```bash -curl https://get.volta.sh | bash -``` +To clone the project you may need to rewrite git HTTPS urls to SSH for the submodule checkout to work on your machine. +You can do this with `git config --global url."git@github.com:".insteadOf "https://github.com/"` -Install on Windows: - -```pwsh -winget install Volta.Volta -``` - -Then you can install the required **Node.js** and **pnpm** version by running a single command in the repository root directory: - -```bash -volta install node -volta install pnpm -``` +To get started with development, you will need to have **Node.js** and **pnpm** installed. ### Install dependencies and build project From 0f5e4e8777e55e8c17730d30c95e7f8472ecb220 Mon Sep 17 00:00:00 2001 From: LucHeart Date: Tue, 4 Aug 2026 10:20:16 +0200 Subject: [PATCH 03/13] add selfhost notes --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 84cbbed5..cd9c6a6a 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,7 @@ To clone the project you may need to rewrite git HTTPS urls to SSH for the submo You can do this with `git config --global url."git@github.com:".insteadOf "https://github.com/"` To get started with development, you will need to have **Node.js** and **pnpm** installed. +We recommend using a node version manager of your choice. ### Install dependencies and build project @@ -134,7 +135,6 @@ src/ # Application source code - `vite.config.ts` — Vite bundler config. - `svelte.config.js` — SvelteKit configuration. - `components.json` — Component metadata for shadcn. -- `openapitools.json` — Codegen config from OpenAPI spec. - `playwright.config.ts` — End-to-end testing configuration (Playwright). ### 🌐 Environment Variables @@ -158,6 +158,11 @@ Any file ending with `.local` are meant for setting local development variables - `Dockerfile` — Container definition for deployment or local dev. - `.dockerignore` — Files to exclude from Docker build context. +## Selfhosting + +A guide to selfhost can be found [on the wiki.](https://wiki.openshock.org/guides/selfhosting) +Alternatively you can deploy it to cloudflare workers / pages using wrangler (or forking it). + ## Support You can support the openshock dev team here: [Sponsor OpenShock](https://github.com/sponsors/OpenShock) From 7ce3bcfa9eaa4ec999613640fd2fe6be09940bd8 Mon Sep 17 00:00:00 2001 From: HeavenVR Date: Thu, 6 Aug 2026 10:06:09 +0200 Subject: [PATCH 04/13] fix: Remove germany --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cd9c6a6a..62051a16 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ This is the frontend for the OpenShock project that interfaces with the OpenShoc - `pnpm run dev` - Start the development server - `pnpm run build` - Build the project - `pnpm run preview` - Preview the built project -- `pnpx regenßapi` - Generate the API client +- `pnpx regen-api` - Generate the API client ## Setup From d5b3aa2ede417a6f138178a2871e79cfd1b7d56c Mon Sep 17 00:00:00 2001 From: HeavenVR Date: Thu, 6 Aug 2026 11:46:28 +0200 Subject: [PATCH 05/13] chore: Drop redundant nodejs_als, fix otel dep placement, document telemetry gating nodejs_compat already provides AsyncLocalStorage at our compatibility date (>= 2024-09-23 enables nodejs_compat_v2), so nodejs_als was a no-op in both wrangler configs. Move @opentelemetry/api and @opentelemetry/sdk-trace-node to dependencies, alongside the other seven @opentelemetry/* packages. Document that PUBLIC_SIGNOZ_LOGS_ENABLED is intentionally one switch for all telemetry signals despite its name, and that being a $env/static/public import means the whole tracing block is dead-code eliminated unless the flag is set in the build environment -- not just at runtime. Note in the CSP comment that the _headers X-Frame-Options fallback for prerendered pages is Cloudflare-only: adapter-node serves prerendered HTML through sirv before the SvelteKit handler, so hooks.server.ts never runs for it. Moot while prerender = false at the root layout. --- package.json | 4 ++-- pnpm-lock.yaml | 12 ++++++------ src/instrumentation.server.ts | 8 ++++++++ vite.config.ts | 6 +++++- wrangler.jsonc | 2 +- wrangler.workers.jsonc | 2 +- 6 files changed, 23 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 41c8d248..7c5ff0bc 100644 --- a/package.json +++ b/package.json @@ -25,8 +25,6 @@ "@internationalized/date": "^3.12.2", "@lucide/svelte": "^1.28.0", "@microsoft/signalr": "^10.0.0", - "@opentelemetry/api": "^1.9.1", - "@opentelemetry/sdk-trace-node": "^2.10.0", "@playwright/test": "^1.62.1", "@sveltejs/adapter-cloudflare": "^7.2.9", "@sveltejs/adapter-node": "^5.5.7", @@ -75,6 +73,7 @@ }, "dependencies": { "@openshock/svelte-core": "workspace:*", + "@opentelemetry/api": "^1.9.1", "@opentelemetry/api-logs": "^0.221.0", "@opentelemetry/exporter-logs-otlp-http": "^0.221.0", "@opentelemetry/exporter-trace-otlp-http": "^0.221.0", @@ -82,6 +81,7 @@ "@opentelemetry/instrumentation-fetch": "^0.221.0", "@opentelemetry/resources": "^2.10.0", "@opentelemetry/sdk-logs": "^0.221.0", + "@opentelemetry/sdk-trace-node": "^2.10.0", "@opentelemetry/sdk-trace-web": "^2.10.0", "core": "workspace:@openshock/svelte-core@*", "driver.js": "^1.8.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d83baf4a..d8824532 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -25,6 +25,9 @@ importers: '@openshock/svelte-core': specifier: workspace:* version: link:packages/svelte-core + '@opentelemetry/api': + specifier: ^1.9.1 + version: 1.9.1 '@opentelemetry/api-logs': specifier: ^0.221.0 version: 0.221.0 @@ -46,6 +49,9 @@ importers: '@opentelemetry/sdk-logs': specifier: ^0.221.0 version: 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-node': + specifier: ^2.10.0 + version: 2.10.0(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-web': specifier: ^2.10.0 version: 2.10.0(@opentelemetry/api@1.9.1) @@ -80,12 +86,6 @@ importers: '@microsoft/signalr': specifier: ^10.0.0 version: 10.0.0(patch_hash=8117ca356b6ba091260c4f95dce214a6f63cb001019afa4840aea89ae0d8a010) - '@opentelemetry/api': - specifier: ^1.9.1 - version: 1.9.1 - '@opentelemetry/sdk-trace-node': - specifier: ^2.10.0 - version: 2.10.0(@opentelemetry/api@1.9.1) '@playwright/test': specifier: ^1.62.1 version: 1.62.1 diff --git a/src/instrumentation.server.ts b/src/instrumentation.server.ts index 50ae02f4..d96adc6c 100644 --- a/src/instrumentation.server.ts +++ b/src/instrumentation.server.ts @@ -27,6 +27,14 @@ function originOf(url: string, fallback: string): string { // Server spans describe our infrastructure, not user behavior, so they are gated only by // the deployment kill-switch — the per-user consent flow in $lib/telemetry does not apply. +// +// PUBLIC_SIGNOZ_LOGS_ENABLED is deliberately one switch for every telemetry signal +// (client logs, client traces, and these server spans) despite the `LOGS` in its name; +// PUBLIC_SIGNOZ_TRACES_URL likewise falls back to the logs collector's origin below. +// +// It is a `$env/static/public` import, so this whole block is dead-code eliminated at +// build time when the flag is off — the default in `.env`. A deploy that wants server +// traces must set it in the build environment, not just at runtime. const enabled = PUBLIC_SIGNOZ_LOGS_ENABLED === 'true' || PUBLIC_SIGNOZ_LOGS_ENABLED === '1'; if (enabled) { diff --git a/vite.config.ts b/vite.config.ts index 455a37dc..1b7b6cd9 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -174,7 +174,11 @@ const sveltekitConfig = { // the post-submit redirect to the OAuth provider. 'form-action': ['self', dotenv.PUBLIC_BACKEND_API_URL], // Ignored on prerendered pages (meta-tag CSP) — the _headers file's - // X-Frame-Options covers those on Cloudflare. + // X-Frame-Options covers those on Cloudflare, but nothing does on the + // Node/Docker deploy: adapter-node serves prerendered HTML through sirv + // before the SvelteKit handler, so hooks.server.ts `handle` never runs for + // it. Moot while `prerender = false` in src/routes/+layout.ts; revisit if + // any route starts prerendering. 'frame-ancestors': ['none'], } as CspDirectives, }, diff --git a/wrangler.jsonc b/wrangler.jsonc index 507777df..e116b229 100644 --- a/wrangler.jsonc +++ b/wrangler.jsonc @@ -14,5 +14,5 @@ "name": "openshock-frontend", "pages_build_output_dir": ".svelte-kit/cloudflare", "compatibility_date": "2026-07-24", - "compatibility_flags": ["nodejs_compat", "nodejs_als"], + "compatibility_flags": ["nodejs_compat"], } diff --git a/wrangler.workers.jsonc b/wrangler.workers.jsonc index 58e261d5..e4d14823 100644 --- a/wrangler.workers.jsonc +++ b/wrangler.workers.jsonc @@ -15,7 +15,7 @@ "name": "openshock-frontend", "main": ".svelte-kit/cloudflare/_worker.js", "compatibility_date": "2026-07-24", - "compatibility_flags": ["nodejs_compat", "nodejs_als"], + "compatibility_flags": ["nodejs_compat"], "assets": { "binding": "ASSETS", "directory": ".svelte-kit/cloudflare", From 42c51abdf3251c85b6a80b197d7abaf4b6c96716 Mon Sep 17 00:00:00 2001 From: HeavenVR Date: Thu, 6 Aug 2026 11:50:51 +0200 Subject: [PATCH 06/13] feat: Remove Cloudflare Pages support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Workers Builds is the only Cloudflare deploy path now, so the dual-config arrangement is gone: wrangler.workers.jsonc is promoted to wrangler.jsonc, which wrangler and @sveltejs/adapter-cloudflare both auto-discover. The adapter selects Workers output over Pages output because the config declares main/assets and no pages_build_output_dir, so the explicit `config` option and the `--config` deploy flag are no longer needed, and there are no longer two files whose compatibility settings must be hand-synced. Drop CF_PAGES detection from vite.config.ts and rename isWorkersCI to isCloudflare now that it is the only Cloudflare branch. This also removes the CF_PAGES_COMMIT_SHA fallback in getGitHash(). _headers and _redirects are kept — Workers static assets support both, and adapter-cloudflare copies them from the project root in either mode. --- README.md | 2 +- vite.config.ts | 22 ++++++--------- wrangler.jsonc | 57 +++++++++++++++++++++++++++++++++------ wrangler.workers.jsonc | 61 ------------------------------------------ 4 files changed, 58 insertions(+), 84 deletions(-) delete mode 100644 wrangler.workers.jsonc diff --git a/README.md b/README.md index 62051a16..a6e52ccb 100644 --- a/README.md +++ b/README.md @@ -161,7 +161,7 @@ Any file ending with `.local` are meant for setting local development variables ## Selfhosting A guide to selfhost can be found [on the wiki.](https://wiki.openshock.org/guides/selfhosting) -Alternatively you can deploy it to cloudflare workers / pages using wrangler (or forking it). +Alternatively you can deploy it to cloudflare workers using wrangler (or forking it). ## Support diff --git a/vite.config.ts b/vite.config.ts index 1b7b6cd9..969caa55 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -57,10 +57,9 @@ const isTruthy = (value?: string) => value === 'true' || value === '1'; // detection, adapter selection, and the CSP in a single, type-checked file. // --------------------------------------------------------------------------- -// Determine if we are running on Cloudflare (Pages git integration or Workers Builds) +// Determine if we are running on Cloudflare Workers Builds const isGithubActions = env.GITHUB_ACTIONS === 'true'; -const isWorkersCI = env.WORKERS_CI === '1'; -const isCloudflare = env.CF_PAGES === '1' || isWorkersCI; +const isCloudflare = env.WORKERS_CI === '1'; const isDocker = env.DOCKER === 'true'; // Don't trust NODE_ENV — tools like svelte-check load this file mid-process and // can have NODE_ENV='production' set by transitively-imported plugins (vite, @@ -75,9 +74,7 @@ const dotenv = { ...env, ...loadEnv(buildMode, process.cwd(), 'PUBLIC_') }; function getGitHash(): string | undefined { if (isGithubActions) return env.GITHUB_SHA; - if (isWorkersCI) return env.WORKERS_CI_COMMIT_SHA; - // Cloudflare Pages prefixes its build vars with CF_PAGES_ - if (isCloudflare) return env.CF_PAGES_COMMIT_SHA; + if (isCloudflare) return env.WORKERS_CI_COMMIT_SHA; if (isDocker) return env.GIT_COMMIT_SHA; return child_process.execSync('git rev-parse HEAD').toString().trim(); @@ -126,13 +123,10 @@ const sveltekitConfig = { compilerOptions: { runes: true, }, - // Use the appropriate adapter. The adapter emits Workers-flavored output - // (main/assets) or Pages-flavored output (_routes.json) depending on which - // wrangler config it reads: wrangler.jsonc is the Pages one, Workers Builds - // deploys with wrangler.workers.jsonc. - adapter: isCloudflare - ? adapterCloudflare(isWorkersCI ? { config: 'wrangler.workers.jsonc' } : {}) - : adapterNode(), + // Workers Builds deploys the adapter-cloudflare output described by the root + // wrangler.jsonc (auto-discovered); everything else — local builds, Docker, + // selfhosting — runs on Node. + adapter: isCloudflare ? adapterCloudflare() : adapterNode(), paths: { base: getSvelteBasePath(), }, @@ -240,7 +234,7 @@ function resolveServerConfig(useLocalRedirect: boolean): LocalServer | undefined export default defineConfig(({ command, mode, isPreview }) => { const isLocalServe = command === 'serve' || isPreview === true; - const isProduction = mode === 'production' && (isTruthy(env.DOCKER) || isTruthy(env.CF_PAGES)); + const isProduction = mode === 'production' && (isTruthy(env.DOCKER) || isTruthy(env.WORKERS_CI)); // Vitest resolves this config with command 'serve', unit tests must never trigger mkcert or the hosts/port checks. const isTest = mode === 'test' || isTruthy(env.VITEST); diff --git a/wrangler.jsonc b/wrangler.jsonc index e116b229..de942679 100644 --- a/wrangler.jsonc +++ b/wrangler.jsonc @@ -1,18 +1,59 @@ /** - * Cloudflare Pages configuration (git-integration builds, CF_PAGES=1). + * Cloudflare Workers configuration (Workers Builds, WORKERS_CI=1). * - * Pages only honors a wrangler config that declares `pages_build_output_dir` - * and rejects Workers-format keys like `main`/`assets` — the Workers Builds - * pipeline uses wrangler.workers.jsonc instead. Keep the compatibility - * settings in the two files in sync. + * Auto-discovered by wrangler and by @sveltejs/adapter-cloudflare, which picks + * Workers output over Pages output because this declares `main`/`assets` and no + * `pages_build_output_dir`. Deploy with a plain `wrangler deploy`. * - * `name` must match the Pages project name in the Cloudflare dashboard, - * otherwise Pages skips this file and the compatibility flags are lost. + * For more details on how to configure Wrangler, refer to: + * https://developers.cloudflare.com/workers/wrangler/configuration/ */ { "$schema": "node_modules/wrangler/config-schema.json", "name": "openshock-frontend", - "pages_build_output_dir": ".svelte-kit/cloudflare", + "main": ".svelte-kit/cloudflare/_worker.js", "compatibility_date": "2026-07-24", "compatibility_flags": ["nodejs_compat"], + "assets": { + "binding": "ASSETS", + "directory": ".svelte-kit/cloudflare", + }, + "observability": { + "enabled": false, + "head_sampling_rate": 1, + "logs": { + "enabled": true, + "head_sampling_rate": 1, + "persist": true, + "invocation_logs": true, + }, + "traces": { + "enabled": true, + "persist": true, + "head_sampling_rate": 1, + }, + }, + "upload_source_maps": true, + /** + * Smart Placement + * https://developers.cloudflare.com/workers/configuration/smart-placement/#smart-placement + */ + // "placement": { "mode": "smart" } + /** + * Bindings + * Bindings allow your Worker to interact with resources on the Cloudflare Developer Platform, including + * databases, object storage, AI inference, real-time communication and more. + * https://developers.cloudflare.com/workers/runtime-apis/bindings/ + */ + /** + * Environment Variables + * https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables + * Note: Use secrets to store sensitive data. + * https://developers.cloudflare.com/workers/configuration/secrets/ + */ + /** + * Service Bindings (communicate between multiple Workers) + * https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings + */ + // "services": [ { "binding": "MY_SERVICE", "service": "my-service" } ] } diff --git a/wrangler.workers.jsonc b/wrangler.workers.jsonc deleted file mode 100644 index e4d14823..00000000 --- a/wrangler.workers.jsonc +++ /dev/null @@ -1,61 +0,0 @@ -/** - * Cloudflare Workers configuration (Workers Builds, WORKERS_CI=1). - * - * Not auto-discovered: wrangler.jsonc at the repo root is the Pages-format - * config, so Workers commands must pass this file explicitly, e.g. - * `wrangler deploy --config wrangler.workers.jsonc` (set this as the deploy - * command in the Workers Builds dashboard). Keep the compatibility settings - * in sync with wrangler.jsonc. - * - * For more details on how to configure Wrangler, refer to: - * https://developers.cloudflare.com/workers/wrangler/configuration/ - */ -{ - "$schema": "node_modules/wrangler/config-schema.json", - "name": "openshock-frontend", - "main": ".svelte-kit/cloudflare/_worker.js", - "compatibility_date": "2026-07-24", - "compatibility_flags": ["nodejs_compat"], - "assets": { - "binding": "ASSETS", - "directory": ".svelte-kit/cloudflare", - }, - "observability": { - "enabled": false, - "head_sampling_rate": 1, - "logs": { - "enabled": true, - "head_sampling_rate": 1, - "persist": true, - "invocation_logs": true, - }, - "traces": { - "enabled": true, - "persist": true, - "head_sampling_rate": 1, - }, - }, - "upload_source_maps": true, - /** - * Smart Placement - * https://developers.cloudflare.com/workers/configuration/smart-placement/#smart-placement - */ - // "placement": { "mode": "smart" } - /** - * Bindings - * Bindings allow your Worker to interact with resources on the Cloudflare Developer Platform, including - * databases, object storage, AI inference, real-time communication and more. - * https://developers.cloudflare.com/workers/runtime-apis/bindings/ - */ - /** - * Environment Variables - * https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables - * Note: Use secrets to store sensitive data. - * https://developers.cloudflare.com/workers/configuration/secrets/ - */ - /** - * Service Bindings (communicate between multiple Workers) - * https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings - */ - // "services": [ { "binding": "MY_SERVICE", "service": "my-service" } ] -} From 0863594b8f64ceb9ea57bfb2482f4373fad0c7d5 Mon Sep 17 00:00:00 2001 From: HeavenVR Date: Thu, 6 Aug 2026 12:07:19 +0200 Subject: [PATCH 07/13] change name to cf recommended --- wrangler.jsonc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wrangler.jsonc b/wrangler.jsonc index de942679..77db092c 100644 --- a/wrangler.jsonc +++ b/wrangler.jsonc @@ -10,7 +10,7 @@ */ { "$schema": "node_modules/wrangler/config-schema.json", - "name": "openshock-frontend", + "name": "openshock-app", "main": ".svelte-kit/cloudflare/_worker.js", "compatibility_date": "2026-07-24", "compatibility_flags": ["nodejs_compat"], From ac0b3a87da9cd44e2ebc7156dafb93f5a0f41ad0 Mon Sep 17 00:00:00 2001 From: HeavenVR Date: Thu, 6 Aug 2026 12:45:16 +0200 Subject: [PATCH 08/13] fix truthy check --- vite.config.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vite.config.ts b/vite.config.ts index 2f9caee1..a2eeee34 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -59,9 +59,9 @@ const isTruthy = (value?: string) => value === 'true' || value === '1'; // --------------------------------------------------------------------------- // Determine if we are running on Cloudflare Workers Builds -const isGithubActions = env.GITHUB_ACTIONS === 'true'; -const isCloudflare = env.WORKERS_CI === '1'; -const isDocker = env.DOCKER === 'true'; +const isGithubActions = isTruthy(env.GITHUB_ACTIONS); +const isCloudflare = isTruthy(env.WORKERS_CI); +const isDocker = isTruthy(env.DOCKER); // Don't trust NODE_ENV — tools like svelte-check load this file mid-process and // can have NODE_ENV='production' set by transitively-imported plugins (vite, // vite-plugin-svelte) even though no production build is actually happening. From 3da4c1eb085afb747987df9595bc77bc9959285c Mon Sep 17 00:00:00 2001 From: HeavenVR Date: Thu, 6 Aug 2026 12:46:07 +0200 Subject: [PATCH 09/13] enable observability --- wrangler.jsonc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wrangler.jsonc b/wrangler.jsonc index 77db092c..727aacd6 100644 --- a/wrangler.jsonc +++ b/wrangler.jsonc @@ -19,7 +19,7 @@ "directory": ".svelte-kit/cloudflare", }, "observability": { - "enabled": false, + "enabled": true, "head_sampling_rate": 1, "logs": { "enabled": true, From 0809d4eecfe81014b4c72e80c88010642a87d003 Mon Sep 17 00:00:00 2001 From: HeavenVR Date: Thu, 6 Aug 2026 12:52:10 +0200 Subject: [PATCH 10/13] remove diff noise --- vite.config.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/vite.config.ts b/vite.config.ts index a2eeee34..f38339de 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -172,11 +172,7 @@ const sveltekitConfig = { // the post-submit redirect to the OAuth provider. 'form-action': ['self', dotenv.PUBLIC_BACKEND_API_URL], // Ignored on prerendered pages (meta-tag CSP) — the _headers file's - // X-Frame-Options covers those on Cloudflare, but nothing does on the - // Node/Docker deploy: adapter-node serves prerendered HTML through sirv - // before the SvelteKit handler, so hooks.server.ts `handle` never runs for - // it. Moot while `prerender = false` in src/routes/+layout.ts; revisit if - // any route starts prerendering. + // X-Frame-Options covers those on Cloudflare. 'frame-ancestors': ['none'], } as CspDirectives, }, From cf6cb7f95d717a100c1fbe8b300c8a3615cbbf77 Mon Sep 17 00:00:00 2001 From: HeavenVR Date: Thu, 6 Aug 2026 12:54:12 +0200 Subject: [PATCH 11/13] shorter and simpler --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a6e52ccb..214429e1 100644 --- a/README.md +++ b/README.md @@ -31,10 +31,10 @@ This is the frontend for the OpenShock project that interfaces with the OpenShoc ## Available Commands - `pnpm i` - Install dependencies -- `pnpm run dev` - Start the development server -- `pnpm run build` - Build the project -- `pnpm run preview` - Preview the built project -- `pnpx regen-api` - Generate the API client +- `pnpm dev` - Start the development server +- `pnpm build` - Build the project +- `pnpm preview` - Preview the built project +- `pnpm regen-api` - Generate the API client ## Setup From cb05cc6ad75131c0090a9f3cf4df8e53bfd620ab Mon Sep 17 00:00:00 2001 From: HeavenVR Date: Thu, 6 Aug 2026 12:54:56 +0200 Subject: [PATCH 12/13] shorter and simpler --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 214429e1..20aa187b 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ With Node.js installed, you can run the following commands to get started: ```bash pnpm i -pnpm run build +pnpm build ``` ## Running locally @@ -58,7 +58,7 @@ pnpm run build Running the frontend locally is as simple as this: ```bash -pnpm run dev +pnpm dev ``` ### Hosts redirect From c510e043a7229a713eb33c323ce30b9a39d1fb68 Mon Sep 17 00:00:00 2001 From: HeavenVR Date: Thu, 6 Aug 2026 12:56:39 +0200 Subject: [PATCH 13/13] eh --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 20aa187b..d5cf06d1 100644 --- a/README.md +++ b/README.md @@ -31,10 +31,10 @@ This is the frontend for the OpenShock project that interfaces with the OpenShoc ## Available Commands - `pnpm i` - Install dependencies -- `pnpm dev` - Start the development server -- `pnpm build` - Build the project -- `pnpm preview` - Preview the built project -- `pnpm regen-api` - Generate the API client +- `pnpm run dev` - Start the development server +- `pnpm run build` - Build the project +- `pnpm run preview` - Preview the built project +- `pnpm run regen-api` - Generate the API client ## Setup @@ -50,7 +50,7 @@ With Node.js installed, you can run the following commands to get started: ```bash pnpm i -pnpm build +pnpm run build ``` ## Running locally @@ -58,7 +58,7 @@ pnpm build Running the frontend locally is as simple as this: ```bash -pnpm dev +pnpm run dev ``` ### Hosts redirect