FTMS v2.5.0 — Validasi Alarm Pengajuan Substitusi
Tanggal: 30 September 2026

HASIL
- PHP 8.3, Laravel 12, database SQLite: 54 pengujian / 851 assertion lulus.
- 6 pengujian notifikasi baru mencakup penugasan panitia lintas turnamen,
  penugasan nonaktif/dicabut, URL turnamen palsu, akses admin, penolakan akses
  tamu/manager, hanya pengajuan pending pada laga live, serta alur pengajuan
  nyata sebelum/sesudah kickoff, persetujuan, penolakan, dan akhir laga.
- Feed tidak mengubah turnamen terpilih atau menyetujui pengajuan.
- Tautan notifikasi memilih turnamen yang benar dan menuju panel konfirmasi.
- Respons notifikasi tidak boleh disimpan cache dan tidak memuat email akun.
- npm run build berhasil. public/build disertakan.
  Peringatan Vite ukuran bundle utama di atas 500 KB tetap ada; bukan error.

UJI BROWSER (Chromium, viewport ponsel 390x844 dan desktop 1440x1000)
1. Klik Aktifkan suara membuka audio context; tiga nada menghasilkan sinyal
   audio terukur (peak sekitar 0,199), bukan hanya pemanggilan API kosong.
2. Pergantian sebelum kickoff tidak memicu notifikasi/alarm. Manager tidak
   memperoleh panel notifikasi panitia.
3. Pengajuan live terdeteksi pada halaman Pemain dengan toast dan bunyi.
4. Poll berulang tidak menggandakan bunyi awal. Pengingat berulang setelah
   interval sekitar 15 detik saat belum ditangani.
5. Hentikan alarm menghentikan pengingat; pengajuan tetap pending di server.
6. Buka pengajuan mengarah ke turnamen/panel yang benar; persetujuan
   menghapus notifikasi dan manager melihat status disetujui.
7. Pengajuan berikutnya memicu alarm kembali; penolakan menghapusnya.
8. Mematikan suara tetap menampilkan pengajuan secara visual.
9. Pertandingan selesai menghapus notifikasi yang tertunda.
- Tidak ada error JavaScript pada alur yang diuji.
- Screenshot panel/toast ponsel gelap dan panel desktop terang diperiksa.
- Audio aktif bertahan saat berpindah menu melalui navigasi aplikasi.

PAKET
- Source, build frontend, pengujian, serta panduan update.
- Tanpa vendor, node_modules, .env aktif, database pengujian, atau sesi.
- Tidak ada paket Composer, paket npm, maupun migrasi baru dari v2.4.0.
- Pertahankan vendor, .env, database dan unggahan proyek lama saat update.

BATAS VALIDASI
- Browser diuji otomatis; volume speaker perangkat fisik tidak diuji.
- Tidak menguji perangkat Android/iOS fisik atau database MySQL pada rilis ini.
- Suara membutuhkan aktivasi pengguna; browser dapat menangguhkan tab ketika
  aplikasi di latar belakang/perangkat terkunci. Buka aplikasi dan aktifkan
  suara kembali bila browser memerlukannya. Tidak ada push saat tab ditutup.
