From 3211d62198e8b06e88613d6ba21327055e2717c9 Mon Sep 17 00:00:00 2001 From: Cosmo Date: Mon, 27 Apr 2026 11:30:08 +0000 Subject: [PATCH] =?UTF-8?q?fix(voice):=20COOP/COEP=3Dcredentialless=20?= =?UTF-8?q?=E2=86=92=20SharedArrayBuffer=20=D0=BD=D0=B0=20iOS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit VAD на iPad валился с «no available backend found / RangeError». onnxruntime-web 1.24 ships только threaded WASM сборки, которые требуют SharedArrayBuffer. iOS Safari его не даёт без cross-origin isolation — отсюда и ошибка. Добавляем заголовки: Cross-Origin-Opener-Policy: same-origin Cross-Origin-Embedder-Policy: credentialless credentialless (а не require-corp) выбрали чтобы не ломать внешние ресурсы без CORP-заголовка (Google Fonts, wttr.in). Поддержка: Chrome 96+, Firefox 110+, Safari 16.4+. --- next.config.mjs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/next.config.mjs b/next.config.mjs index 60ba6fd..cf039fb 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -14,10 +14,11 @@ const nextConfig = { { source: "/(.*)", headers: [ - { - key: "X-Content-Type-Options", - value: "nosniff", - }, + { key: "X-Content-Type-Options", value: "nosniff" }, + // SharedArrayBuffer для onnxruntime-web threaded WASM (нужен на iOS). + // credentialless менее строгий чем require-corp — не ломает Google Fonts. + { key: "Cross-Origin-Opener-Policy", value: "same-origin" }, + { key: "Cross-Origin-Embedder-Policy", value: "credentialless" }, ], }, ];