# Changelog

## 0.8.0-beta

- Ringkaskan UI aktivasi dan keluarkan paparan debug serta alamat server daripada UI pengguna.
- Sediakan struktur konfigurasi branding Beta MRSM dan Production KitCikgu.
- Tambah portal permohonan lesen melalui email tanpa menjana lesen pendua.
- Tambah penghantaran License Key, pautan installer dan panduan melalui email.
- Tambah suis portal tersimpan dalam MySQL, carian email, penghantaran semula, statistik dan audit log pada dashboard.
- Kekalkan RS256, JOSE, RSA 3072-bit, Device Binding dan pengesahan offline.

## 0.7.0-beta.8

- Betulkan proses staging supaya `src/main/license-public.pem` RSA disalin secara eksplisit.
- Tambah pemeriksaan build wajib untuk hash SHA-256, jenis RSA, modulus 3072-bit dan eksponen 65537.
- Sahkan semula `app.asar` yang diekstrak terus daripada installer akhir.

## 0.7.0-beta.7

- Tukar token lesen kepada JWS standard `header.payload.signature` dengan algoritma RS256.
- Gunakan `jose` melalui `importSPKI()` dan `compactVerify()` dalam aplikasi desktop.
- Token dua bahagian lama meminta pengguna membuat aktivasi semula.

## 0.7.0-beta.6

- Gunakan Web Crypto API dengan `RSASSA-PKCS1-v1_5` dan SHA-256 untuk pengesahan token.
- Tambah log import dan keputusan pengesahan Web Crypto.
- Kekalkan server, API, database, pasangan kunci dan format token sedia ada.

## 0.7.0-beta.5

- Tukar pengesahan tandatangan RSA kepada one-shot `crypto.verify('RSA-SHA256', ...)`.
- Kekalkan public key, server lesen, API dan format token sedia ada.

## 0.7.0-beta.4

- Public key diproses sebagai `KeyObject` melalui `crypto.createPublicKey()`.
- Pengesahan RSA menggunakan SHA256 dengan `RSA_PKCS1_PADDING` eksplisit.
- Electron dipin kepada versi `37.10.3`.
- Log runtime sebenar dipaparkan dalam console dan panel LICENSE DEBUG.

## 0.7.0-beta.3

- Tukar pengesahan RSA kepada `crypto.createVerify('SHA256')` untuk keserasian BoringSSL dalam Electron.
- Kekalkan panel LICENSE DEBUG dan semakan baca-semula activation.json.

## 0.7.0-beta.2

- Sahkan semula `license:status` selepas aktivasi sebelum menukar UI.
- Log lengkap selepas verify, penulisan config/activation dan status akhir.
- Validasi baca-semula memastikan `activation.json` benar-benar lengkap.

## 0.7.0-beta.1 - 2026-07-23

- Dashboard pemilik untuk mengeluarkan dan mengurus lesen Beta Tester.
- Aktivasi maksimum dua peranti dengan Device ID berasingan daripada database guru.
- Token RSA-SHA256 yang boleh disahkan sepenuhnya secara offline hingga lesen tamat.
- Server lesen PHP + MySQL untuk shared hosting dan dashboard kawalan dua Device ID.
- Lanjutan tarikh, gantung, batal dan nyahaktif peranti melalui dashboard.
- Backup dan eksport kekal tersedia ketika lesen tidak aktif.

## 0.6.0-beta.1 - 2026-07-23

- Pengurusan profil, tahun, subjek, kelas dan murid.
- Import murid termasuk No. IC 12 digit dan Homeroom.
- Enjin rekod fleksibel, autosave, PBD dan rubrik.
- Import markah ujian LPM/PNG melalui CSV.
- Rekod intervensi individu dengan kaedah tersuai.
- Laporan kelas, murid, rekod, ujian dan intervensi ke PDF/CSV.
- Backup, restore, auto-backup dan reset data ujian.
- Binaan Windows installer dan portable untuk ujian beta.
- Sistem lesen ditangguhkan.
# Beta Email License MVP

- Memfokuskan portal awam kepada RekodGuru Offline Beta sahaja.
- Menambah CSRF, had 5 permohonan/IP/15 minit dan 3 permohonan/email/jam.
- Menambah konfigurasi `BETA_PORTAL_ENABLED`, tempoh beta dan had 2 peranti.
- Menandakan lesen baharu sebagai `BETA_FREE` melalui migrasi 003.
- Menambah fallback installer manual dan mengekalkan URL `/download/latest`.
- Menetapkan subjek serta kandungan email Beta RekodGuru yang boleh digunakan secara offline.
