fix(voice): COOP/COEP=credentialless → SharedArrayBuffer на iOS
All checks were successful
Deploy / deploy (push) Successful in 1m52s

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+.
This commit is contained in:
Cosmo
2026-04-27 11:30:08 +00:00
parent 6083597065
commit 3211d62198

View File

@@ -14,10 +14,11 @@ const nextConfig = {
{ {
source: "/(.*)", source: "/(.*)",
headers: [ headers: [
{ { key: "X-Content-Type-Options", value: "nosniff" },
key: "X-Content-Type-Options", // SharedArrayBuffer для onnxruntime-web threaded WASM (нужен на iOS).
value: "nosniff", // credentialless менее строгий чем require-corp — не ломает Google Fonts.
}, { key: "Cross-Origin-Opener-Policy", value: "same-origin" },
{ key: "Cross-Origin-Embedder-Policy", value: "credentialless" },
], ],
}, },
]; ];