{"timestamp":1778265684,"date":"history_2026-05-08","data":[{"timestamp":"2026-05-08 06:25:02","raw_log":"[2026-05-08 06:25:02] \u2717 REJECTED: No schedule found for 668 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 668 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 06:25:02","raw_log":"[2026-05-08 06:25:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Muhammad Ikbal Al Ghiffari, kar_id=668","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Muhammad Ikbal Al Ghiffari, kar_id=668","category":"fallback-mode","severity":"warning","nama":"Muhammad Ikbal Al Ghiffari","kar_id":"668"},{"timestamp":"2026-05-08 06:25:02","raw_log":"[2026-05-08 06:25:02] \u26a0 FALLBACK: Using time-based detection pagi for 668 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 668 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 06:25:02","raw_log":"[2026-05-08 06:25:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Muhammad Ikbal Al Ghiffari, kar_id=668","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Muhammad Ikbal Al Ghiffari, kar_id=668","category":"unknown","severity":"info","nama":"Muhammad Ikbal Al Ghiffari","kar_id":"668"},{"timestamp":"2026-05-08 06:25:02","raw_log":"[2026-05-08 06:25:02] Check-in: keputusan=berhasil, nama=Muhammad Ikbal Al Ghiffari, kar_id=668, id_absensi=207204448, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Muhammad Ikbal Al Ghiffari, kar_id=668, id_absensi=207204448, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Muhammad Ikbal Al Ghiffari","kar_id":"668","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 06:29:01","raw_log":"[2026-05-08 06:29:01] \u2717 REJECTED: No schedule found for 575 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 575 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 06:29:01","raw_log":"[2026-05-08 06:29:01] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Eka Kurnia, kar_id=575","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Eka Kurnia, kar_id=575","category":"fallback-mode","severity":"warning","nama":"Eka Kurnia","kar_id":"575"},{"timestamp":"2026-05-08 06:29:01","raw_log":"[2026-05-08 06:29:01] \u26a0 FALLBACK: Using time-based detection pagi for 575 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 575 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 06:29:01","raw_log":"[2026-05-08 06:29:01] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Eka Kurnia, kar_id=575","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Eka Kurnia, kar_id=575","category":"unknown","severity":"info","nama":"Eka Kurnia","kar_id":"575"},{"timestamp":"2026-05-08 06:29:01","raw_log":"[2026-05-08 06:29:01] Check-in: keputusan=berhasil, nama=Eka Kurnia, kar_id=575, id_absensi=207204449, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Eka Kurnia, kar_id=575, id_absensi=207204449, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Eka Kurnia","kar_id":"575","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 06:33:02","raw_log":"[2026-05-08 06:33:02] \u2717 REJECTED: No schedule found for 543 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 543 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 06:33:02","raw_log":"[2026-05-08 06:33:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Agus Asep Riki, kar_id=543","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Agus Asep Riki, kar_id=543","category":"fallback-mode","severity":"warning","nama":"Agus Asep Riki","kar_id":"543"},{"timestamp":"2026-05-08 06:33:02","raw_log":"[2026-05-08 06:33:02] \u26a0 FALLBACK: Using time-based detection pagi for 543 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 543 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 06:33:02","raw_log":"[2026-05-08 06:33:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Agus Asep Riki, kar_id=543","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Agus Asep Riki, kar_id=543","category":"unknown","severity":"info","nama":"Agus Asep Riki","kar_id":"543"},{"timestamp":"2026-05-08 06:33:02","raw_log":"[2026-05-08 06:33:02] Check-in: keputusan=berhasil, nama=Agus Asep Riki, kar_id=543, id_absensi=207204450, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Agus Asep Riki, kar_id=543, id_absensi=207204450, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Agus Asep Riki","kar_id":"543","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 06:50:02","raw_log":"[2026-05-08 06:50:02] \u2717 REJECTED: No schedule found for 481 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 481 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 06:50:02","raw_log":"[2026-05-08 06:50:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Rezcky Septian Hartono, kar_id=481","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Rezcky Septian Hartono, kar_id=481","category":"fallback-mode","severity":"warning","nama":"Rezcky Septian Hartono","kar_id":"481"},{"timestamp":"2026-05-08 06:50:02","raw_log":"[2026-05-08 06:50:02] \u26a0 FALLBACK: Using time-based detection pagi for 481 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 481 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 06:50:02","raw_log":"[2026-05-08 06:50:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Rezcky Septian Hartono, kar_id=481","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Rezcky Septian Hartono, kar_id=481","category":"unknown","severity":"info","nama":"Rezcky Septian Hartono","kar_id":"481"},{"timestamp":"2026-05-08 06:50:02","raw_log":"[2026-05-08 06:50:02] Check-in: keputusan=berhasil, nama=Rezcky Septian Hartono, kar_id=481, id_absensi=207204452, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Rezcky Septian Hartono, kar_id=481, id_absensi=207204452, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Rezcky Septian Hartono","kar_id":"481","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 06:53:02","raw_log":"[2026-05-08 06:53:02] \u2717 REJECTED: No schedule found for 1747 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1747 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 06:53:02","raw_log":"[2026-05-08 06:53:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Yulis Setiawan, kar_id=1747","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Yulis Setiawan, kar_id=1747","category":"fallback-mode","severity":"warning","nama":"Yulis Setiawan","kar_id":"1747"},{"timestamp":"2026-05-08 06:53:02","raw_log":"[2026-05-08 06:53:02] \u26a0 FALLBACK: Using time-based detection pagi for 1747 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1747 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 06:53:02","raw_log":"[2026-05-08 06:53:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Yulis Setiawan, kar_id=1747","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Yulis Setiawan, kar_id=1747","category":"unknown","severity":"info","nama":"Yulis Setiawan","kar_id":"1747"},{"timestamp":"2026-05-08 06:53:02","raw_log":"[2026-05-08 06:53:02] Check-in: keputusan=berhasil, nama=Yulis Setiawan, kar_id=1747, id_absensi=207204453, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Yulis Setiawan, kar_id=1747, id_absensi=207204453, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Yulis Setiawan","kar_id":"1747","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 06:53:02","raw_log":"[2026-05-08 06:53:02] \u2717 REJECTED: No schedule found for 1590 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1590 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 06:53:02","raw_log":"[2026-05-08 06:53:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Muhammad Husni Mubarok, kar_id=1590","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Muhammad Husni Mubarok, kar_id=1590","category":"fallback-mode","severity":"warning","nama":"Muhammad Husni Mubarok","kar_id":"1590"},{"timestamp":"2026-05-08 06:53:02","raw_log":"[2026-05-08 06:53:02] \u26a0 FALLBACK: Using time-based detection pagi for 1590 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1590 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 06:53:02","raw_log":"[2026-05-08 06:53:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Muhammad Husni Mubarok, kar_id=1590","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Muhammad Husni Mubarok, kar_id=1590","category":"unknown","severity":"info","nama":"Muhammad Husni Mubarok","kar_id":"1590"},{"timestamp":"2026-05-08 06:53:02","raw_log":"[2026-05-08 06:53:02] Check-in: keputusan=berhasil, nama=Muhammad Husni Mubarok, kar_id=1590, id_absensi=207204454, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Muhammad Husni Mubarok, kar_id=1590, id_absensi=207204454, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Muhammad Husni Mubarok","kar_id":"1590","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 06:58:02","raw_log":"[2026-05-08 06:58:02] \u2717 REJECTED: No schedule found for 1317 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1317 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 06:58:02","raw_log":"[2026-05-08 06:58:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Vinka Anggita Permana, kar_id=1317","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Vinka Anggita Permana, kar_id=1317","category":"fallback-mode","severity":"warning","nama":"Vinka Anggita Permana","kar_id":"1317"},{"timestamp":"2026-05-08 06:58:02","raw_log":"[2026-05-08 06:58:02] \u26a0 FALLBACK: Using time-based detection pagi for 1317 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1317 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 06:58:02","raw_log":"[2026-05-08 06:58:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Vinka Anggita Permana, kar_id=1317","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Vinka Anggita Permana, kar_id=1317","category":"unknown","severity":"info","nama":"Vinka Anggita Permana","kar_id":"1317"},{"timestamp":"2026-05-08 06:58:02","raw_log":"[2026-05-08 06:58:02] Check-in: keputusan=berhasil, nama=Vinka Anggita Permana, kar_id=1317, id_absensi=207204455, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Vinka Anggita Permana, kar_id=1317, id_absensi=207204455, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Vinka Anggita Permana","kar_id":"1317","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:02:03","raw_log":"[2026-05-08 07:02:03] Checkout: keputusan=berhasil, nama=Hidayat, kar_id=1324, id_absensi=207204438, shift=malam, jam_kerja=12.7 jam, sumber=schedule","message":"Checkout: keputusan=berhasil, nama=Hidayat, kar_id=1324, id_absensi=207204438, shift=malam, jam_kerja=12.7 jam, sumber=schedule","category":"checkout-berhasil","severity":"success","nama":"Hidayat","kar_id":"1324","shift":"malam","source":"schedule"},{"timestamp":"2026-05-08 07:11:02","raw_log":"[2026-05-08 07:11:02] \u2717 REJECTED: No schedule found for 1513 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1513 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:11:02","raw_log":"[2026-05-08 07:11:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Susi Susanti, kar_id=1513","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Susi Susanti, kar_id=1513","category":"fallback-mode","severity":"warning","nama":"Susi Susanti","kar_id":"1513"},{"timestamp":"2026-05-08 07:11:02","raw_log":"[2026-05-08 07:11:02] \u26a0 FALLBACK: Using time-based detection pagi for 1513 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1513 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:11:02","raw_log":"[2026-05-08 07:11:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Susi Susanti, kar_id=1513","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Susi Susanti, kar_id=1513","category":"unknown","severity":"info","nama":"Susi Susanti","kar_id":"1513"},{"timestamp":"2026-05-08 07:11:02","raw_log":"[2026-05-08 07:11:02] Check-in: keputusan=berhasil, nama=Susi Susanti, kar_id=1513, id_absensi=207204468, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Susi Susanti, kar_id=1513, id_absensi=207204468, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Susi Susanti","kar_id":"1513","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:13:02","raw_log":"[2026-05-08 07:13:02] \u2717 REJECTED: No schedule found for 1723 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1723 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:13:02","raw_log":"[2026-05-08 07:13:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Angga Nur Rizki, kar_id=1723","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Angga Nur Rizki, kar_id=1723","category":"fallback-mode","severity":"warning","nama":"Angga Nur Rizki","kar_id":"1723"},{"timestamp":"2026-05-08 07:13:02","raw_log":"[2026-05-08 07:13:02] \u26a0 FALLBACK: Using time-based detection pagi for 1723 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1723 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:13:02","raw_log":"[2026-05-08 07:13:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Angga Nur Rizki, kar_id=1723","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Angga Nur Rizki, kar_id=1723","category":"unknown","severity":"info","nama":"Angga Nur Rizki","kar_id":"1723"},{"timestamp":"2026-05-08 07:13:02","raw_log":"[2026-05-08 07:13:02] Check-in: keputusan=berhasil, nama=Angga Nur Rizki, kar_id=1723, id_absensi=207204469, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Angga Nur Rizki, kar_id=1723, id_absensi=207204469, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Angga Nur Rizki","kar_id":"1723","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:13:02","raw_log":"[2026-05-08 07:13:02] \u2717 REJECTED: No schedule found for 1745 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1745 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:13:02","raw_log":"[2026-05-08 07:13:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Agus Irsan Saefuloh, kar_id=1745","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Agus Irsan Saefuloh, kar_id=1745","category":"fallback-mode","severity":"warning","nama":"Agus Irsan Saefuloh","kar_id":"1745"},{"timestamp":"2026-05-08 07:13:02","raw_log":"[2026-05-08 07:13:02] \u26a0 FALLBACK: Using time-based detection pagi for 1745 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1745 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:13:02","raw_log":"[2026-05-08 07:13:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Agus Irsan Saefuloh, kar_id=1745","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Agus Irsan Saefuloh, kar_id=1745","category":"unknown","severity":"info","nama":"Agus Irsan Saefuloh","kar_id":"1745"},{"timestamp":"2026-05-08 07:13:02","raw_log":"[2026-05-08 07:13:02] Check-in: keputusan=berhasil, nama=Agus Irsan Saefuloh, kar_id=1745, id_absensi=207204470, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Agus Irsan Saefuloh, kar_id=1745, id_absensi=207204470, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Agus Irsan Saefuloh","kar_id":"1745","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:15:03","raw_log":"[2026-05-08 07:15:03] \u2717 REJECTED: No schedule found for 666 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 666 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:15:03","raw_log":"[2026-05-08 07:15:03] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Muhammad Rizki Permana, kar_id=666","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Muhammad Rizki Permana, kar_id=666","category":"fallback-mode","severity":"warning","nama":"Muhammad Rizki Permana","kar_id":"666"},{"timestamp":"2026-05-08 07:15:03","raw_log":"[2026-05-08 07:15:03] \u26a0 FALLBACK: Using time-based detection pagi for 666 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 666 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:15:03","raw_log":"[2026-05-08 07:15:03] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Muhammad Rizki Permana, kar_id=666","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Muhammad Rizki Permana, kar_id=666","category":"unknown","severity":"info","nama":"Muhammad Rizki Permana","kar_id":"666"},{"timestamp":"2026-05-08 07:15:03","raw_log":"[2026-05-08 07:15:03] Check-in: keputusan=berhasil, nama=Muhammad Rizki Permana, kar_id=666, id_absensi=207204471, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Muhammad Rizki Permana, kar_id=666, id_absensi=207204471, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Muhammad Rizki Permana","kar_id":"666","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:17:02","raw_log":"[2026-05-08 07:17:02] \u2717 REJECTED: No schedule found for 1681 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1681 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:17:02","raw_log":"[2026-05-08 07:17:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Tio Pebriansyah , kar_id=1681","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Tio Pebriansyah , kar_id=1681","category":"fallback-mode","severity":"warning","nama":"Tio Pebriansyah","kar_id":"1681"},{"timestamp":"2026-05-08 07:17:02","raw_log":"[2026-05-08 07:17:02] \u26a0 FALLBACK: Using time-based detection pagi for 1681 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1681 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:17:02","raw_log":"[2026-05-08 07:17:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Tio Pebriansyah , kar_id=1681","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Tio Pebriansyah , kar_id=1681","category":"unknown","severity":"info","nama":"Tio Pebriansyah","kar_id":"1681"},{"timestamp":"2026-05-08 07:17:02","raw_log":"[2026-05-08 07:17:02] Check-in: keputusan=berhasil, nama=Tio Pebriansyah , kar_id=1681, id_absensi=207204473, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Tio Pebriansyah , kar_id=1681, id_absensi=207204473, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Tio Pebriansyah","kar_id":"1681","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:22:02","raw_log":"[2026-05-08 07:22:02] \u2717 REJECTED: No schedule found for 862 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 862 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:22:02","raw_log":"[2026-05-08 07:22:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Desi Anggraeni, kar_id=862","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Desi Anggraeni, kar_id=862","category":"fallback-mode","severity":"warning","nama":"Desi Anggraeni","kar_id":"862"},{"timestamp":"2026-05-08 07:22:02","raw_log":"[2026-05-08 07:22:02] \u26a0 FALLBACK: Using time-based detection pagi for 862 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 862 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:22:02","raw_log":"[2026-05-08 07:22:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Desi Anggraeni, kar_id=862","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Desi Anggraeni, kar_id=862","category":"unknown","severity":"info","nama":"Desi Anggraeni","kar_id":"862"},{"timestamp":"2026-05-08 07:22:02","raw_log":"[2026-05-08 07:22:02] Check-in: keputusan=berhasil, nama=Desi Anggraeni, kar_id=862, id_absensi=207204477, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Desi Anggraeni, kar_id=862, id_absensi=207204477, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Desi Anggraeni","kar_id":"862","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:23:02","raw_log":"[2026-05-08 07:23:02] \u2717 REJECTED: No schedule found for 1748 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1748 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:23:02","raw_log":"[2026-05-08 07:23:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Syifa Rahma Al-Insani, kar_id=1748","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Syifa Rahma Al-Insani, kar_id=1748","category":"fallback-mode","severity":"warning","nama":"Syifa Rahma Al-Insani","kar_id":"1748"},{"timestamp":"2026-05-08 07:23:02","raw_log":"[2026-05-08 07:23:02] \u26a0 FALLBACK: Using time-based detection pagi for 1748 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1748 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:23:02","raw_log":"[2026-05-08 07:23:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Syifa Rahma Al-Insani, kar_id=1748","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Syifa Rahma Al-Insani, kar_id=1748","category":"unknown","severity":"info","nama":"Syifa Rahma Al-Insani","kar_id":"1748"},{"timestamp":"2026-05-08 07:23:02","raw_log":"[2026-05-08 07:23:02] Check-in: keputusan=berhasil, nama=Syifa Rahma Al-Insani, kar_id=1748, id_absensi=207204479, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Syifa Rahma Al-Insani, kar_id=1748, id_absensi=207204479, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Syifa Rahma Al-Insani","kar_id":"1748","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:28:02","raw_log":"[2026-05-08 07:28:02] \u2717 REJECTED: No schedule found for 1345 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1345 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:28:02","raw_log":"[2026-05-08 07:28:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Putri Zahro Pramesty, kar_id=1345","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Putri Zahro Pramesty, kar_id=1345","category":"fallback-mode","severity":"warning","nama":"Putri Zahro Pramesty","kar_id":"1345"},{"timestamp":"2026-05-08 07:28:02","raw_log":"[2026-05-08 07:28:02] \u26a0 FALLBACK: Using time-based detection pagi for 1345 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1345 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:28:02","raw_log":"[2026-05-08 07:28:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Putri Zahro Pramesty, kar_id=1345","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Putri Zahro Pramesty, kar_id=1345","category":"unknown","severity":"info","nama":"Putri Zahro Pramesty","kar_id":"1345"},{"timestamp":"2026-05-08 07:28:02","raw_log":"[2026-05-08 07:28:02] Check-in: keputusan=berhasil, nama=Putri Zahro Pramesty, kar_id=1345, id_absensi=207204484, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Putri Zahro Pramesty, kar_id=1345, id_absensi=207204484, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Putri Zahro Pramesty","kar_id":"1345","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:32:01","raw_log":"[2026-05-08 07:32:01] \u2717 REJECTED: No schedule found for 193 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 193 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:32:01","raw_log":"[2026-05-08 07:32:01] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Anggi Nugraha, kar_id=193","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Anggi Nugraha, kar_id=193","category":"fallback-mode","severity":"warning","nama":"Anggi Nugraha","kar_id":"193"},{"timestamp":"2026-05-08 07:32:01","raw_log":"[2026-05-08 07:32:01] \u26a0 FALLBACK: Using time-based detection pagi for 193 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 193 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:32:01","raw_log":"[2026-05-08 07:32:01] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Anggi Nugraha, kar_id=193","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Anggi Nugraha, kar_id=193","category":"unknown","severity":"info","nama":"Anggi Nugraha","kar_id":"193"},{"timestamp":"2026-05-08 07:32:01","raw_log":"[2026-05-08 07:32:01] Check-in: keputusan=berhasil, nama=Anggi Nugraha, kar_id=193, id_absensi=207204485, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Anggi Nugraha, kar_id=193, id_absensi=207204485, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Anggi Nugraha","kar_id":"193","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:37:01","raw_log":"[2026-05-08 07:37:01] \u2717 REJECTED: No schedule found for 311 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 311 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:37:01","raw_log":"[2026-05-08 07:37:01] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Imantri Didit Purnomo Aji, kar_id=311","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Imantri Didit Purnomo Aji, kar_id=311","category":"fallback-mode","severity":"warning","nama":"Imantri Didit Purnomo Aji","kar_id":"311"},{"timestamp":"2026-05-08 07:37:01","raw_log":"[2026-05-08 07:37:01] \u26a0 FALLBACK: Using time-based detection pagi for 311 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 311 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:37:01","raw_log":"[2026-05-08 07:37:01] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Imantri Didit Purnomo Aji, kar_id=311","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Imantri Didit Purnomo Aji, kar_id=311","category":"unknown","severity":"info","nama":"Imantri Didit Purnomo Aji","kar_id":"311"},{"timestamp":"2026-05-08 07:37:01","raw_log":"[2026-05-08 07:37:01] Check-in: keputusan=berhasil, nama=Imantri Didit Purnomo Aji, kar_id=311, id_absensi=207204491, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Imantri Didit Purnomo Aji, kar_id=311, id_absensi=207204491, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Imantri Didit Purnomo Aji","kar_id":"311","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:42:02","raw_log":"[2026-05-08 07:42:02] \u2717 REJECTED: No schedule found for 1583 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1583 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:42:02","raw_log":"[2026-05-08 07:42:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Ahmad Sayidi, kar_id=1583","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Ahmad Sayidi, kar_id=1583","category":"fallback-mode","severity":"warning","nama":"Ahmad Sayidi","kar_id":"1583"},{"timestamp":"2026-05-08 07:42:02","raw_log":"[2026-05-08 07:42:02] \u26a0 FALLBACK: Using time-based detection pagi for 1583 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1583 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:42:02","raw_log":"[2026-05-08 07:42:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Ahmad Sayidi, kar_id=1583","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Ahmad Sayidi, kar_id=1583","category":"unknown","severity":"info","nama":"Ahmad Sayidi","kar_id":"1583"},{"timestamp":"2026-05-08 07:42:02","raw_log":"[2026-05-08 07:42:02] Check-in: keputusan=berhasil, nama=Ahmad Sayidi, kar_id=1583, id_absensi=207204496, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Ahmad Sayidi, kar_id=1583, id_absensi=207204496, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Ahmad Sayidi","kar_id":"1583","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:45:02","raw_log":"[2026-05-08 07:45:02] \u2717 REJECTED: No schedule found for 338 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 338 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:45:02","raw_log":"[2026-05-08 07:45:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Azhar Muhamad, kar_id=338","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Azhar Muhamad, kar_id=338","category":"fallback-mode","severity":"warning","nama":"Azhar Muhamad","kar_id":"338"},{"timestamp":"2026-05-08 07:45:02","raw_log":"[2026-05-08 07:45:02] \u26a0 FALLBACK: Using time-based detection pagi for 338 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 338 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:45:02","raw_log":"[2026-05-08 07:45:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Azhar Muhamad, kar_id=338","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Azhar Muhamad, kar_id=338","category":"unknown","severity":"info","nama":"Azhar Muhamad","kar_id":"338"},{"timestamp":"2026-05-08 07:45:02","raw_log":"[2026-05-08 07:45:02] Check-in: keputusan=berhasil, nama=Azhar Muhamad, kar_id=338, id_absensi=207204501, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Azhar Muhamad, kar_id=338, id_absensi=207204501, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Azhar Muhamad","kar_id":"338","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:45:02","raw_log":"[2026-05-08 07:45:02] \u2717 REJECTED: No schedule found for 1177 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1177 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:45:02","raw_log":"[2026-05-08 07:45:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Moch Adnan Haikal Bayhaqi, kar_id=1177","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Moch Adnan Haikal Bayhaqi, kar_id=1177","category":"fallback-mode","severity":"warning","nama":"Moch Adnan Haikal Bayhaqi","kar_id":"1177"},{"timestamp":"2026-05-08 07:45:02","raw_log":"[2026-05-08 07:45:02] \u26a0 FALLBACK: Using time-based detection pagi for 1177 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1177 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:45:02","raw_log":"[2026-05-08 07:45:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Moch Adnan Haikal Bayhaqi, kar_id=1177","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Moch Adnan Haikal Bayhaqi, kar_id=1177","category":"unknown","severity":"info","nama":"Moch Adnan Haikal Bayhaqi","kar_id":"1177"},{"timestamp":"2026-05-08 07:45:02","raw_log":"[2026-05-08 07:45:02] Check-in: keputusan=berhasil, nama=Moch Adnan Haikal Bayhaqi, kar_id=1177, id_absensi=207204502, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Moch Adnan Haikal Bayhaqi, kar_id=1177, id_absensi=207204502, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Moch Adnan Haikal Bayhaqi","kar_id":"1177","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:48:01","raw_log":"[2026-05-08 07:48:01] \u2717 REJECTED: No schedule found for 1107 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1107 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:48:01","raw_log":"[2026-05-08 07:48:01] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Anggellisana Early, kar_id=1107","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Anggellisana Early, kar_id=1107","category":"fallback-mode","severity":"warning","nama":"Anggellisana Early","kar_id":"1107"},{"timestamp":"2026-05-08 07:48:01","raw_log":"[2026-05-08 07:48:01] \u26a0 FALLBACK: Using time-based detection pagi for 1107 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1107 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:48:01","raw_log":"[2026-05-08 07:48:01] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Anggellisana Early, kar_id=1107","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Anggellisana Early, kar_id=1107","category":"unknown","severity":"info","nama":"Anggellisana Early","kar_id":"1107"},{"timestamp":"2026-05-08 07:48:01","raw_log":"[2026-05-08 07:48:01] Check-in: keputusan=berhasil, nama=Anggellisana Early, kar_id=1107, id_absensi=207204506, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Anggellisana Early, kar_id=1107, id_absensi=207204506, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Anggellisana Early","kar_id":"1107","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:48:02","raw_log":"[2026-05-08 07:48:02] \u2717 REJECTED: No schedule found for 344 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 344 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:48:02","raw_log":"[2026-05-08 07:48:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Yongky Alexandra, kar_id=344","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Yongky Alexandra, kar_id=344","category":"fallback-mode","severity":"warning","nama":"Yongky Alexandra","kar_id":"344"},{"timestamp":"2026-05-08 07:48:02","raw_log":"[2026-05-08 07:48:02] \u26a0 FALLBACK: Using time-based detection pagi for 344 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 344 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:48:02","raw_log":"[2026-05-08 07:48:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Yongky Alexandra, kar_id=344","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Yongky Alexandra, kar_id=344","category":"unknown","severity":"info","nama":"Yongky Alexandra","kar_id":"344"},{"timestamp":"2026-05-08 07:48:02","raw_log":"[2026-05-08 07:48:02] Check-in: keputusan=berhasil, nama=Yongky Alexandra, kar_id=344, id_absensi=207204507, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Yongky Alexandra, kar_id=344, id_absensi=207204507, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Yongky Alexandra","kar_id":"344","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:49:02","raw_log":"[2026-05-08 07:49:02] \u2717 REJECTED: No schedule found for 1555 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1555 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:49:02","raw_log":"[2026-05-08 07:49:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Fadhilla Alfajr, kar_id=1555","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Fadhilla Alfajr, kar_id=1555","category":"fallback-mode","severity":"warning","nama":"Fadhilla Alfajr","kar_id":"1555"},{"timestamp":"2026-05-08 07:49:02","raw_log":"[2026-05-08 07:49:02] \u26a0 FALLBACK: Using time-based detection pagi for 1555 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1555 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:49:02","raw_log":"[2026-05-08 07:49:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Fadhilla Alfajr, kar_id=1555","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Fadhilla Alfajr, kar_id=1555","category":"unknown","severity":"info","nama":"Fadhilla Alfajr","kar_id":"1555"},{"timestamp":"2026-05-08 07:49:02","raw_log":"[2026-05-08 07:49:02] Check-in: keputusan=berhasil, nama=Fadhilla Alfajr, kar_id=1555, id_absensi=207204509, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Fadhilla Alfajr, kar_id=1555, id_absensi=207204509, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Fadhilla Alfajr","kar_id":"1555","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:49:03","raw_log":"[2026-05-08 07:49:03] \u2717 REJECTED: No schedule found for 1685 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1685 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:49:03","raw_log":"[2026-05-08 07:49:03] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Luthfia Safitri, kar_id=1685","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Luthfia Safitri, kar_id=1685","category":"fallback-mode","severity":"warning","nama":"Luthfia Safitri","kar_id":"1685"},{"timestamp":"2026-05-08 07:49:03","raw_log":"[2026-05-08 07:49:03] \u26a0 FALLBACK: Using time-based detection pagi for 1685 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1685 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:49:03","raw_log":"[2026-05-08 07:49:03] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Luthfia Safitri, kar_id=1685","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Luthfia Safitri, kar_id=1685","category":"unknown","severity":"info","nama":"Luthfia Safitri","kar_id":"1685"},{"timestamp":"2026-05-08 07:49:03","raw_log":"[2026-05-08 07:49:03] Check-in: keputusan=berhasil, nama=Luthfia Safitri, kar_id=1685, id_absensi=207204510, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Luthfia Safitri, kar_id=1685, id_absensi=207204510, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Luthfia Safitri","kar_id":"1685","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:49:03","raw_log":"[2026-05-08 07:49:03] \u2717 REJECTED: No schedule found for 1729 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1729 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:49:03","raw_log":"[2026-05-08 07:49:03] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Ferina Afriani, kar_id=1729","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Ferina Afriani, kar_id=1729","category":"fallback-mode","severity":"warning","nama":"Ferina Afriani","kar_id":"1729"},{"timestamp":"2026-05-08 07:49:03","raw_log":"[2026-05-08 07:49:03] \u26a0 FALLBACK: Using time-based detection pagi for 1729 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1729 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:49:03","raw_log":"[2026-05-08 07:49:03] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Ferina Afriani, kar_id=1729","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Ferina Afriani, kar_id=1729","category":"unknown","severity":"info","nama":"Ferina Afriani","kar_id":"1729"},{"timestamp":"2026-05-08 07:49:03","raw_log":"[2026-05-08 07:49:03] Check-in: keputusan=berhasil, nama=Ferina Afriani, kar_id=1729, id_absensi=207204511, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Ferina Afriani, kar_id=1729, id_absensi=207204511, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Ferina Afriani","kar_id":"1729","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:50:02","raw_log":"[2026-05-08 07:50:02] \u2717 REJECTED: No schedule found for 1740 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1740 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:50:02","raw_log":"[2026-05-08 07:50:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Nadela Siti Nuraisyah, kar_id=1740","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Nadela Siti Nuraisyah, kar_id=1740","category":"fallback-mode","severity":"warning","nama":"Nadela Siti Nuraisyah","kar_id":"1740"},{"timestamp":"2026-05-08 07:50:02","raw_log":"[2026-05-08 07:50:02] \u26a0 FALLBACK: Using time-based detection pagi for 1740 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1740 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:50:02","raw_log":"[2026-05-08 07:50:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Nadela Siti Nuraisyah, kar_id=1740","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Nadela Siti Nuraisyah, kar_id=1740","category":"unknown","severity":"info","nama":"Nadela Siti Nuraisyah","kar_id":"1740"},{"timestamp":"2026-05-08 07:50:02","raw_log":"[2026-05-08 07:50:02] Check-in: keputusan=berhasil, nama=Nadela Siti Nuraisyah, kar_id=1740, id_absensi=207204513, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Nadela Siti Nuraisyah, kar_id=1740, id_absensi=207204513, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Nadela Siti Nuraisyah","kar_id":"1740","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:51:01","raw_log":"[2026-05-08 07:51:01] \u2717 REJECTED: No schedule found for 421 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 421 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:51:01","raw_log":"[2026-05-08 07:51:01] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Gina Oktaviana, kar_id=421","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Gina Oktaviana, kar_id=421","category":"fallback-mode","severity":"warning","nama":"Gina Oktaviana","kar_id":"421"},{"timestamp":"2026-05-08 07:51:02","raw_log":"[2026-05-08 07:51:02] \u26a0 FALLBACK: Using time-based detection pagi for 421 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 421 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:51:02","raw_log":"[2026-05-08 07:51:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Gina Oktaviana, kar_id=421","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Gina Oktaviana, kar_id=421","category":"unknown","severity":"info","nama":"Gina Oktaviana","kar_id":"421"},{"timestamp":"2026-05-08 07:51:02","raw_log":"[2026-05-08 07:51:02] Check-in: keputusan=berhasil, nama=Gina Oktaviana, kar_id=421, id_absensi=207204515, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Gina Oktaviana, kar_id=421, id_absensi=207204515, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Gina Oktaviana","kar_id":"421","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:51:02","raw_log":"[2026-05-08 07:51:02] \u2717 REJECTED: No schedule found for 1037 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1037 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:51:02","raw_log":"[2026-05-08 07:51:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Alisya Salma Indriati, kar_id=1037","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Alisya Salma Indriati, kar_id=1037","category":"fallback-mode","severity":"warning","nama":"Alisya Salma Indriati","kar_id":"1037"},{"timestamp":"2026-05-08 07:51:02","raw_log":"[2026-05-08 07:51:02] \u26a0 FALLBACK: Using time-based detection pagi for 1037 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1037 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:51:02","raw_log":"[2026-05-08 07:51:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Alisya Salma Indriati, kar_id=1037","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Alisya Salma Indriati, kar_id=1037","category":"unknown","severity":"info","nama":"Alisya Salma Indriati","kar_id":"1037"},{"timestamp":"2026-05-08 07:51:02","raw_log":"[2026-05-08 07:51:02] Check-in: keputusan=berhasil, nama=Alisya Salma Indriati, kar_id=1037, id_absensi=207204516, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Alisya Salma Indriati, kar_id=1037, id_absensi=207204516, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Alisya Salma Indriati","kar_id":"1037","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:51:03","raw_log":"[2026-05-08 07:51:03] \u2717 REJECTED: No schedule found for 245 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 245 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:51:03","raw_log":"[2026-05-08 07:51:03] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Kiki Andriansyah, kar_id=245","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Kiki Andriansyah, kar_id=245","category":"fallback-mode","severity":"warning","nama":"Kiki Andriansyah","kar_id":"245"},{"timestamp":"2026-05-08 07:51:03","raw_log":"[2026-05-08 07:51:03] \u26a0 FALLBACK: Using time-based detection pagi for 245 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 245 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:51:03","raw_log":"[2026-05-08 07:51:03] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Kiki Andriansyah, kar_id=245","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Kiki Andriansyah, kar_id=245","category":"unknown","severity":"info","nama":"Kiki Andriansyah","kar_id":"245"},{"timestamp":"2026-05-08 07:51:03","raw_log":"[2026-05-08 07:51:03] Check-in: keputusan=berhasil, nama=Kiki Andriansyah, kar_id=245, id_absensi=207204517, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Kiki Andriansyah, kar_id=245, id_absensi=207204517, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Kiki Andriansyah","kar_id":"245","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:51:03","raw_log":"[2026-05-08 07:51:03] \u2717 REJECTED: No schedule found for 403 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 403 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:51:03","raw_log":"[2026-05-08 07:51:03] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Wiwin Wulantika Putri, kar_id=403","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Wiwin Wulantika Putri, kar_id=403","category":"fallback-mode","severity":"warning","nama":"Wiwin Wulantika Putri","kar_id":"403"},{"timestamp":"2026-05-08 07:51:03","raw_log":"[2026-05-08 07:51:03] \u26a0 FALLBACK: Using time-based detection pagi for 403 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 403 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:51:03","raw_log":"[2026-05-08 07:51:03] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Wiwin Wulantika Putri, kar_id=403","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Wiwin Wulantika Putri, kar_id=403","category":"unknown","severity":"info","nama":"Wiwin Wulantika Putri","kar_id":"403"},{"timestamp":"2026-05-08 07:51:03","raw_log":"[2026-05-08 07:51:03] Check-in: keputusan=berhasil, nama=Wiwin Wulantika Putri, kar_id=403, id_absensi=207204518, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Wiwin Wulantika Putri, kar_id=403, id_absensi=207204518, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Wiwin Wulantika Putri","kar_id":"403","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:52:02","raw_log":"[2026-05-08 07:52:02] \u2717 REJECTED: No schedule found for 611 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 611 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:52:02","raw_log":"[2026-05-08 07:52:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Desi Ria Puspita, kar_id=611","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Desi Ria Puspita, kar_id=611","category":"fallback-mode","severity":"warning","nama":"Desi Ria Puspita","kar_id":"611"},{"timestamp":"2026-05-08 07:52:02","raw_log":"[2026-05-08 07:52:02] \u26a0 FALLBACK: Using time-based detection pagi for 611 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 611 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:52:02","raw_log":"[2026-05-08 07:52:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Desi Ria Puspita, kar_id=611","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Desi Ria Puspita, kar_id=611","category":"unknown","severity":"info","nama":"Desi Ria Puspita","kar_id":"611"},{"timestamp":"2026-05-08 07:52:02","raw_log":"[2026-05-08 07:52:02] Check-in: keputusan=berhasil, nama=Desi Ria Puspita, kar_id=611, id_absensi=207204520, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Desi Ria Puspita, kar_id=611, id_absensi=207204520, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Desi Ria Puspita","kar_id":"611","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:54:01","raw_log":"[2026-05-08 07:54:01] \u2717 REJECTED: No schedule found for 320 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 320 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:54:01","raw_log":"[2026-05-08 07:54:01] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Asep Setiawan, kar_id=320","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Asep Setiawan, kar_id=320","category":"fallback-mode","severity":"warning","nama":"Asep Setiawan","kar_id":"320"},{"timestamp":"2026-05-08 07:54:01","raw_log":"[2026-05-08 07:54:01] \u26a0 FALLBACK: Using time-based detection pagi for 320 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 320 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:54:01","raw_log":"[2026-05-08 07:54:01] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Asep Setiawan, kar_id=320","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Asep Setiawan, kar_id=320","category":"unknown","severity":"info","nama":"Asep Setiawan","kar_id":"320"},{"timestamp":"2026-05-08 07:54:01","raw_log":"[2026-05-08 07:54:01] Check-in: keputusan=berhasil, nama=Asep Setiawan, kar_id=320, id_absensi=207204522, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Asep Setiawan, kar_id=320, id_absensi=207204522, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Asep Setiawan","kar_id":"320","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:56:02","raw_log":"[2026-05-08 07:56:02] \u2717 REJECTED: No schedule found for 696 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 696 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:56:02","raw_log":"[2026-05-08 07:56:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Arief Pribadi Mustafa, kar_id=696","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Arief Pribadi Mustafa, kar_id=696","category":"fallback-mode","severity":"warning","nama":"Arief Pribadi Mustafa","kar_id":"696"},{"timestamp":"2026-05-08 07:56:02","raw_log":"[2026-05-08 07:56:02] \u26a0 FALLBACK: Using time-based detection pagi for 696 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 696 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:56:02","raw_log":"[2026-05-08 07:56:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Arief Pribadi Mustafa, kar_id=696","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Arief Pribadi Mustafa, kar_id=696","category":"unknown","severity":"info","nama":"Arief Pribadi Mustafa","kar_id":"696"},{"timestamp":"2026-05-08 07:56:02","raw_log":"[2026-05-08 07:56:02] Check-in: keputusan=berhasil, nama=Arief Pribadi Mustafa, kar_id=696, id_absensi=207204524, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Arief Pribadi Mustafa, kar_id=696, id_absensi=207204524, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Arief Pribadi Mustafa","kar_id":"696","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:57:03","raw_log":"[2026-05-08 07:57:03] \u2717 REJECTED: No schedule found for 1184 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1184 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:57:03","raw_log":"[2026-05-08 07:57:03] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Cakra Abimanyu Ramadhan, kar_id=1184","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Cakra Abimanyu Ramadhan, kar_id=1184","category":"fallback-mode","severity":"warning","nama":"Cakra Abimanyu Ramadhan","kar_id":"1184"},{"timestamp":"2026-05-08 07:57:03","raw_log":"[2026-05-08 07:57:03] \u26a0 FALLBACK: Using time-based detection pagi for 1184 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1184 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:57:03","raw_log":"[2026-05-08 07:57:03] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Cakra Abimanyu Ramadhan, kar_id=1184","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Cakra Abimanyu Ramadhan, kar_id=1184","category":"unknown","severity":"info","nama":"Cakra Abimanyu Ramadhan","kar_id":"1184"},{"timestamp":"2026-05-08 07:57:03","raw_log":"[2026-05-08 07:57:03] Check-in: keputusan=berhasil, nama=Cakra Abimanyu Ramadhan, kar_id=1184, id_absensi=207204526, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Cakra Abimanyu Ramadhan, kar_id=1184, id_absensi=207204526, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Cakra Abimanyu Ramadhan","kar_id":"1184","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:58:02","raw_log":"[2026-05-08 07:58:02] \u2717 REJECTED: No schedule found for 717 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 717 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:58:02","raw_log":"[2026-05-08 07:58:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Kiki Kurniawan, kar_id=717","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Kiki Kurniawan, kar_id=717","category":"fallback-mode","severity":"warning","nama":"Kiki Kurniawan","kar_id":"717"},{"timestamp":"2026-05-08 07:58:02","raw_log":"[2026-05-08 07:58:02] \u26a0 FALLBACK: Using time-based detection pagi for 717 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 717 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:58:02","raw_log":"[2026-05-08 07:58:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Kiki Kurniawan, kar_id=717","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Kiki Kurniawan, kar_id=717","category":"unknown","severity":"info","nama":"Kiki Kurniawan","kar_id":"717"},{"timestamp":"2026-05-08 07:58:02","raw_log":"[2026-05-08 07:58:02] Check-in: keputusan=berhasil, nama=Kiki Kurniawan, kar_id=717, id_absensi=207204528, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Kiki Kurniawan, kar_id=717, id_absensi=207204528, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Kiki Kurniawan","kar_id":"717","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 07:59:02","raw_log":"[2026-05-08 07:59:02] \u2717 REJECTED: No schedule found for 1401 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1401 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:59:02","raw_log":"[2026-05-08 07:59:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Happy Adisti, kar_id=1401","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Happy Adisti, kar_id=1401","category":"fallback-mode","severity":"warning","nama":"Happy Adisti","kar_id":"1401"},{"timestamp":"2026-05-08 07:59:02","raw_log":"[2026-05-08 07:59:02] \u26a0 FALLBACK: Using time-based detection pagi for 1401 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1401 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 07:59:02","raw_log":"[2026-05-08 07:59:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Happy Adisti, kar_id=1401","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Happy Adisti, kar_id=1401","category":"unknown","severity":"info","nama":"Happy Adisti","kar_id":"1401"},{"timestamp":"2026-05-08 07:59:02","raw_log":"[2026-05-08 07:59:02] Check-in: keputusan=berhasil, nama=Happy Adisti, kar_id=1401, id_absensi=207204529, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Happy Adisti, kar_id=1401, id_absensi=207204529, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Happy Adisti","kar_id":"1401","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 08:00:02","raw_log":"[2026-05-08 08:00:02] \u2717 REJECTED: No schedule found for 1604 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1604 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:00:02","raw_log":"[2026-05-08 08:00:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Agung Zakaria, kar_id=1604","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Agung Zakaria, kar_id=1604","category":"fallback-mode","severity":"warning","nama":"Agung Zakaria","kar_id":"1604"},{"timestamp":"2026-05-08 08:00:02","raw_log":"[2026-05-08 08:00:02] \u26a0 FALLBACK: Using time-based detection pagi for 1604 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1604 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:00:02","raw_log":"[2026-05-08 08:00:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Agung Zakaria, kar_id=1604","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Agung Zakaria, kar_id=1604","category":"unknown","severity":"info","nama":"Agung Zakaria","kar_id":"1604"},{"timestamp":"2026-05-08 08:00:02","raw_log":"[2026-05-08 08:00:02] Check-in: keputusan=berhasil, nama=Agung Zakaria, kar_id=1604, id_absensi=207204533, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Agung Zakaria, kar_id=1604, id_absensi=207204533, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Agung Zakaria","kar_id":"1604","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 08:00:02","raw_log":"[2026-05-08 08:00:02] \u2717 REJECTED: No schedule found for 251 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 251 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:00:02","raw_log":"[2026-05-08 08:00:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Pipin Sopian, kar_id=251","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Pipin Sopian, kar_id=251","category":"fallback-mode","severity":"warning","nama":"Pipin Sopian","kar_id":"251"},{"timestamp":"2026-05-08 08:00:02","raw_log":"[2026-05-08 08:00:02] \u26a0 FALLBACK: Using time-based detection pagi for 251 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 251 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:00:02","raw_log":"[2026-05-08 08:00:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Pipin Sopian, kar_id=251","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Pipin Sopian, kar_id=251","category":"unknown","severity":"info","nama":"Pipin Sopian","kar_id":"251"},{"timestamp":"2026-05-08 08:00:02","raw_log":"[2026-05-08 08:00:02] Check-in: keputusan=berhasil, nama=Pipin Sopian, kar_id=251, id_absensi=207204534, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Pipin Sopian, kar_id=251, id_absensi=207204534, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Pipin Sopian","kar_id":"251","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 08:01:02","raw_log":"[2026-05-08 08:01:02] \u2717 REJECTED: No schedule found for 1520 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1520 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:01:02","raw_log":"[2026-05-08 08:01:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Fadhila Salsabila Ahda, kar_id=1520","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Fadhila Salsabila Ahda, kar_id=1520","category":"fallback-mode","severity":"warning","nama":"Fadhila Salsabila Ahda","kar_id":"1520"},{"timestamp":"2026-05-08 08:01:02","raw_log":"[2026-05-08 08:01:02] \u26a0 FALLBACK: Using time-based detection pagi for 1520 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1520 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:01:02","raw_log":"[2026-05-08 08:01:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Fadhila Salsabila Ahda, kar_id=1520","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Fadhila Salsabila Ahda, kar_id=1520","category":"unknown","severity":"info","nama":"Fadhila Salsabila Ahda","kar_id":"1520"},{"timestamp":"2026-05-08 08:01:02","raw_log":"[2026-05-08 08:01:02] Check-in: keputusan=berhasil, nama=Fadhila Salsabila Ahda, kar_id=1520, id_absensi=207204536, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Fadhila Salsabila Ahda, kar_id=1520, id_absensi=207204536, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Fadhila Salsabila Ahda","kar_id":"1520","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 08:01:02","raw_log":"[2026-05-08 08:01:02] \u2717 REJECTED: No schedule found for 454 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 454 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:01:02","raw_log":"[2026-05-08 08:01:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Agung Kurniawan, kar_id=454","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Agung Kurniawan, kar_id=454","category":"fallback-mode","severity":"warning","nama":"Agung Kurniawan","kar_id":"454"},{"timestamp":"2026-05-08 08:01:02","raw_log":"[2026-05-08 08:01:02] \u26a0 FALLBACK: Using time-based detection pagi for 454 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 454 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:01:02","raw_log":"[2026-05-08 08:01:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Agung Kurniawan, kar_id=454","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Agung Kurniawan, kar_id=454","category":"unknown","severity":"info","nama":"Agung Kurniawan","kar_id":"454"},{"timestamp":"2026-05-08 08:01:02","raw_log":"[2026-05-08 08:01:02] Check-in: keputusan=berhasil, nama=Agung Kurniawan, kar_id=454, id_absensi=207204537, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Agung Kurniawan, kar_id=454, id_absensi=207204537, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Agung Kurniawan","kar_id":"454","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 08:02:02","raw_log":"[2026-05-08 08:02:02] \u2717 REJECTED: No schedule found for 960 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 960 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:02:02","raw_log":"[2026-05-08 08:02:02] \u2717 ENFORCING SCHEDULE: Coverage 50%, rejecting event without schedule for nama=Solehudin, kar_id=960","message":"\u2717 ENFORCING SCHEDULE: Coverage 50%, rejecting event without schedule for nama=Solehudin, kar_id=960","category":"strict-reject","severity":"error","nama":"Solehudin","kar_id":"960"},{"timestamp":"2026-05-08 08:02:02","raw_log":"[2026-05-08 08:02:02] Check-in: keputusan=ditolak, nama=Solehudin, kar_id=960, alasan=event tanpa jadwal (kebijakan jadwal wajib); tidak ada insert ke trs_absensi","message":"Check-in: keputusan=ditolak, nama=Solehudin, kar_id=960, alasan=event tanpa jadwal (kebijakan jadwal wajib); tidak ada insert ke trs_absensi","category":"check-in-ditolak","severity":"error","nama":"Solehudin","kar_id":"960","alasan":"event tanpa jadwal (kebijakan jadwal wajib); tidak ada insert ke trs_absensi"},{"timestamp":"2026-05-08 08:02:02","raw_log":"[2026-05-08 08:02:02] \u2717 REJECTED: No schedule found for 1261 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1261 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:02:02","raw_log":"[2026-05-08 08:02:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=M Sopian, kar_id=1261","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=M Sopian, kar_id=1261","category":"fallback-mode","severity":"warning","nama":"M Sopian","kar_id":"1261"},{"timestamp":"2026-05-08 08:02:02","raw_log":"[2026-05-08 08:02:02] \u26a0 FALLBACK: Using time-based detection pagi for 1261 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1261 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:02:02","raw_log":"[2026-05-08 08:02:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=M Sopian, kar_id=1261","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=M Sopian, kar_id=1261","category":"unknown","severity":"info","nama":"M Sopian","kar_id":"1261"},{"timestamp":"2026-05-08 08:02:02","raw_log":"[2026-05-08 08:02:02] Check-in: keputusan=berhasil, nama=M Sopian, kar_id=1261, id_absensi=207204539, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=M Sopian, kar_id=1261, id_absensi=207204539, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"M Sopian","kar_id":"1261","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 08:04:02","raw_log":"[2026-05-08 08:04:02] \u2717 REJECTED: No schedule found for 1734 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1734 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:04:02","raw_log":"[2026-05-08 08:04:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Alifa Rizki Salsabila Rosadi, kar_id=1734","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Alifa Rizki Salsabila Rosadi, kar_id=1734","category":"fallback-mode","severity":"warning","nama":"Alifa Rizki Salsabila Rosadi","kar_id":"1734"},{"timestamp":"2026-05-08 08:04:02","raw_log":"[2026-05-08 08:04:02] \u26a0 FALLBACK: Using time-based detection pagi for 1734 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1734 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:04:02","raw_log":"[2026-05-08 08:04:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Alifa Rizki Salsabila Rosadi, kar_id=1734","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Alifa Rizki Salsabila Rosadi, kar_id=1734","category":"unknown","severity":"info","nama":"Alifa Rizki Salsabila Rosadi","kar_id":"1734"},{"timestamp":"2026-05-08 08:04:02","raw_log":"[2026-05-08 08:04:02] Check-in: keputusan=berhasil, nama=Alifa Rizki Salsabila Rosadi, kar_id=1734, id_absensi=207204540, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Alifa Rizki Salsabila Rosadi, kar_id=1734, id_absensi=207204540, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Alifa Rizki Salsabila Rosadi","kar_id":"1734","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 08:05:02","raw_log":"[2026-05-08 08:05:02] Check-in: keputusan=berhasil, nama=Muhammad Arif Dermawan, kar_id=710, id_absensi=207204541, shift=malam, sumber=schedule","message":"Check-in: keputusan=berhasil, nama=Muhammad Arif Dermawan, kar_id=710, id_absensi=207204541, shift=malam, sumber=schedule","category":"check-in-berhasil","severity":"success","nama":"Muhammad Arif Dermawan","kar_id":"710","shift":"malam","source":"schedule"},{"timestamp":"2026-05-08 08:05:02","raw_log":"[2026-05-08 08:05:02] \u2717 REJECTED: No schedule found for 480 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 480 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:05:02","raw_log":"[2026-05-08 08:05:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Cahyadi Saputra, kar_id=480","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Cahyadi Saputra, kar_id=480","category":"fallback-mode","severity":"warning","nama":"Cahyadi Saputra","kar_id":"480"},{"timestamp":"2026-05-08 08:05:02","raw_log":"[2026-05-08 08:05:02] \u26a0 FALLBACK: Using time-based detection pagi for 480 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 480 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:05:02","raw_log":"[2026-05-08 08:05:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Cahyadi Saputra, kar_id=480","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Cahyadi Saputra, kar_id=480","category":"unknown","severity":"info","nama":"Cahyadi Saputra","kar_id":"480"},{"timestamp":"2026-05-08 08:05:02","raw_log":"[2026-05-08 08:05:02] Check-in: keputusan=berhasil, nama=Cahyadi Saputra, kar_id=480, id_absensi=207204542, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Cahyadi Saputra, kar_id=480, id_absensi=207204542, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Cahyadi Saputra","kar_id":"480","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 08:05:03","raw_log":"[2026-05-08 08:05:03] \u2717 REJECTED: No schedule found for 520 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 520 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:05:03","raw_log":"[2026-05-08 08:05:03] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Devi Indah Sari, kar_id=520","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Devi Indah Sari, kar_id=520","category":"fallback-mode","severity":"warning","nama":"Devi Indah Sari","kar_id":"520"},{"timestamp":"2026-05-08 08:05:03","raw_log":"[2026-05-08 08:05:03] \u26a0 FALLBACK: Using time-based detection pagi for 520 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 520 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:05:03","raw_log":"[2026-05-08 08:05:03] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Devi Indah Sari, kar_id=520","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Devi Indah Sari, kar_id=520","category":"unknown","severity":"info","nama":"Devi Indah Sari","kar_id":"520"},{"timestamp":"2026-05-08 08:05:03","raw_log":"[2026-05-08 08:05:03] Check-in: keputusan=berhasil, nama=Devi Indah Sari, kar_id=520, id_absensi=207204543, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Devi Indah Sari, kar_id=520, id_absensi=207204543, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Devi Indah Sari","kar_id":"520","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 08:05:03","raw_log":"[2026-05-08 08:05:03] \u2717 REJECTED: No schedule found for 485 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 485 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:05:04","raw_log":"[2026-05-08 08:05:04] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Andre Saputra, kar_id=485","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Andre Saputra, kar_id=485","category":"fallback-mode","severity":"warning","nama":"Andre Saputra","kar_id":"485"},{"timestamp":"2026-05-08 08:05:04","raw_log":"[2026-05-08 08:05:04] \u26a0 FALLBACK: Using time-based detection pagi for 485 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 485 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:05:04","raw_log":"[2026-05-08 08:05:04] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Andre Saputra, kar_id=485","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Andre Saputra, kar_id=485","category":"unknown","severity":"info","nama":"Andre Saputra","kar_id":"485"},{"timestamp":"2026-05-08 08:05:04","raw_log":"[2026-05-08 08:05:04] Check-in: keputusan=berhasil, nama=Andre Saputra, kar_id=485, id_absensi=207204544, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Andre Saputra, kar_id=485, id_absensi=207204544, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Andre Saputra","kar_id":"485","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 08:05:04","raw_log":"[2026-05-08 08:05:04] \u2717 REJECTED: No schedule found for 1597 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1597 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:05:04","raw_log":"[2026-05-08 08:05:04] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Yuda Nugraha, kar_id=1597","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Yuda Nugraha, kar_id=1597","category":"fallback-mode","severity":"warning","nama":"Yuda Nugraha","kar_id":"1597"},{"timestamp":"2026-05-08 08:05:04","raw_log":"[2026-05-08 08:05:04] \u26a0 FALLBACK: Using time-based detection pagi for 1597 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1597 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:05:04","raw_log":"[2026-05-08 08:05:04] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Yuda Nugraha, kar_id=1597","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Yuda Nugraha, kar_id=1597","category":"unknown","severity":"info","nama":"Yuda Nugraha","kar_id":"1597"},{"timestamp":"2026-05-08 08:05:04","raw_log":"[2026-05-08 08:05:04] Check-in: keputusan=berhasil, nama=Yuda Nugraha, kar_id=1597, id_absensi=207204545, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Yuda Nugraha, kar_id=1597, id_absensi=207204545, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Yuda Nugraha","kar_id":"1597","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 08:06:02","raw_log":"[2026-05-08 08:06:02] \u2717 REJECTED: No schedule found for 731 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 731 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:06:02","raw_log":"[2026-05-08 08:06:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Ahmad Mulya, kar_id=731","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Ahmad Mulya, kar_id=731","category":"fallback-mode","severity":"warning","nama":"Ahmad Mulya","kar_id":"731"},{"timestamp":"2026-05-08 08:06:02","raw_log":"[2026-05-08 08:06:02] \u26a0 FALLBACK: Using time-based detection pagi for 731 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 731 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:06:02","raw_log":"[2026-05-08 08:06:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Ahmad Mulya, kar_id=731","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Ahmad Mulya, kar_id=731","category":"unknown","severity":"info","nama":"Ahmad Mulya","kar_id":"731"},{"timestamp":"2026-05-08 08:06:02","raw_log":"[2026-05-08 08:06:02] Check-in: keputusan=berhasil, nama=Ahmad Mulya, kar_id=731, id_absensi=207204547, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Ahmad Mulya, kar_id=731, id_absensi=207204547, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Ahmad Mulya","kar_id":"731","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 08:06:02","raw_log":"[2026-05-08 08:06:02] Checkout: keputusan=berhasil, nama=Indera Waskita, kar_id=622, id_absensi=207204441, shift=malam, jam_kerja=8.48 jam, sumber=schedule","message":"Checkout: keputusan=berhasil, nama=Indera Waskita, kar_id=622, id_absensi=207204441, shift=malam, jam_kerja=8.48 jam, sumber=schedule","category":"checkout-berhasil","severity":"success","nama":"Indera Waskita","kar_id":"622","shift":"malam","source":"schedule"},{"timestamp":"2026-05-08 08:06:03","raw_log":"[2026-05-08 08:06:03] \u2717 REJECTED: No schedule found for 371 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 371 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:06:03","raw_log":"[2026-05-08 08:06:03] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Bhakti Purnama Prasetyo, kar_id=371","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Bhakti Purnama Prasetyo, kar_id=371","category":"fallback-mode","severity":"warning","nama":"Bhakti Purnama Prasetyo","kar_id":"371"},{"timestamp":"2026-05-08 08:06:03","raw_log":"[2026-05-08 08:06:03] \u26a0 FALLBACK: Using time-based detection pagi for 371 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 371 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:06:03","raw_log":"[2026-05-08 08:06:03] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Bhakti Purnama Prasetyo, kar_id=371","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Bhakti Purnama Prasetyo, kar_id=371","category":"unknown","severity":"info","nama":"Bhakti Purnama Prasetyo","kar_id":"371"},{"timestamp":"2026-05-08 08:06:03","raw_log":"[2026-05-08 08:06:03] Check-in: keputusan=berhasil, nama=Bhakti Purnama Prasetyo, kar_id=371, id_absensi=207204548, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Bhakti Purnama Prasetyo, kar_id=371, id_absensi=207204548, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Bhakti Purnama Prasetyo","kar_id":"371","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 08:08:02","raw_log":"[2026-05-08 08:08:02] \u2717 REJECTED: No schedule found for 1746 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1746 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:08:02","raw_log":"[2026-05-08 08:08:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Deilan Mellandri, kar_id=1746","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Deilan Mellandri, kar_id=1746","category":"fallback-mode","severity":"warning","nama":"Deilan Mellandri","kar_id":"1746"},{"timestamp":"2026-05-08 08:08:02","raw_log":"[2026-05-08 08:08:02] \u26a0 FALLBACK: Using time-based detection pagi for 1746 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1746 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:08:02","raw_log":"[2026-05-08 08:08:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Deilan Mellandri, kar_id=1746","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Deilan Mellandri, kar_id=1746","category":"unknown","severity":"info","nama":"Deilan Mellandri","kar_id":"1746"},{"timestamp":"2026-05-08 08:08:02","raw_log":"[2026-05-08 08:08:02] Check-in: keputusan=berhasil, nama=Deilan Mellandri, kar_id=1746, id_absensi=207204550, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Deilan Mellandri, kar_id=1746, id_absensi=207204550, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Deilan Mellandri","kar_id":"1746","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 08:09:02","raw_log":"[2026-05-08 08:09:02] \u2717 REJECTED: No schedule found for 1352 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1352 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:09:02","raw_log":"[2026-05-08 08:09:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Romi Rahadian, kar_id=1352","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Romi Rahadian, kar_id=1352","category":"fallback-mode","severity":"warning","nama":"Romi Rahadian","kar_id":"1352"},{"timestamp":"2026-05-08 08:09:02","raw_log":"[2026-05-08 08:09:02] \u26a0 FALLBACK: Using time-based detection pagi for 1352 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1352 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:09:02","raw_log":"[2026-05-08 08:09:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Romi Rahadian, kar_id=1352","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Romi Rahadian, kar_id=1352","category":"unknown","severity":"info","nama":"Romi Rahadian","kar_id":"1352"},{"timestamp":"2026-05-08 08:09:02","raw_log":"[2026-05-08 08:09:02] Check-in: keputusan=berhasil, nama=Romi Rahadian, kar_id=1352, id_absensi=207204553, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Romi Rahadian, kar_id=1352, id_absensi=207204553, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Romi Rahadian","kar_id":"1352","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 08:10:02","raw_log":"[2026-05-08 08:10:02] \u2717 REJECTED: No schedule found for 1310 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1310 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:10:02","raw_log":"[2026-05-08 08:10:02] \u2717 ENFORCING SCHEDULE: Coverage 50%, rejecting event without schedule for nama=Dwiki Hanifah Bahtiar, kar_id=1310","message":"\u2717 ENFORCING SCHEDULE: Coverage 50%, rejecting event without schedule for nama=Dwiki Hanifah Bahtiar, kar_id=1310","category":"strict-reject","severity":"error","nama":"Dwiki Hanifah Bahtiar","kar_id":"1310"},{"timestamp":"2026-05-08 08:10:02","raw_log":"[2026-05-08 08:10:02] Check-in: keputusan=ditolak, nama=Dwiki Hanifah Bahtiar, kar_id=1310, alasan=event tanpa jadwal (kebijakan jadwal wajib); tidak ada insert ke trs_absensi","message":"Check-in: keputusan=ditolak, nama=Dwiki Hanifah Bahtiar, kar_id=1310, alasan=event tanpa jadwal (kebijakan jadwal wajib); tidak ada insert ke trs_absensi","category":"check-in-ditolak","severity":"error","nama":"Dwiki Hanifah Bahtiar","kar_id":"1310","alasan":"event tanpa jadwal (kebijakan jadwal wajib); tidak ada insert ke trs_absensi"},{"timestamp":"2026-05-08 08:11:02","raw_log":"[2026-05-08 08:11:02] \u2717 REJECTED: No schedule found for 614 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 614 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:11:02","raw_log":"[2026-05-08 08:11:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Gilang Ramdani, kar_id=614","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Gilang Ramdani, kar_id=614","category":"fallback-mode","severity":"warning","nama":"Gilang Ramdani","kar_id":"614"},{"timestamp":"2026-05-08 08:11:02","raw_log":"[2026-05-08 08:11:02] \u26a0 FALLBACK: Using time-based detection pagi for 614 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 614 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:11:02","raw_log":"[2026-05-08 08:11:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Gilang Ramdani, kar_id=614","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Gilang Ramdani, kar_id=614","category":"unknown","severity":"info","nama":"Gilang Ramdani","kar_id":"614"},{"timestamp":"2026-05-08 08:11:02","raw_log":"[2026-05-08 08:11:02] Check-in: keputusan=berhasil, nama=Gilang Ramdani, kar_id=614, id_absensi=207204555, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Gilang Ramdani, kar_id=614, id_absensi=207204555, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Gilang Ramdani","kar_id":"614","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 08:11:03","raw_log":"[2026-05-08 08:11:03] \u2717 REJECTED: No schedule found for 749 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 749 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:11:03","raw_log":"[2026-05-08 08:11:03] \u2717 ENFORCING SCHEDULE: Coverage 75%, rejecting event without schedule for nama=M. Naufal Abel Rafy, kar_id=749","message":"\u2717 ENFORCING SCHEDULE: Coverage 75%, rejecting event without schedule for nama=M. Naufal Abel Rafy, kar_id=749","category":"strict-reject","severity":"error","nama":"M. Naufal Abel Rafy","kar_id":"749"},{"timestamp":"2026-05-08 08:11:03","raw_log":"[2026-05-08 08:11:03] Check-in: keputusan=ditolak, nama=M. Naufal Abel Rafy, kar_id=749, alasan=event tanpa jadwal (kebijakan jadwal wajib); tidak ada insert ke trs_absensi","message":"Check-in: keputusan=ditolak, nama=M. Naufal Abel Rafy, kar_id=749, alasan=event tanpa jadwal (kebijakan jadwal wajib); tidak ada insert ke trs_absensi","category":"check-in-ditolak","severity":"error","nama":"M. Naufal Abel Rafy","kar_id":"749","alasan":"event tanpa jadwal (kebijakan jadwal wajib); tidak ada insert ke trs_absensi"},{"timestamp":"2026-05-08 08:11:03","raw_log":"[2026-05-08 08:11:03] \u2717 REJECTED: No schedule found for 294 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 294 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:11:03","raw_log":"[2026-05-08 08:11:03] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Chandra Mahesa Trisana, kar_id=294","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Chandra Mahesa Trisana, kar_id=294","category":"fallback-mode","severity":"warning","nama":"Chandra Mahesa Trisana","kar_id":"294"},{"timestamp":"2026-05-08 08:11:03","raw_log":"[2026-05-08 08:11:03] \u26a0 FALLBACK: Using time-based detection pagi for 294 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 294 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:11:03","raw_log":"[2026-05-08 08:11:03] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Chandra Mahesa Trisana, kar_id=294","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Chandra Mahesa Trisana, kar_id=294","category":"unknown","severity":"info","nama":"Chandra Mahesa Trisana","kar_id":"294"},{"timestamp":"2026-05-08 08:11:03","raw_log":"[2026-05-08 08:11:03] Check-in: keputusan=berhasil, nama=Chandra Mahesa Trisana, kar_id=294, id_absensi=207204556, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Chandra Mahesa Trisana, kar_id=294, id_absensi=207204556, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Chandra Mahesa Trisana","kar_id":"294","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 08:12:02","raw_log":"[2026-05-08 08:12:02] \u2717 REJECTED: No schedule found for 1732 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1732 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:12:02","raw_log":"[2026-05-08 08:12:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Novia Az-Zahra, kar_id=1732","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Novia Az-Zahra, kar_id=1732","category":"fallback-mode","severity":"warning","nama":"Novia Az-Zahra","kar_id":"1732"},{"timestamp":"2026-05-08 08:12:02","raw_log":"[2026-05-08 08:12:02] \u26a0 FALLBACK: Using time-based detection pagi for 1732 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1732 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:12:02","raw_log":"[2026-05-08 08:12:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Novia Az-Zahra, kar_id=1732","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Novia Az-Zahra, kar_id=1732","category":"unknown","severity":"info","nama":"Novia Az-Zahra","kar_id":"1732"},{"timestamp":"2026-05-08 08:12:02","raw_log":"[2026-05-08 08:12:02] Check-in: keputusan=berhasil, nama=Novia Az-Zahra, kar_id=1732, id_absensi=207204557, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Novia Az-Zahra, kar_id=1732, id_absensi=207204557, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Novia Az-Zahra","kar_id":"1732","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 08:12:03","raw_log":"[2026-05-08 08:12:03] \u2717 REJECTED: No schedule found for 1562 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1562 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:12:03","raw_log":"[2026-05-08 08:12:03] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Guntur Pratama Putra, kar_id=1562","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Guntur Pratama Putra, kar_id=1562","category":"fallback-mode","severity":"warning","nama":"Guntur Pratama Putra","kar_id":"1562"},{"timestamp":"2026-05-08 08:12:03","raw_log":"[2026-05-08 08:12:03] \u26a0 FALLBACK: Using time-based detection pagi for 1562 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1562 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:12:03","raw_log":"[2026-05-08 08:12:03] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Guntur Pratama Putra, kar_id=1562","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Guntur Pratama Putra, kar_id=1562","category":"unknown","severity":"info","nama":"Guntur Pratama Putra","kar_id":"1562"},{"timestamp":"2026-05-08 08:12:03","raw_log":"[2026-05-08 08:12:03] Check-in: keputusan=berhasil, nama=Guntur Pratama Putra, kar_id=1562, id_absensi=207204558, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Guntur Pratama Putra, kar_id=1562, id_absensi=207204558, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Guntur Pratama Putra","kar_id":"1562","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 08:14:02","raw_log":"[2026-05-08 08:14:02] \u2717 REJECTED: No schedule found for 1722 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1722 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:14:02","raw_log":"[2026-05-08 08:14:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Andika Satria Putra Ramadan, kar_id=1722","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Andika Satria Putra Ramadan, kar_id=1722","category":"fallback-mode","severity":"warning","nama":"Andika Satria Putra Ramadan","kar_id":"1722"},{"timestamp":"2026-05-08 08:14:02","raw_log":"[2026-05-08 08:14:02] \u26a0 FALLBACK: Using time-based detection pagi for 1722 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1722 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:14:02","raw_log":"[2026-05-08 08:14:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Andika Satria Putra Ramadan, kar_id=1722","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Andika Satria Putra Ramadan, kar_id=1722","category":"unknown","severity":"info","nama":"Andika Satria Putra Ramadan","kar_id":"1722"},{"timestamp":"2026-05-08 08:14:02","raw_log":"[2026-05-08 08:14:02] Check-in: keputusan=berhasil, nama=Andika Satria Putra Ramadan, kar_id=1722, id_absensi=207204561, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Andika Satria Putra Ramadan, kar_id=1722, id_absensi=207204561, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Andika Satria Putra Ramadan","kar_id":"1722","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 08:17:02","raw_log":"[2026-05-08 08:17:02] \u2717 REJECTED: No schedule found for 1698 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1698 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:17:02","raw_log":"[2026-05-08 08:17:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Andreano Syaifurahman, kar_id=1698","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Andreano Syaifurahman, kar_id=1698","category":"fallback-mode","severity":"warning","nama":"Andreano Syaifurahman","kar_id":"1698"},{"timestamp":"2026-05-08 08:17:02","raw_log":"[2026-05-08 08:17:02] \u26a0 FALLBACK: Using time-based detection pagi for 1698 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1698 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:17:02","raw_log":"[2026-05-08 08:17:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Andreano Syaifurahman, kar_id=1698","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Andreano Syaifurahman, kar_id=1698","category":"unknown","severity":"info","nama":"Andreano Syaifurahman","kar_id":"1698"},{"timestamp":"2026-05-08 08:17:02","raw_log":"[2026-05-08 08:17:02] Check-in: keputusan=berhasil, nama=Andreano Syaifurahman, kar_id=1698, id_absensi=207204562, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Andreano Syaifurahman, kar_id=1698, id_absensi=207204562, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Andreano Syaifurahman","kar_id":"1698","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 08:18:02","raw_log":"[2026-05-08 08:18:02] \u26a0 FALLBACK: Using time-based detection malam for 470 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection malam for 470 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:18:02","raw_log":"[2026-05-08 08:18:02] \u26a0 FALLBACK checkout validation for 470 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 470 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:18:02","raw_log":"[2026-05-08 08:18:02] Checkout: keputusan=berhasil, nama=Fathur Sanusi, kar_id=470, id_absensi=207204440, shift=malam, jam_kerja=9.36 jam, sumber=fallback","message":"Checkout: keputusan=berhasil, nama=Fathur Sanusi, kar_id=470, id_absensi=207204440, shift=malam, jam_kerja=9.36 jam, sumber=fallback","category":"checkout-berhasil","severity":"success","nama":"Fathur Sanusi","kar_id":"470","shift":"malam","source":"fallback"},{"timestamp":"2026-05-08 08:18:02","raw_log":"[2026-05-08 08:18:02] \u26a0 FALLBACK: Using time-based detection malam for 550 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection malam for 550 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:18:02","raw_log":"[2026-05-08 08:18:02] \u26a0 FALLBACK checkout validation for 550 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 550 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:18:02","raw_log":"[2026-05-08 08:18:02] Checkout: keputusan=berhasil, nama=Ilham Indra Illyasa, kar_id=550, id_absensi=207204439, shift=malam, jam_kerja=10.19 jam, sumber=fallback","message":"Checkout: keputusan=berhasil, nama=Ilham Indra Illyasa, kar_id=550, id_absensi=207204439, shift=malam, jam_kerja=10.19 jam, sumber=fallback","category":"checkout-berhasil","severity":"success","nama":"Ilham Indra Illyasa","kar_id":"550","shift":"malam","source":"fallback"},{"timestamp":"2026-05-08 08:21:02","raw_log":"[2026-05-08 08:21:02] \u2717 REJECTED: No schedule found for 636 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 636 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:21:02","raw_log":"[2026-05-08 08:21:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Siti Fatimah, kar_id=636","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Siti Fatimah, kar_id=636","category":"fallback-mode","severity":"warning","nama":"Siti Fatimah","kar_id":"636"},{"timestamp":"2026-05-08 08:21:02","raw_log":"[2026-05-08 08:21:02] \u26a0 FALLBACK: Using time-based detection pagi for 636 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 636 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:21:02","raw_log":"[2026-05-08 08:21:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Siti Fatimah, kar_id=636","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Siti Fatimah, kar_id=636","category":"unknown","severity":"info","nama":"Siti Fatimah","kar_id":"636"},{"timestamp":"2026-05-08 08:21:02","raw_log":"[2026-05-08 08:21:02] Check-in: keputusan=berhasil, nama=Siti Fatimah, kar_id=636, id_absensi=207204564, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Siti Fatimah, kar_id=636, id_absensi=207204564, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Siti Fatimah","kar_id":"636","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 08:21:03","raw_log":"[2026-05-08 08:21:03] \u2717 REJECTED: No schedule found for 1715 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1715 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:21:03","raw_log":"[2026-05-08 08:21:03] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Alya Azhar Haura Putri, kar_id=1715","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Alya Azhar Haura Putri, kar_id=1715","category":"fallback-mode","severity":"warning","nama":"Alya Azhar Haura Putri","kar_id":"1715"},{"timestamp":"2026-05-08 08:21:03","raw_log":"[2026-05-08 08:21:03] \u26a0 FALLBACK: Using time-based detection pagi for 1715 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1715 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:21:03","raw_log":"[2026-05-08 08:21:03] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Alya Azhar Haura Putri, kar_id=1715","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Alya Azhar Haura Putri, kar_id=1715","category":"unknown","severity":"info","nama":"Alya Azhar Haura Putri","kar_id":"1715"},{"timestamp":"2026-05-08 08:21:03","raw_log":"[2026-05-08 08:21:03] Check-in: keputusan=berhasil, nama=Alya Azhar Haura Putri, kar_id=1715, id_absensi=207204565, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Alya Azhar Haura Putri, kar_id=1715, id_absensi=207204565, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Alya Azhar Haura Putri","kar_id":"1715","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 08:26:02","raw_log":"[2026-05-08 08:26:02] \u2717 REJECTED: No schedule found for 684 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 684 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:26:02","raw_log":"[2026-05-08 08:26:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Angga Reza Mahendra, kar_id=684","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Angga Reza Mahendra, kar_id=684","category":"fallback-mode","severity":"warning","nama":"Angga Reza Mahendra","kar_id":"684"},{"timestamp":"2026-05-08 08:26:02","raw_log":"[2026-05-08 08:26:02] \u26a0 FALLBACK: Using time-based detection pagi for 684 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 684 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:26:02","raw_log":"[2026-05-08 08:26:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Angga Reza Mahendra, kar_id=684","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Angga Reza Mahendra, kar_id=684","category":"unknown","severity":"info","nama":"Angga Reza Mahendra","kar_id":"684"},{"timestamp":"2026-05-08 08:26:02","raw_log":"[2026-05-08 08:26:02] Check-in: keputusan=berhasil, nama=Angga Reza Mahendra, kar_id=684, id_absensi=207204566, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Angga Reza Mahendra, kar_id=684, id_absensi=207204566, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Angga Reza Mahendra","kar_id":"684","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 08:31:02","raw_log":"[2026-05-08 08:31:02] \u2717 REJECTED: No schedule found for 1737 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1737 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:31:02","raw_log":"[2026-05-08 08:31:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Taufik Rahman Hakim, kar_id=1737","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Taufik Rahman Hakim, kar_id=1737","category":"fallback-mode","severity":"warning","nama":"Taufik Rahman Hakim","kar_id":"1737"},{"timestamp":"2026-05-08 08:31:02","raw_log":"[2026-05-08 08:31:02] \u26a0 FALLBACK: Using time-based detection pagi for 1737 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1737 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:31:02","raw_log":"[2026-05-08 08:31:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Taufik Rahman Hakim, kar_id=1737","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Taufik Rahman Hakim, kar_id=1737","category":"unknown","severity":"info","nama":"Taufik Rahman Hakim","kar_id":"1737"},{"timestamp":"2026-05-08 08:31:02","raw_log":"[2026-05-08 08:31:02] Check-in: keputusan=berhasil, nama=Taufik Rahman Hakim, kar_id=1737, id_absensi=207204567, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Taufik Rahman Hakim, kar_id=1737, id_absensi=207204567, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Taufik Rahman Hakim","kar_id":"1737","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 08:44:02","raw_log":"[2026-05-08 08:44:02] \u2717 REJECTED: No schedule found for 676 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 676 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:44:02","raw_log":"[2026-05-08 08:44:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Anggra, kar_id=676","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Anggra, kar_id=676","category":"fallback-mode","severity":"warning","nama":"Anggra","kar_id":"676"},{"timestamp":"2026-05-08 08:44:02","raw_log":"[2026-05-08 08:44:02] \u26a0 FALLBACK: Using time-based detection pagi for 676 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 676 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 08:44:02","raw_log":"[2026-05-08 08:44:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Anggra, kar_id=676","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Anggra, kar_id=676","category":"unknown","severity":"info","nama":"Anggra","kar_id":"676"},{"timestamp":"2026-05-08 08:44:02","raw_log":"[2026-05-08 08:44:02] Check-in: keputusan=berhasil, nama=Anggra, kar_id=676, id_absensi=207204573, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Anggra, kar_id=676, id_absensi=207204573, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Anggra","kar_id":"676","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 09:16:03","raw_log":"[2026-05-08 09:16:03] \u2717 REJECTED: No schedule found for 719 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 719 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 09:16:03","raw_log":"[2026-05-08 09:16:03] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Ridwan Lesmana, kar_id=719","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Ridwan Lesmana, kar_id=719","category":"fallback-mode","severity":"warning","nama":"Ridwan Lesmana","kar_id":"719"},{"timestamp":"2026-05-08 09:16:03","raw_log":"[2026-05-08 09:16:03] \u26a0 FALLBACK: Using time-based detection pagi for 719 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 719 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 09:16:03","raw_log":"[2026-05-08 09:16:03] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Ridwan Lesmana, kar_id=719","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Ridwan Lesmana, kar_id=719","category":"unknown","severity":"info","nama":"Ridwan Lesmana","kar_id":"719"},{"timestamp":"2026-05-08 09:16:03","raw_log":"[2026-05-08 09:16:03] Check-in: keputusan=berhasil, nama=Ridwan Lesmana, kar_id=719, id_absensi=207204576, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Ridwan Lesmana, kar_id=719, id_absensi=207204576, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Ridwan Lesmana","kar_id":"719","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 09:52:02","raw_log":"[2026-05-08 09:52:02] \u2717 REJECTED: No schedule found for 302 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 302 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 09:52:02","raw_log":"[2026-05-08 09:52:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Nunung Unangsih, kar_id=302","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Nunung Unangsih, kar_id=302","category":"fallback-mode","severity":"warning","nama":"Nunung Unangsih","kar_id":"302"},{"timestamp":"2026-05-08 09:52:02","raw_log":"[2026-05-08 09:52:02] \u26a0 FALLBACK: Using time-based detection pagi for 302 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 302 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 09:52:02","raw_log":"[2026-05-08 09:52:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Nunung Unangsih, kar_id=302","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Nunung Unangsih, kar_id=302","category":"unknown","severity":"info","nama":"Nunung Unangsih","kar_id":"302"},{"timestamp":"2026-05-08 09:52:02","raw_log":"[2026-05-08 09:52:02] Check-in: keputusan=berhasil, nama=Nunung Unangsih, kar_id=302, id_absensi=207204581, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Nunung Unangsih, kar_id=302, id_absensi=207204581, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Nunung Unangsih","kar_id":"302","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-08 10:17:02","raw_log":"[2026-05-08 10:17:02] \u2717 REJECTED: No schedule found for 442 on 2026-05-08 (strict mode)","message":"\u2717 REJECTED: No schedule found for 442 on 2026-05-08 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 10:17:02","raw_log":"[2026-05-08 10:17:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Ranty Soeny Paraswaty, kar_id=442","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Ranty Soeny Paraswaty, kar_id=442","category":"fallback-mode","severity":"warning","nama":"Ranty Soeny Paraswaty","kar_id":"442"},{"timestamp":"2026-05-08 10:17:02","raw_log":"[2026-05-08 10:17:02] \u26a0 FALLBACK: Using time-based detection pagi for 442 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 442 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-08 10:17:02","raw_log":"[2026-05-08 10:17:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Ranty Soeny Paraswaty, kar_id=442","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Ranty Soeny Paraswaty, kar_id=442","category":"unknown","severity":"info","nama":"Ranty Soeny Paraswaty","kar_id":"442"},{"timestamp":"2026-05-08 10:17:02","raw_log":"[2026-05-08 10:17:02] Check-in: keputusan=berhasil, nama=Ranty Soeny Paraswaty, kar_id=442, id_absensi=207204582, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Ranty Soeny Paraswaty, kar_id=442, id_absensi=207204582, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Ranty Soeny Paraswaty","kar_id":"442","shift":"pagi","source":"fallback"}]}