diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 7cfdd4cd..6ca8731d 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -96,9 +96,6 @@ jobs:
- name: copy .env.local to apps/readest-app
run: cp .env.local apps/readest-app/.env.local
- - name: fix dynamic route for Next.js, see https://github.com/vercel/next.js/discussions/55393
- run: rimraf "apps/readest-app/src/app/reader/[ids]"
-
- name: install dependencies (ubuntu only)
if: matrix.config.os == 'ubuntu-latest'
run: |
diff --git a/apps/readest-app/package.json b/apps/readest-app/package.json
index 50d6d45d..8ae78f6a 100644
--- a/apps/readest-app/package.json
+++ b/apps/readest-app/package.json
@@ -44,6 +44,7 @@
"@tauri-apps/plugin-updater": "^2.0.0",
"@zip.js/zip.js": "^2.7.53",
"clsx": "^2.1.1",
+ "cors": "^2.8.5",
"cssbeautify": "^0.3.1",
"foliate-js": "workspace:*",
"js-md5": "^0.8.3",
@@ -57,6 +58,7 @@
},
"devDependencies": {
"@tauri-apps/cli": "2.1.0",
+ "@types/cors": "^2.8.17",
"@types/cssbeautify": "^0.3.5",
"@types/node": "^22.10.1",
"@types/react": "18.3.12",
diff --git a/apps/readest-app/src-tauri/tauri.conf.json b/apps/readest-app/src-tauri/tauri.conf.json
index 77f350bc..0f980ef0 100644
--- a/apps/readest-app/src-tauri/tauri.conf.json
+++ b/apps/readest-app/src-tauri/tauri.conf.json
@@ -14,7 +14,7 @@
"security": {
"csp": {
"default-src": "'self' 'unsafe-inline' blob: customprotocol: asset: http://asset.localhost ipc: http://ipc.localhost https://fonts.gstatic.com https://db.onlinewebfonts.com",
- "connect-src": "'self' blob: asset: http://asset.localhost ipc: http://ipc.localhost https://*.sentry.io https://*.posthog.com https://*.deepl.com https://*.wikipedia.org https://*.wiktionary.org https://*.supabase.co",
+ "connect-src": "'self' blob: asset: http://asset.localhost ipc: http://ipc.localhost https://*.sentry.io https://*.posthog.com https://*.deepl.com https://*.wikipedia.org https://*.wiktionary.org https://*.supabase.co https://*.readest.com",
"img-src": "'self' blob: data: asset: http://asset.localhost https://*",
"style-src": "'self' 'unsafe-inline' blob: asset: http://asset.localhost",
"frame-src": "'self' blob: asset: http://asset.localhost",
diff --git a/apps/readest-app/src/app/layout.tsx b/apps/readest-app/src/app/layout.tsx
index d9cf7139..2970069e 100644
--- a/apps/readest-app/src/app/layout.tsx
+++ b/apps/readest-app/src/app/layout.tsx
@@ -1,8 +1,5 @@
import * as React from 'react';
-import { AuthProvider } from '@/context/AuthContext';
-import { EnvProvider } from '@/context/EnvContext';
-import { CSPostHogProvider } from '@/context/PHContext';
-import { SyncProvider } from '@/context/SyncContext';
+import Providers from '@/components/Providers';
import '../styles/globals.css';
import '../styles/fonts.css';
@@ -39,15 +36,9 @@ export default function RootLayout({ children }: { children: React.ReactNode })
-