Ex0bit Claude Opus 4.6 commited on
Commit
65413d3
·
1 Parent(s): db79cca

Add WebGPU support check and hardware-adaptive model selection

Browse files

- Shows clear unsupported overlay with iOS-specific guidance when WebGPU is unavailable
- Auto-detects GPU capabilities and selects optimal default model:
mobile/low-end → 0.8B (lite), mid-range → 2B (balanced), high-end/Apple → 4B (performance)
- Displays hardware tier in footer hint

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

assets/{main-D60Okk_s.js → main-BKlPaJuO.js} RENAMED
The diff for this file is too large to render. See raw diff
 
index.html CHANGED
@@ -129,13 +129,20 @@
129
  .toggle-btn.active { background: var(--accent); color: #fff; border-color: var(--accent); }
130
  .toggle-btn:hover { border-color: var(--accent); }
131
 
 
 
 
 
 
 
 
132
  /* Toast */
133
  .toast { position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%) translateY(20px); padding: 10px 20px; border-radius: 6px; font-size: 13px; font-weight: 500; background: var(--bg-2); color: var(--text-1); border: 1px solid var(--border); opacity: 0; transition: all 0.3s; z-index: 1000; max-width: 480px; }
134
  .toast.show { transform: translateX(-50%) translateY(0); opacity: 1; }
135
  .toast-error { border-color: #ef4444; color: #ef4444; }
136
  .toast-success { border-color: var(--accent); color: var(--accent); }
137
  </style>
138
- <script type="module" crossorigin src="./assets/main-D60Okk_s.js"></script>
139
  <link rel="modulepreload" crossorigin href="./assets/gpu-ops-PQDFq1iI.js">
140
  <link rel="modulepreload" crossorigin href="./assets/qwen35-model-CmeFfImT.js">
141
  <link rel="modulepreload" crossorigin href="./assets/safetensors-loader-CwGm5mJX.js">
 
129
  .toggle-btn.active { background: var(--accent); color: #fff; border-color: var(--accent); }
130
  .toggle-btn:hover { border-color: var(--accent); }
131
 
132
+ /* Unsupported overlay */
133
+ .unsupported { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100vh; text-align: center; padding: 24px; gap: 16px; }
134
+ .unsupported-icon { color: #f59e0b; margin-bottom: 8px; }
135
+ .unsupported h1 { font-size: 24px; font-weight: 700; color: var(--accent); }
136
+ .unsupported p { color: var(--text-2); font-size: 14px; line-height: 1.7; max-width: 480px; }
137
+ .unsupported-meta { display: flex; flex-direction: column; gap: 4px; margin-top: 12px; font-size: 10px; color: var(--text-3); font-family: var(--mono); max-width: 480px; word-break: break-all; }
138
+
139
  /* Toast */
140
  .toast { position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%) translateY(20px); padding: 10px 20px; border-radius: 6px; font-size: 13px; font-weight: 500; background: var(--bg-2); color: var(--text-1); border: 1px solid var(--border); opacity: 0; transition: all 0.3s; z-index: 1000; max-width: 480px; }
141
  .toast.show { transform: translateX(-50%) translateY(0); opacity: 1; }
142
  .toast-error { border-color: #ef4444; color: #ef4444; }
143
  .toast-success { border-color: var(--accent); color: var(--accent); }
144
  </style>
145
+ <script type="module" crossorigin src="./assets/main-BKlPaJuO.js"></script>
146
  <link rel="modulepreload" crossorigin href="./assets/gpu-ops-PQDFq1iI.js">
147
  <link rel="modulepreload" crossorigin href="./assets/qwen35-model-CmeFfImT.js">
148
  <link rel="modulepreload" crossorigin href="./assets/safetensors-loader-CwGm5mJX.js">