Halaman uji delapan tombol — ini alat uji, bukan aplikasi. Semua berjalan di browser kamu; tidak ada isi yang dikirim ke mana pun selain yang kamu tekan sendiri.
Kriteria lulus minimal (panduan Fase 0)
Tulis “Tes Visi DA Creation” di Tombol 3 → terenkripsi dari kunci passkey (PRF).
Tutup tab sepenuhnya, buka lagi URL halaman ini.
Tekan Tombol 3 lagi → biometrik diminta → teks muncul kembali — tanpa menghafal apa pun.
Kartu “Bukti Nol Hafalan” di bawah menunjukkan cookie 0 dan localStorage 0.
Status lingkungan
Memeriksa…
1Login Google OAuth + tulis/baca satu berkas di appDataFolderBELUM
Authorization Code + PKCE (arah resmi Google untuk aplikasi browser), scope openid email profile drive.appdata. Canary f0-canary.json diunggah ke folder appDataFolder milik aplikasimu sendiri, lalu dibaca balik. Butuh Client ID dari PANDUAN 2 (OAuth In production).
Redirect URI yang harus didaftarkan persis di Google Cloud Console:…
Passkey platform dengan ekstensi PRF. Hex yang tampil harus sama antar perangkat tempat passkey tersinkron (Google Password Manager) — bandingkan dengan mata di dua perangkat. GAGAL di sini adalah temuan F0 terpenting: penentu jalur utama PRF vs ECDH “Setujui Perangkat Baru”.
3Enkripsi/dekripsi satu catatan dari PRF (AES-GCM-256) — inti uji tutup-bukaBELUM
PRF → HKDF-SHA-256 → kunci AES-GCM-256 (tidak pernah diekspor, tidak pernah disimpan). Catatan disimpan sebagai ciphertext di SQLite + OPFS. Ikuti kriteria lulus minimal di atas.
Apakah teks yang muncul persis yang kamu tulis sebelum menutup tab?
4Query SQLite (build resmi sqlite.org) + OPFS + FTS5BELUM
Web Worker menjalankan SQLite WebAssembly build resmi 3.54.1 dengan VFS OPFS (fallback opfs-sahpool), plus full-text search FTS5. Brankas datanya sama dengan yang dipakai Tombol 3 — tutup-buka tab tidak menghapusnya.
5Satu transliterasi aksara + Opus-MT en→idBELUM
(a) Mesin aturan JSON mini Latin→Aksara Jawa (bukti konsep; mesin penuh di Fase 6) dengan peta Unicode U+A980–U+A9DF. (b) Terjemahan offline Opus-MT en→id via transformers.js — unduhan ±45 MB sekali (cache browser; hanya saat kamu menekan — K9 dihormati).
…
6Satu suara TTS kandidat berjalan di perangkatBELUM
Kandidat Kokoro-82M (Apache-2.0) lewat kokoro-js di ONNX Runtime Web, mode wasm/CPU tanpa WebGPU — persis skenario perangkat kentang. Unduhan ±84 MB sekali. Suara uji bahasa Inggris: cakupan bahasa Indonesia diputuskan SETELAH F0 (Kokoro belum punya suara id — label jujur). TTS bawaan browser tidak pernah dipakai (Batas Bagian 23).
7Ketik dengan inputmode="none" + uji clipboard format webBELUM
Di ponsel, keyboard sistem tidak boleh muncul — input lewat overlay sendiri (bukti dasar keyboard DA). Lalu salin sebagai format text/html dan baca balik: format web harus utuh. Di desktop efek inputmode tidak terlihat — wajar.
8Dua manifest (PWA + publish) di satu domain + header COOP/COEPBELUM
Memvalidasi manifest.webmanifest (PWA) dan publish-manifest.json (struktur Bagian 13.1) di domain yang sama, membaca header COOP/COEP sungguhan dari respons server, dan membuktikan isolasi crossOriginIsolated + SharedArrayBuffer.
Bukti Nol Hafalan (diperbarui langsung)
Cookie: …
localStorage: … kunci
sessionStorage: …
Yang tersimpan milikmu: hanya ciphertext di OPFS + passkey di perangkat. Kunci tidak pernah disimpan ke mana pun.
Menghapus brankas uji, mencabut token Google (bila ada), dan mengosongkan kunci sesi. Passkey dihapus manual di perangkat: Android → Pengaturan → Google → Pengelola Sandi; Windows → Pengaturan → Akun → Passkeys.