Spaces:
Sleeping
Sleeping
Commit
·
d182f15
1
Parent(s):
fa72e90
fix: skip coi-serviceworker in iframe to allow HF Space embedding
Browse filesThe COOP header (Cross-Origin-Opener-Policy: same-origin) was blocking
iframe embedding on huggingface.co/spaces. Now the service worker only
registers when not in an iframe.
Trade-off:
- Direct access: Full SharedArrayBuffer support (faster AI)
- Iframe embedding: No SharedArrayBuffer (AI uses single-thread, but works)
Co-Authored-By: Claude <noreply@anthropic.com>
- Dockerfile +1 -1
- trigo-web/app/dist/index.html +7 -0
- trigo-web/app/index.html +7 -0
Dockerfile
CHANGED
|
@@ -2,7 +2,7 @@ FROM node:20-slim
|
|
| 2 |
|
| 3 |
ENV DEBIAN_FRONTEND=noninteractive
|
| 4 |
|
| 5 |
-
# Build timestamp: 2026-
|
| 6 |
# Note: ONNX files kept in LFS per HF policy, downloaded at startup via curl
|
| 7 |
|
| 8 |
WORKDIR /app
|
|
|
|
| 2 |
|
| 3 |
ENV DEBIAN_FRONTEND=noninteractive
|
| 4 |
|
| 5 |
+
# Build timestamp: 2026-02-03T19:55
|
| 6 |
# Note: ONNX files kept in LFS per HF policy, downloaded at startup via curl
|
| 7 |
|
| 8 |
WORKDIR /app
|
trigo-web/app/dist/index.html
CHANGED
|
@@ -6,6 +6,13 @@
|
|
| 6 |
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
| 7 |
<title>Trigo - 3D Go Game</title>
|
| 8 |
<!-- Enable cross-origin isolation for SharedArrayBuffer (needed for ONNX multi-threading) -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 9 |
<script src="/coi-serviceworker.js"></script>
|
| 10 |
<script type="module" crossorigin src="/assets/index-cSsYvfzN.js"></script>
|
| 11 |
<link rel="stylesheet" crossorigin href="/assets/index-DHcFs21z.css">
|
|
|
|
| 6 |
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
| 7 |
<title>Trigo - 3D Go Game</title>
|
| 8 |
<!-- Enable cross-origin isolation for SharedArrayBuffer (needed for ONNX multi-threading) -->
|
| 9 |
+
<!-- Skip service worker in iframe to avoid COOP blocking - AI will use single-thread mode -->
|
| 10 |
+
<script>
|
| 11 |
+
window.coi = {
|
| 12 |
+
shouldRegister: () => window.top === window.self, // Only register when not in iframe
|
| 13 |
+
quiet: true
|
| 14 |
+
};
|
| 15 |
+
</script>
|
| 16 |
<script src="/coi-serviceworker.js"></script>
|
| 17 |
<script type="module" crossorigin src="/assets/index-cSsYvfzN.js"></script>
|
| 18 |
<link rel="stylesheet" crossorigin href="/assets/index-DHcFs21z.css">
|
trigo-web/app/index.html
CHANGED
|
@@ -6,6 +6,13 @@
|
|
| 6 |
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
| 7 |
<title>Trigo - 3D Go Game</title>
|
| 8 |
<!-- Enable cross-origin isolation for SharedArrayBuffer (needed for ONNX multi-threading) -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 9 |
<script src="/coi-serviceworker.js"></script>
|
| 10 |
</head>
|
| 11 |
<body>
|
|
|
|
| 6 |
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
| 7 |
<title>Trigo - 3D Go Game</title>
|
| 8 |
<!-- Enable cross-origin isolation for SharedArrayBuffer (needed for ONNX multi-threading) -->
|
| 9 |
+
<!-- Skip service worker in iframe to avoid COOP blocking - AI will use single-thread mode -->
|
| 10 |
+
<script>
|
| 11 |
+
window.coi = {
|
| 12 |
+
shouldRegister: () => window.top === window.self, // Only register when not in iframe
|
| 13 |
+
quiet: true
|
| 14 |
+
};
|
| 15 |
+
</script>
|
| 16 |
<script src="/coi-serviceworker.js"></script>
|
| 17 |
</head>
|
| 18 |
<body>
|