Fix local AI checks and consent caching
Build and publish static assets / publish (push) Failing after 4s
Build and publish static assets / publish (push) Failing after 4s
This commit is contained in:
+6
-3
@@ -187,12 +187,15 @@
|
||||
}
|
||||
localStorage.setItem(acceptanceKey(manifest), manifest.license.acceptance_id);
|
||||
enabled = true; localStorage.setItem('ai-spel-local-ai-enabled', 'true');
|
||||
if (!('indexedDB' in global)) return 'Ditt godkännande sparades. Webbläsaren saknar lokal lagring som krävs för Gemma, men spelet fungerar utan lokal AI.';
|
||||
announce('Godkännandet sparades för det här kontot och den här versionen av villkoren. Hämtar nu modellen från static-servern.');
|
||||
try { await engine(); return 'Tack. Godkännandet sparades på den här enheten och modellen hämtas nu från static-servern.'; }
|
||||
catch (_) { return 'Godkännandet sparades. Modellen kunde inte starta just nu; spelet fungerar fortfarande utan lokal AI.'; }
|
||||
engine().catch(() => {});
|
||||
return 'Tack. Godkännandet sparades på den här enheten och modellen hämtas nu från static-servern.';
|
||||
}
|
||||
if (normalized === 'lokal ai avvisa villkor') {
|
||||
const manifest = await getManifest();
|
||||
let manifest;
|
||||
try { manifest = await getManifest(); }
|
||||
catch (_) { enabled = false; localStorage.setItem('ai-spel-local-ai-enabled', 'false'); return 'Static-servern kunde inte läsa villkorsversionen. Ingen Gemma-modell startas; spelet fungerar utan lokal AI.'; }
|
||||
localStorage.removeItem(acceptanceKey(manifest));
|
||||
enabled = false; localStorage.setItem('ai-spel-local-ai-enabled', 'false');
|
||||
downloadAbort?.abort(); loadedEngine?.instance.exit?.(); loadedEngine = undefined;
|
||||
|
||||
@@ -130,7 +130,7 @@ for (const file of voiceFiles) {
|
||||
const downloaded = join(output, 'voices', file.path);
|
||||
if ((await stat(downloaded)).size !== file.size) throw new Error(`Missing verified voice file: ${file.path}`);
|
||||
}
|
||||
console.log(`Static Piper assets prepared at ${output}`);
|
||||
console.log(`Static voice and local AI assets prepared at ${output}`);
|
||||
|
||||
async function downloadVerified(url, destination, expectedSize, expectedSha256) {
|
||||
await mkdir(join(destination, '..'), {recursive: true});
|
||||
|
||||
@@ -16,7 +16,7 @@ test('local assistance includes preflight, bounded continuity, and unsaved offli
|
||||
assert.match(source, /async function assist\(/);
|
||||
assert.match(source, /async function offline\(/);
|
||||
assert.match(source, /slice\(-12\)/);
|
||||
assert.match(source, /Lokalt, osparat förslag/);
|
||||
assert.match(source, /Jag kan inte skapa ett lokalt förslag/);
|
||||
});
|
||||
|
||||
test('local diagnostics are opt-in, stored in IndexedDB, exportable, and deletable', () => {
|
||||
|
||||
Reference in New Issue
Block a user