F0 — Uji Kelayakan Visi DA Creation

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)

  1. Tulis “Tes Visi DA Creation” di Tombol 3 → terenkripsi dari kunci passkey (PRF).
  2. Tutup tab sepenuhnya, buka lagi URL halaman ini.
  3. Tekan Tombol 3 lagi → biometrik diminta → teks muncul kembali — tanpa menghafal apa pun.
  4. Kartu “Bukti Nol Hafalan” di bawah menunjukkan cookie 0 dan localStorage 0.

Status lingkungan

Memeriksa…
  1. 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:…
  2. 2Buat passkey + tampilkan hex PRF (Android/Windows/Linux)BELUM

    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”.

  3. 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?
  4. 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.

  5. 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).

    …
  6. 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).

  7. 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.

  8. 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)

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.