From be17c6deb7a3f93f7d429b9e5b7cb92ae596d614 Mon Sep 17 00:00:00 2001 From: Sebastian Fellner Date: Sun, 15 Mar 2026 18:20:48 +0100 Subject: [PATCH 1/4] fix: allow full PDF download via free query param Restore the ability to generate a full PDF when the ?free query parameter is present in the URL. Uses the `in` operator to check for parameter presence rather than its value, so ?free, ?free=, and ?free=1 all work correctly. --- components/ChatVisualization/PdfDownloadPopup.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/ChatVisualization/PdfDownloadPopup.vue b/components/ChatVisualization/PdfDownloadPopup.vue index 5e3d1d23..7643f93c 100644 --- a/components/ChatVisualization/PdfDownloadPopup.vue +++ b/components/ChatVisualization/PdfDownloadPopup.vue @@ -263,7 +263,7 @@ export default { }, downloadSample() { gtagEvent("sample_download", GTAG_PDF, 2); - this.download(true); + this.download(!('free' in (this.$route?.query ?? {}))); }, workerResponseHandler: function (event) { const data = event.data; From d3af90a138ac79aa687cd7258796e4ed3298a334 Mon Sep 17 00:00:00 2001 From: Sebastian Fellner Date: Sun, 15 Mar 2026 18:29:32 +0100 Subject: [PATCH 2/4] fix: bump Node.js to 20 for Firebase deploy in PR workflow Firebase CLI v15+ requires Node.js >= 20. --- .github/workflows/deployment-pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deployment-pr.yml b/.github/workflows/deployment-pr.yml index 92d4f8ff..901070b6 100644 --- a/.github/workflows/deployment-pr.yml +++ b/.github/workflows/deployment-pr.yml @@ -24,7 +24,7 @@ jobs: SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 20 - uses: FirebaseExtended/action-hosting-deploy@v0 with: repoToken: "${{ secrets.GITHUB_TOKEN }}" From 4ca68d8d853866282e3d2f86212ecc04c925e9bd Mon Sep 17 00:00:00 2001 From: Sebastian Fellner Date: Sun, 15 Mar 2026 18:30:17 +0100 Subject: [PATCH 3/4] fix: bump Node.js to 20 for Firebase deploy in dev workflow --- .github/workflows/deployment-dev.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deployment-dev.yml b/.github/workflows/deployment-dev.yml index 5fe08766..16889d89 100644 --- a/.github/workflows/deployment-dev.yml +++ b/.github/workflows/deployment-dev.yml @@ -24,7 +24,7 @@ jobs: SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 20 - uses: FirebaseExtended/action-hosting-deploy@v0 with: repoToken: "${{ secrets.GITHUB_TOKEN }}" From a69eb0bb29a54fc47df96e5e20a6bd4703298cd3 Mon Sep 17 00:00:00 2001 From: Sebastian Fellner Date: Sun, 15 Mar 2026 18:47:29 +0100 Subject: [PATCH 4/4] fix: avoid optional chaining for mobile Safari compatibility Replace ?. and ?? with plain JS to ensure compatibility with older mobile Safari versions that Nuxt 2 may not transpile for. --- components/ChatVisualization/PdfDownloadPopup.vue | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/ChatVisualization/PdfDownloadPopup.vue b/components/ChatVisualization/PdfDownloadPopup.vue index 7643f93c..ead9c9c0 100644 --- a/components/ChatVisualization/PdfDownloadPopup.vue +++ b/components/ChatVisualization/PdfDownloadPopup.vue @@ -263,7 +263,8 @@ export default { }, downloadSample() { gtagEvent("sample_download", GTAG_PDF, 2); - this.download(!('free' in (this.$route?.query ?? {}))); + const query = (this.$route && this.$route.query) || {}; + this.download(!('free' in query)); }, workerResponseHandler: function (event) { const data = event.data;