{"timestamp":1790620294,"date":"history_2026-09-28","data":[{"timestamp":"2026-09-28 00:25:21","raw_log":"[2026-09-28 00:25:21] Check-in: keputusan=berhasil, nama=M. Naufal Abel Rafy, kar_id=749, id_absensi=207220265, shift=malam, sumber=schedule","message":"Check-in: keputusan=berhasil, nama=M. Naufal Abel Rafy, kar_id=749, id_absensi=207220265, shift=malam, sumber=schedule","category":"check-in-berhasil","severity":"success","nama":"M. Naufal Abel Rafy","kar_id":"749","shift":"malam","source":"schedule"},{"timestamp":"2026-09-28 03:35:13","raw_log":"[2026-09-28 03:35:13] [AIVEN] Koneksi gagal (non-fatal): php_network_getaddresses: getaddrinfo for mysql-1c51190c-mincreng1-656a.h.aivencloud.com failed: No such host is known. ","message":"[AIVEN] Koneksi gagal (non-fatal): php_network_getaddresses: getaddrinfo for mysql-1c51190c-mincreng1-656a.h.aivencloud.com failed: No such host is known.","category":"error","severity":"critical"},{"timestamp":"2026-09-28 06:20:02","raw_log":"[2026-09-28 06:20:02] \u2717 REJECTED: No schedule found for 575 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 575 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 06:20:02","raw_log":"[2026-09-28 06:20:02] \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-09-28 06:20:02","raw_log":"[2026-09-28 06:20:02] \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-09-28 06:20:02","raw_log":"[2026-09-28 06:20:02] \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-09-28 06:20:02","raw_log":"[2026-09-28 06:20:02] Check-in: keputusan=berhasil, nama=Eka Kurnia, kar_id=575, id_absensi=207220275, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Eka Kurnia, kar_id=575, id_absensi=207220275, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Eka Kurnia","kar_id":"575","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 06:22:02","raw_log":"[2026-09-28 06:22:02] \u2717 REJECTED: No schedule found for 543 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 543 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 06:22:02","raw_log":"[2026-09-28 06:22: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-09-28 06:22:02","raw_log":"[2026-09-28 06:22: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-09-28 06:22:02","raw_log":"[2026-09-28 06:22: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-09-28 06:22:02","raw_log":"[2026-09-28 06:22:02] Check-in: keputusan=berhasil, nama=Agus Asep Riki, kar_id=543, id_absensi=207220276, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Agus Asep Riki, kar_id=543, id_absensi=207220276, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Agus Asep Riki","kar_id":"543","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 07:04:01","raw_log":"[2026-09-28 07:04:01] Checkout: keputusan=berhasil, nama=Nandang, kar_id=713, id_absensi=207220263, shift=malam, jam_kerja=12.42 jam, sumber=schedule","message":"Checkout: keputusan=berhasil, nama=Nandang, kar_id=713, id_absensi=207220263, shift=malam, jam_kerja=12.42 jam, sumber=schedule","category":"checkout-berhasil","severity":"success","nama":"Nandang","kar_id":"713","shift":"malam","source":"schedule"},{"timestamp":"2026-09-28 07:21:04","raw_log":"[2026-09-28 07:21:04] \u2717 REJECTED: No schedule found for 1590 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1590 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:21:06","raw_log":"[2026-09-28 07:21:06] \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-09-28 07:21:06","raw_log":"[2026-09-28 07:21:06] \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-09-28 07:21:06","raw_log":"[2026-09-28 07:21:06] \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-09-28 07:21:06","raw_log":"[2026-09-28 07:21:06] Check-in: keputusan=berhasil, nama=Muhammad Husni Mubarok, kar_id=1590, id_absensi=207220293, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Muhammad Husni Mubarok, kar_id=1590, id_absensi=207220293, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Muhammad Husni Mubarok","kar_id":"1590","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 07:26:02","raw_log":"[2026-09-28 07:26:02] \u2717 REJECTED: No schedule found for 862 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 862 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:26:02","raw_log":"[2026-09-28 07:26: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-09-28 07:26:02","raw_log":"[2026-09-28 07:26: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-09-28 07:26:02","raw_log":"[2026-09-28 07:26: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-09-28 07:26:02","raw_log":"[2026-09-28 07:26:02] Check-in: keputusan=berhasil, nama=Desi Anggraeni, kar_id=862, id_absensi=207220298, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Desi Anggraeni, kar_id=862, id_absensi=207220298, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Desi Anggraeni","kar_id":"862","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 07:26:02","raw_log":"[2026-09-28 07:26:02] \u2717 REJECTED: No schedule found for 520 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 520 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:26:02","raw_log":"[2026-09-28 07:26:02] \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-09-28 07:26:02","raw_log":"[2026-09-28 07:26:02] \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-09-28 07:26:02","raw_log":"[2026-09-28 07:26:02] \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-09-28 07:26:02","raw_log":"[2026-09-28 07:26:02] Check-in: keputusan=berhasil, nama=Devi Indah Sari, kar_id=520, id_absensi=207220299, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Devi Indah Sari, kar_id=520, id_absensi=207220299, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Devi Indah Sari","kar_id":"520","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 07:27:02","raw_log":"[2026-09-28 07:27:02] \u2717 REJECTED: No schedule found for 1758 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1758 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:27:02","raw_log":"[2026-09-28 07:27:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Al Fath Arda Jatikusuma, kar_id=1758","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Al Fath Arda Jatikusuma, kar_id=1758","category":"fallback-mode","severity":"warning","nama":"Al Fath Arda Jatikusuma","kar_id":"1758"},{"timestamp":"2026-09-28 07:27:02","raw_log":"[2026-09-28 07:27:02] \u26a0 FALLBACK: Using time-based detection pagi for 1758 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1758 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:27:02","raw_log":"[2026-09-28 07:27:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Al Fath Arda Jatikusuma, kar_id=1758","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Al Fath Arda Jatikusuma, kar_id=1758","category":"unknown","severity":"info","nama":"Al Fath Arda Jatikusuma","kar_id":"1758"},{"timestamp":"2026-09-28 07:27:02","raw_log":"[2026-09-28 07:27:02] Check-in: keputusan=berhasil, nama=Al Fath Arda Jatikusuma, kar_id=1758, id_absensi=207220303, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Al Fath Arda Jatikusuma, kar_id=1758, id_absensi=207220303, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Al Fath Arda Jatikusuma","kar_id":"1758","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 07:31:02","raw_log":"[2026-09-28 07:31:02] \u2717 REJECTED: No schedule found for 560 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 560 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:31:02","raw_log":"[2026-09-28 07:31:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Dedi Cahyadi, kar_id=560","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Dedi Cahyadi, kar_id=560","category":"fallback-mode","severity":"warning","nama":"Dedi Cahyadi","kar_id":"560"},{"timestamp":"2026-09-28 07:31:02","raw_log":"[2026-09-28 07:31:02] \u26a0 FALLBACK: Using time-based detection pagi for 560 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 560 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:31:02","raw_log":"[2026-09-28 07:31:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Dedi Cahyadi, kar_id=560","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Dedi Cahyadi, kar_id=560","category":"unknown","severity":"info","nama":"Dedi Cahyadi","kar_id":"560"},{"timestamp":"2026-09-28 07:31:02","raw_log":"[2026-09-28 07:31:02] Check-in: keputusan=berhasil, nama=Dedi Cahyadi, kar_id=560, id_absensi=207220308, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Dedi Cahyadi, kar_id=560, id_absensi=207220308, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Dedi Cahyadi","kar_id":"560","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 07:34:02","raw_log":"[2026-09-28 07:34:02] \u2717 REJECTED: No schedule found for 481 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 481 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:34:02","raw_log":"[2026-09-28 07:34: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-09-28 07:34:02","raw_log":"[2026-09-28 07:34: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-09-28 07:34:02","raw_log":"[2026-09-28 07:34: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-09-28 07:34:02","raw_log":"[2026-09-28 07:34:02] Check-in: keputusan=berhasil, nama=Rezcky Septian Hartono, kar_id=481, id_absensi=207220312, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Rezcky Septian Hartono, kar_id=481, id_absensi=207220312, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Rezcky Septian Hartono","kar_id":"481","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 07:37:02","raw_log":"[2026-09-28 07:37:02] \u2717 REJECTED: No schedule found for 193 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 193 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:37:02","raw_log":"[2026-09-28 07:37:02] \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-09-28 07:37:02","raw_log":"[2026-09-28 07:37:02] \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-09-28 07:37:02","raw_log":"[2026-09-28 07:37:02] \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-09-28 07:37:02","raw_log":"[2026-09-28 07:37:02] Check-in: keputusan=berhasil, nama=Anggi Nugraha, kar_id=193, id_absensi=207220313, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Anggi Nugraha, kar_id=193, id_absensi=207220313, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Anggi Nugraha","kar_id":"193","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 07:38:02","raw_log":"[2026-09-28 07:38:02] \u2717 REJECTED: No schedule found for 1745 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1745 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:38:02","raw_log":"[2026-09-28 07:38: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-09-28 07:38:02","raw_log":"[2026-09-28 07:38: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-09-28 07:38:02","raw_log":"[2026-09-28 07:38: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-09-28 07:38:02","raw_log":"[2026-09-28 07:38:02] Check-in: keputusan=berhasil, nama=Agus Irsan Saefuloh, kar_id=1745, id_absensi=207220314, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Agus Irsan Saefuloh, kar_id=1745, id_absensi=207220314, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Agus Irsan Saefuloh","kar_id":"1745","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 07:45:03","raw_log":"[2026-09-28 07:45:03] \u2717 REJECTED: No schedule found for 697 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 697 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:45:03","raw_log":"[2026-09-28 07:45:03] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Rivkey Raka Bima Ardiansyah, kar_id=697","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Rivkey Raka Bima Ardiansyah, kar_id=697","category":"fallback-mode","severity":"warning","nama":"Rivkey Raka Bima Ardiansyah","kar_id":"697"},{"timestamp":"2026-09-28 07:45:03","raw_log":"[2026-09-28 07:45:03] \u26a0 FALLBACK: Using time-based detection pagi for 697 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 697 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:45:03","raw_log":"[2026-09-28 07:45:03] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Rivkey Raka Bima Ardiansyah, kar_id=697","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Rivkey Raka Bima Ardiansyah, kar_id=697","category":"unknown","severity":"info","nama":"Rivkey Raka Bima Ardiansyah","kar_id":"697"},{"timestamp":"2026-09-28 07:45:03","raw_log":"[2026-09-28 07:45:03] Check-in: keputusan=berhasil, nama=Rivkey Raka Bima Ardiansyah, kar_id=697, id_absensi=207220321, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Rivkey Raka Bima Ardiansyah, kar_id=697, id_absensi=207220321, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Rivkey Raka Bima Ardiansyah","kar_id":"697","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 07:46:03","raw_log":"[2026-09-28 07:46:03] \u2717 REJECTED: No schedule found for 477 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 477 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:46:03","raw_log":"[2026-09-28 07:46:03] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Muhammad  Rifki Rahman Andita, kar_id=477","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Muhammad  Rifki Rahman Andita, kar_id=477","category":"fallback-mode","severity":"warning","nama":"Muhammad  Rifki Rahman Andita","kar_id":"477"},{"timestamp":"2026-09-28 07:46:03","raw_log":"[2026-09-28 07:46:03] \u26a0 FALLBACK: Using time-based detection pagi for 477 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 477 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:46:03","raw_log":"[2026-09-28 07:46:03] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Muhammad  Rifki Rahman Andita, kar_id=477","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Muhammad  Rifki Rahman Andita, kar_id=477","category":"unknown","severity":"info","nama":"Muhammad  Rifki Rahman Andita","kar_id":"477"},{"timestamp":"2026-09-28 07:46:03","raw_log":"[2026-09-28 07:46:03] Check-in: keputusan=berhasil, nama=Muhammad  Rifki Rahman Andita, kar_id=477, id_absensi=207220322, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Muhammad  Rifki Rahman Andita, kar_id=477, id_absensi=207220322, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Muhammad  Rifki Rahman Andita","kar_id":"477","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 07:47:03","raw_log":"[2026-09-28 07:47:03] \u2717 REJECTED: No schedule found for 1037 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1037 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:47:03","raw_log":"[2026-09-28 07:47:03] \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-09-28 07:47:03","raw_log":"[2026-09-28 07:47:03] \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-09-28 07:47:03","raw_log":"[2026-09-28 07:47:03] \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-09-28 07:47:03","raw_log":"[2026-09-28 07:47:03] Check-in: keputusan=berhasil, nama=Alisya Salma Indriati, kar_id=1037, id_absensi=207220323, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Alisya Salma Indriati, kar_id=1037, id_absensi=207220323, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Alisya Salma Indriati","kar_id":"1037","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 07:47:03","raw_log":"[2026-09-28 07:47:03] \u2717 REJECTED: No schedule found for 622 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 622 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:47:03","raw_log":"[2026-09-28 07:47:03] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Indera Waskita, kar_id=622","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Indera Waskita, kar_id=622","category":"fallback-mode","severity":"warning","nama":"Indera Waskita","kar_id":"622"},{"timestamp":"2026-09-28 07:47:03","raw_log":"[2026-09-28 07:47:03] \u26a0 FALLBACK: Using time-based detection pagi for 622 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 622 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:47:03","raw_log":"[2026-09-28 07:47:03] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Indera Waskita, kar_id=622","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Indera Waskita, kar_id=622","category":"unknown","severity":"info","nama":"Indera Waskita","kar_id":"622"},{"timestamp":"2026-09-28 07:47:03","raw_log":"[2026-09-28 07:47:03] Check-in: keputusan=berhasil, nama=Indera Waskita, kar_id=622, id_absensi=207220324, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Indera Waskita, kar_id=622, id_absensi=207220324, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Indera Waskita","kar_id":"622","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 07:47:04","raw_log":"[2026-09-28 07:47:04] \u2717 REJECTED: No schedule found for 666 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 666 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:47:04","raw_log":"[2026-09-28 07:47:04] \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-09-28 07:47:04","raw_log":"[2026-09-28 07:47:04] \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-09-28 07:47:04","raw_log":"[2026-09-28 07:47:04] \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-09-28 07:47:04","raw_log":"[2026-09-28 07:47:04] Check-in: keputusan=berhasil, nama=Muhammad Rizki Permana, kar_id=666, id_absensi=207220325, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Muhammad Rizki Permana, kar_id=666, id_absensi=207220325, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Muhammad Rizki Permana","kar_id":"666","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 07:51:03","raw_log":"[2026-09-28 07:51:03] \u2717 REJECTED: No schedule found for 717 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 717 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:51:03","raw_log":"[2026-09-28 07:51:03] \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-09-28 07:51:03","raw_log":"[2026-09-28 07:51:03] \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-09-28 07:51:03","raw_log":"[2026-09-28 07:51:03] \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-09-28 07:51:03","raw_log":"[2026-09-28 07:51:03] Check-in: keputusan=berhasil, nama=Kiki Kurniawan, kar_id=717, id_absensi=207220332, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Kiki Kurniawan, kar_id=717, id_absensi=207220332, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Kiki Kurniawan","kar_id":"717","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 07:52:02","raw_log":"[2026-09-28 07:52:02] \u2717 REJECTED: No schedule found for 696 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 696 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:52:02","raw_log":"[2026-09-28 07:52: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-09-28 07:52:02","raw_log":"[2026-09-28 07:52: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-09-28 07:52:02","raw_log":"[2026-09-28 07:52: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-09-28 07:52:02","raw_log":"[2026-09-28 07:52:02] Check-in: keputusan=berhasil, nama=Arief Pribadi Mustafa, kar_id=696, id_absensi=207220333, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Arief Pribadi Mustafa, kar_id=696, id_absensi=207220333, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Arief Pribadi Mustafa","kar_id":"696","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 07:54:02","raw_log":"[2026-09-28 07:54:02] Check-in: keputusan=berhasil, nama=Wildan Azhar, kar_id=347, id_absensi=207220334, shift=malam, sumber=schedule","message":"Check-in: keputusan=berhasil, nama=Wildan Azhar, kar_id=347, id_absensi=207220334, shift=malam, sumber=schedule","category":"check-in-berhasil","severity":"success","nama":"Wildan Azhar","kar_id":"347","shift":"malam","source":"schedule"},{"timestamp":"2026-09-28 07:55:03","raw_log":"[2026-09-28 07:55:03] \u2717 REJECTED: No schedule found for 636 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 636 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:55:03","raw_log":"[2026-09-28 07:55:03] \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-09-28 07:55:03","raw_log":"[2026-09-28 07:55:03] \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-09-28 07:55:03","raw_log":"[2026-09-28 07:55:03] \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-09-28 07:55:03","raw_log":"[2026-09-28 07:55:03] Check-in: keputusan=berhasil, nama=Siti Fatimah, kar_id=636, id_absensi=207220335, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Siti Fatimah, kar_id=636, id_absensi=207220335, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Siti Fatimah","kar_id":"636","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 07:55:03","raw_log":"[2026-09-28 07:55:03] \u2717 REJECTED: No schedule found for 245 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 245 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:55:03","raw_log":"[2026-09-28 07:55: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-09-28 07:55:03","raw_log":"[2026-09-28 07:55: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-09-28 07:55:03","raw_log":"[2026-09-28 07:55: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-09-28 07:55:03","raw_log":"[2026-09-28 07:55:03] Check-in: keputusan=berhasil, nama=Kiki Andriansyah, kar_id=245, id_absensi=207220336, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Kiki Andriansyah, kar_id=245, id_absensi=207220336, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Kiki Andriansyah","kar_id":"245","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 07:55:04","raw_log":"[2026-09-28 07:55:04] \u2717 REJECTED: No schedule found for 1401 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1401 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:55:04","raw_log":"[2026-09-28 07:55:04] \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-09-28 07:55:04","raw_log":"[2026-09-28 07:55:04] \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-09-28 07:55:04","raw_log":"[2026-09-28 07:55:04] \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-09-28 07:55:04","raw_log":"[2026-09-28 07:55:04] Check-in: keputusan=berhasil, nama=Happy Adisti, kar_id=1401, id_absensi=207220337, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Happy Adisti, kar_id=1401, id_absensi=207220337, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Happy Adisti","kar_id":"1401","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 07:57:03","raw_log":"[2026-09-28 07:57:03] \u2717 REJECTED: No schedule found for 386 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 386 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:57:03","raw_log":"[2026-09-28 07:57:03] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Endang, kar_id=386","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Endang, kar_id=386","category":"fallback-mode","severity":"warning","nama":"Endang","kar_id":"386"},{"timestamp":"2026-09-28 07:57:03","raw_log":"[2026-09-28 07:57:03] \u26a0 FALLBACK: Using time-based detection pagi for 386 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 386 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:57:03","raw_log":"[2026-09-28 07:57:03] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Endang, kar_id=386","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Endang, kar_id=386","category":"unknown","severity":"info","nama":"Endang","kar_id":"386"},{"timestamp":"2026-09-28 07:57:03","raw_log":"[2026-09-28 07:57:03] Check-in: keputusan=berhasil, nama=Endang, kar_id=386, id_absensi=207220341, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Endang, kar_id=386, id_absensi=207220341, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Endang","kar_id":"386","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 07:57:03","raw_log":"[2026-09-28 07:57:03] \u2717 REJECTED: No schedule found for 1352 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1352 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:57:03","raw_log":"[2026-09-28 07:57:03] \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-09-28 07:57:03","raw_log":"[2026-09-28 07:57:03] \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-09-28 07:57:03","raw_log":"[2026-09-28 07:57:03] \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-09-28 07:57:03","raw_log":"[2026-09-28 07:57:03] Check-in: keputusan=berhasil, nama=Romi Rahadian, kar_id=1352, id_absensi=207220342, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Romi Rahadian, kar_id=1352, id_absensi=207220342, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Romi Rahadian","kar_id":"1352","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 07:57:04","raw_log":"[2026-09-28 07:57:04] \u2717 REJECTED: No schedule found for 1520 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1520 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:57:04","raw_log":"[2026-09-28 07:57:04] \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-09-28 07:57:04","raw_log":"[2026-09-28 07:57:04] \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-09-28 07:57:04","raw_log":"[2026-09-28 07:57:04] \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-09-28 07:57:04","raw_log":"[2026-09-28 07:57:04] Check-in: keputusan=berhasil, nama=Fadhila Salsabila Ahda, kar_id=1520, id_absensi=207220343, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Fadhila Salsabila Ahda, kar_id=1520, id_absensi=207220343, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Fadhila Salsabila Ahda","kar_id":"1520","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 07:57:05","raw_log":"[2026-09-28 07:57:05] \u2717 REJECTED: No schedule found for 1740 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1740 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:57:05","raw_log":"[2026-09-28 07:57:05] \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-09-28 07:57:05","raw_log":"[2026-09-28 07:57:05] \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-09-28 07:57:05","raw_log":"[2026-09-28 07:57:05] \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-09-28 07:57:05","raw_log":"[2026-09-28 07:57:05] Check-in: keputusan=berhasil, nama=Nadela Siti Nuraisyah, kar_id=1740, id_absensi=207220344, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Nadela Siti Nuraisyah, kar_id=1740, id_absensi=207220344, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Nadela Siti Nuraisyah","kar_id":"1740","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 07:58:02","raw_log":"[2026-09-28 07:58:02] \u2717 REJECTED: No schedule found for 590 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 590 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:58:02","raw_log":"[2026-09-28 07:58:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Destriani Indah Safitri, kar_id=590","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Destriani Indah Safitri, kar_id=590","category":"fallback-mode","severity":"warning","nama":"Destriani Indah Safitri","kar_id":"590"},{"timestamp":"2026-09-28 07:58:02","raw_log":"[2026-09-28 07:58:02] \u26a0 FALLBACK: Using time-based detection pagi for 590 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 590 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:58:02","raw_log":"[2026-09-28 07:58:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Destriani Indah Safitri, kar_id=590","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Destriani Indah Safitri, kar_id=590","category":"unknown","severity":"info","nama":"Destriani Indah Safitri","kar_id":"590"},{"timestamp":"2026-09-28 07:58:02","raw_log":"[2026-09-28 07:58:02] Check-in: keputusan=berhasil, nama=Destriani Indah Safitri, kar_id=590, id_absensi=207220346, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Destriani Indah Safitri, kar_id=590, id_absensi=207220346, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Destriani Indah Safitri","kar_id":"590","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 07:59:03","raw_log":"[2026-09-28 07:59:03] \u2717 REJECTED: No schedule found for 641 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 641 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:59:03","raw_log":"[2026-09-28 07:59:03] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Renaldi Virgiawan Argi, kar_id=641","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Renaldi Virgiawan Argi, kar_id=641","category":"fallback-mode","severity":"warning","nama":"Renaldi Virgiawan Argi","kar_id":"641"},{"timestamp":"2026-09-28 07:59:03","raw_log":"[2026-09-28 07:59:03] \u26a0 FALLBACK: Using time-based detection pagi for 641 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 641 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 07:59:03","raw_log":"[2026-09-28 07:59:03] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Renaldi Virgiawan Argi, kar_id=641","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Renaldi Virgiawan Argi, kar_id=641","category":"unknown","severity":"info","nama":"Renaldi Virgiawan Argi","kar_id":"641"},{"timestamp":"2026-09-28 07:59:03","raw_log":"[2026-09-28 07:59:03] Check-in: keputusan=berhasil, nama=Renaldi Virgiawan Argi, kar_id=641, id_absensi=207220350, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Renaldi Virgiawan Argi, kar_id=641, id_absensi=207220350, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Renaldi Virgiawan Argi","kar_id":"641","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:00:03","raw_log":"[2026-09-28 08:00:03] \u2717 REJECTED: No schedule found for 1345 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1345 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:00:03","raw_log":"[2026-09-28 08:00:03] \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-09-28 08:00:03","raw_log":"[2026-09-28 08:00:03] \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-09-28 08:00:03","raw_log":"[2026-09-28 08:00:03] \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-09-28 08:00:03","raw_log":"[2026-09-28 08:00:03] Check-in: keputusan=berhasil, nama=Putri Zahro Pramesty, kar_id=1345, id_absensi=207220353, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Putri Zahro Pramesty, kar_id=1345, id_absensi=207220353, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Putri Zahro Pramesty","kar_id":"1345","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:01:03","raw_log":"[2026-09-28 08:01:03] \u2717 REJECTED: No schedule found for 611 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 611 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:01:03","raw_log":"[2026-09-28 08:01:03] \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-09-28 08:01:03","raw_log":"[2026-09-28 08:01:03] \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-09-28 08:01:03","raw_log":"[2026-09-28 08:01:03] \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-09-28 08:01:03","raw_log":"[2026-09-28 08:01:03] Check-in: keputusan=berhasil, nama=Desi Ria Puspita, kar_id=611, id_absensi=207220355, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Desi Ria Puspita, kar_id=611, id_absensi=207220355, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Desi Ria Puspita","kar_id":"611","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:01:03","raw_log":"[2026-09-28 08:01:03] \u2717 REJECTED: No schedule found for 1732 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1732 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:01:03","raw_log":"[2026-09-28 08:01:03] \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-09-28 08:01:03","raw_log":"[2026-09-28 08:01:03] \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-09-28 08:01:03","raw_log":"[2026-09-28 08:01:03] \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-09-28 08:01:03","raw_log":"[2026-09-28 08:01:03] Check-in: keputusan=berhasil, nama=Novia Az-Zahra, kar_id=1732, id_absensi=207220356, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Novia Az-Zahra, kar_id=1732, id_absensi=207220356, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Novia Az-Zahra","kar_id":"1732","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:02:03","raw_log":"[2026-09-28 08:02:03] \u2717 REJECTED: No schedule found for 1457 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1457 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:02:03","raw_log":"[2026-09-28 08:02:03] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Heri Wibowo, kar_id=1457","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Heri Wibowo, kar_id=1457","category":"fallback-mode","severity":"warning","nama":"Heri Wibowo","kar_id":"1457"},{"timestamp":"2026-09-28 08:02:03","raw_log":"[2026-09-28 08:02:03] \u26a0 FALLBACK: Using time-based detection pagi for 1457 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1457 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:02:03","raw_log":"[2026-09-28 08:02:03] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Heri Wibowo, kar_id=1457","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Heri Wibowo, kar_id=1457","category":"unknown","severity":"info","nama":"Heri Wibowo","kar_id":"1457"},{"timestamp":"2026-09-28 08:02:03","raw_log":"[2026-09-28 08:02:03] Check-in: keputusan=berhasil, nama=Heri Wibowo, kar_id=1457, id_absensi=207220357, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Heri Wibowo, kar_id=1457, id_absensi=207220357, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Heri Wibowo","kar_id":"1457","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:03:03","raw_log":"[2026-09-28 08:03:03] \u2717 REJECTED: No schedule found for 1310 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1310 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:03:03","raw_log":"[2026-09-28 08:03:03] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Dwiki Hanifah Bahtiar, kar_id=1310","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Dwiki Hanifah Bahtiar, kar_id=1310","category":"fallback-mode","severity":"warning","nama":"Dwiki Hanifah Bahtiar","kar_id":"1310"},{"timestamp":"2026-09-28 08:03:03","raw_log":"[2026-09-28 08:03:03] \u26a0 FALLBACK: Using time-based detection pagi for 1310 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1310 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:03:03","raw_log":"[2026-09-28 08:03:03] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Dwiki Hanifah Bahtiar, kar_id=1310","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Dwiki Hanifah Bahtiar, kar_id=1310","category":"unknown","severity":"info","nama":"Dwiki Hanifah Bahtiar","kar_id":"1310"},{"timestamp":"2026-09-28 08:03:03","raw_log":"[2026-09-28 08:03:03] Check-in: keputusan=berhasil, nama=Dwiki Hanifah Bahtiar, kar_id=1310, id_absensi=207220360, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Dwiki Hanifah Bahtiar, kar_id=1310, id_absensi=207220360, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Dwiki Hanifah Bahtiar","kar_id":"1310","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:03:03","raw_log":"[2026-09-28 08:03:03] \u2717 REJECTED: No schedule found for 320 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 320 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:03:03","raw_log":"[2026-09-28 08:03:03] \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-09-28 08:03:03","raw_log":"[2026-09-28 08:03:03] \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-09-28 08:03:03","raw_log":"[2026-09-28 08:03:03] \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-09-28 08:03:03","raw_log":"[2026-09-28 08:03:03] Check-in: keputusan=berhasil, nama=Asep Setiawan, kar_id=320, id_absensi=207220361, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Asep Setiawan, kar_id=320, id_absensi=207220361, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Asep Setiawan","kar_id":"320","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:05:04","raw_log":"[2026-09-28 08:05:04] \u2717 REJECTED: No schedule found for 423 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 423 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:05:04","raw_log":"[2026-09-28 08:05:04] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Zico Dwi Ananda, kar_id=423","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Zico Dwi Ananda, kar_id=423","category":"fallback-mode","severity":"warning","nama":"Zico Dwi Ananda","kar_id":"423"},{"timestamp":"2026-09-28 08:05:04","raw_log":"[2026-09-28 08:05:04] \u26a0 FALLBACK: Using time-based detection pagi for 423 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 423 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:05:04","raw_log":"[2026-09-28 08:05:04] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Zico Dwi Ananda, kar_id=423","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Zico Dwi Ananda, kar_id=423","category":"unknown","severity":"info","nama":"Zico Dwi Ananda","kar_id":"423"},{"timestamp":"2026-09-28 08:05:04","raw_log":"[2026-09-28 08:05:04] Check-in: keputusan=berhasil, nama=Zico Dwi Ananda, kar_id=423, id_absensi=207220364, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Zico Dwi Ananda, kar_id=423, id_absensi=207220364, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Zico Dwi Ananda","kar_id":"423","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:05:04","raw_log":"[2026-09-28 08:05:04] \u2717 REJECTED: No schedule found for 1723 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1723 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:05:04","raw_log":"[2026-09-28 08:05:04] \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-09-28 08:05:04","raw_log":"[2026-09-28 08:05:04] \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-09-28 08:05:04","raw_log":"[2026-09-28 08:05:04] \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-09-28 08:05:04","raw_log":"[2026-09-28 08:05:04] Check-in: keputusan=berhasil, nama=Angga Nur Rizki, kar_id=1723, id_absensi=207220365, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Angga Nur Rizki, kar_id=1723, id_absensi=207220365, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Angga Nur Rizki","kar_id":"1723","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:07:03","raw_log":"[2026-09-28 08:07:03] Check-in: keputusan=berhasil, nama=Fathur Sanusi, kar_id=470, id_absensi=207220367, shift=malam, sumber=schedule","message":"Check-in: keputusan=berhasil, nama=Fathur Sanusi, kar_id=470, id_absensi=207220367, shift=malam, sumber=schedule","category":"check-in-berhasil","severity":"success","nama":"Fathur Sanusi","kar_id":"470","shift":"malam","source":"schedule"},{"timestamp":"2026-09-28 08:07:04","raw_log":"[2026-09-28 08:07:04] \u2717 REJECTED: No schedule found for 421 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 421 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:07:04","raw_log":"[2026-09-28 08:07:04] \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-09-28 08:07:04","raw_log":"[2026-09-28 08:07:04] \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-09-28 08:07:04","raw_log":"[2026-09-28 08:07:04] \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-09-28 08:07:04","raw_log":"[2026-09-28 08:07:04] Check-in: keputusan=berhasil, nama=Gina Oktaviana, kar_id=421, id_absensi=207220368, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Gina Oktaviana, kar_id=421, id_absensi=207220368, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Gina Oktaviana","kar_id":"421","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:07:04","raw_log":"[2026-09-28 08:07:04] \u2717 REJECTED: No schedule found for 576 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 576 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:07:04","raw_log":"[2026-09-28 08:07:04] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Dudi Mulyadi, kar_id=576","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Dudi Mulyadi, kar_id=576","category":"fallback-mode","severity":"warning","nama":"Dudi Mulyadi","kar_id":"576"},{"timestamp":"2026-09-28 08:07:04","raw_log":"[2026-09-28 08:07:04] \u26a0 FALLBACK: Using time-based detection pagi for 576 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 576 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:07:04","raw_log":"[2026-09-28 08:07:04] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Dudi Mulyadi, kar_id=576","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Dudi Mulyadi, kar_id=576","category":"unknown","severity":"info","nama":"Dudi Mulyadi","kar_id":"576"},{"timestamp":"2026-09-28 08:07:04","raw_log":"[2026-09-28 08:07:04] Check-in: keputusan=berhasil, nama=Dudi Mulyadi, kar_id=576, id_absensi=207220369, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Dudi Mulyadi, kar_id=576, id_absensi=207220369, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Dudi Mulyadi","kar_id":"576","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:08:03","raw_log":"[2026-09-28 08:08:03] \u2717 REJECTED: No schedule found for 1261 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1261 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:08:03","raw_log":"[2026-09-28 08:08:03] \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-09-28 08:08:03","raw_log":"[2026-09-28 08:08:03] \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-09-28 08:08:03","raw_log":"[2026-09-28 08:08:03] \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-09-28 08:08:03","raw_log":"[2026-09-28 08:08:03] Check-in: keputusan=berhasil, nama=M Sopian, kar_id=1261, id_absensi=207220370, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=M Sopian, kar_id=1261, id_absensi=207220370, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"M Sopian","kar_id":"1261","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:09:03","raw_log":"[2026-09-28 08:09:03] \u2717 REJECTED: No schedule found for 1734 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1734 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:09:03","raw_log":"[2026-09-28 08:09:03] \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-09-28 08:09:03","raw_log":"[2026-09-28 08:09:03] \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-09-28 08:09:03","raw_log":"[2026-09-28 08:09:03] \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-09-28 08:09:03","raw_log":"[2026-09-28 08:09:03] Check-in: keputusan=berhasil, nama=Alifa Rizki Salsabila Rosadi, kar_id=1734, id_absensi=207220371, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Alifa Rizki Salsabila Rosadi, kar_id=1734, id_absensi=207220371, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Alifa Rizki Salsabila Rosadi","kar_id":"1734","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:10:03","raw_log":"[2026-09-28 08:10:03] Checkout: keputusan=berhasil, nama=M. Naufal Abel Rafy, kar_id=749, id_absensi=207220265, shift=malam, jam_kerja=7.75 jam, sumber=schedule","message":"Checkout: keputusan=berhasil, nama=M. Naufal Abel Rafy, kar_id=749, id_absensi=207220265, shift=malam, jam_kerja=7.75 jam, sumber=schedule","category":"checkout-berhasil","severity":"success","nama":"M. Naufal Abel Rafy","kar_id":"749","shift":"malam","source":"schedule"},{"timestamp":"2026-09-28 08:12:03","raw_log":"[2026-09-28 08:12:03] Checkout: keputusan=berhasil, nama=Andre Saputra, kar_id=485, id_absensi=207220264, shift=malam, jam_kerja=9.07 jam, sumber=schedule","message":"Checkout: keputusan=berhasil, nama=Andre Saputra, kar_id=485, id_absensi=207220264, shift=malam, jam_kerja=9.07 jam, sumber=schedule","category":"checkout-berhasil","severity":"success","nama":"Andre Saputra","kar_id":"485","shift":"malam","source":"schedule"},{"timestamp":"2026-09-28 08:13:03","raw_log":"[2026-09-28 08:13:03] \u2717 REJECTED: No schedule found for 1698 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1698 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:13:03","raw_log":"[2026-09-28 08:13:03] \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-09-28 08:13:03","raw_log":"[2026-09-28 08:13:03] \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-09-28 08:13:03","raw_log":"[2026-09-28 08:13:03] \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-09-28 08:13:03","raw_log":"[2026-09-28 08:13:03] Check-in: keputusan=berhasil, nama=Andreano Syaifurahman, kar_id=1698, id_absensi=207220372, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Andreano Syaifurahman, kar_id=1698, id_absensi=207220372, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Andreano Syaifurahman","kar_id":"1698","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:13:04","raw_log":"[2026-09-28 08:13:04] \u2717 REJECTED: No schedule found for 1660 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1660 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:13:04","raw_log":"[2026-09-28 08:13:04] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Dadan Kusuma, kar_id=1660","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Dadan Kusuma, kar_id=1660","category":"fallback-mode","severity":"warning","nama":"Dadan Kusuma","kar_id":"1660"},{"timestamp":"2026-09-28 08:13:04","raw_log":"[2026-09-28 08:13:04] \u26a0 FALLBACK: Using time-based detection pagi for 1660 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1660 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:13:04","raw_log":"[2026-09-28 08:13:04] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Dadan Kusuma, kar_id=1660","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Dadan Kusuma, kar_id=1660","category":"unknown","severity":"info","nama":"Dadan Kusuma","kar_id":"1660"},{"timestamp":"2026-09-28 08:13:04","raw_log":"[2026-09-28 08:13:04] Check-in: keputusan=berhasil, nama=Dadan Kusuma, kar_id=1660, id_absensi=207220373, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Dadan Kusuma, kar_id=1660, id_absensi=207220373, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Dadan Kusuma","kar_id":"1660","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:14:03","raw_log":"[2026-09-28 08:14:03] \u2717 REJECTED: No schedule found for 1107 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1107 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:14:03","raw_log":"[2026-09-28 08:14:03] \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-09-28 08:14:03","raw_log":"[2026-09-28 08:14:03] \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-09-28 08:14:03","raw_log":"[2026-09-28 08:14:03] \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-09-28 08:14:03","raw_log":"[2026-09-28 08:14:03] Check-in: keputusan=berhasil, nama=Anggellisana Early, kar_id=1107, id_absensi=207220374, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Anggellisana Early, kar_id=1107, id_absensi=207220374, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Anggellisana Early","kar_id":"1107","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:14:04","raw_log":"[2026-09-28 08:14:04] \u2717 REJECTED: No schedule found for 1184 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1184 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:14:04","raw_log":"[2026-09-28 08:14:04] \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-09-28 08:14:04","raw_log":"[2026-09-28 08:14:04] \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-09-28 08:14:04","raw_log":"[2026-09-28 08:14:04] \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-09-28 08:14:04","raw_log":"[2026-09-28 08:14:04] Check-in: keputusan=berhasil, nama=Cakra Abimanyu Ramadhan, kar_id=1184, id_absensi=207220375, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Cakra Abimanyu Ramadhan, kar_id=1184, id_absensi=207220375, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Cakra Abimanyu Ramadhan","kar_id":"1184","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:15:03","raw_log":"[2026-09-28 08:15:03] \u2717 REJECTED: No schedule found for 1746 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1746 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:15:03","raw_log":"[2026-09-28 08:15:03] \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-09-28 08:15:03","raw_log":"[2026-09-28 08:15:03] \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-09-28 08:15:03","raw_log":"[2026-09-28 08:15:03] \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-09-28 08:15:03","raw_log":"[2026-09-28 08:15:03] Check-in: keputusan=berhasil, nama=Deilan Mellandri, kar_id=1746, id_absensi=207220376, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Deilan Mellandri, kar_id=1746, id_absensi=207220376, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Deilan Mellandri","kar_id":"1746","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:20:03","raw_log":"[2026-09-28 08:20:03] \u2717 REJECTED: No schedule found for 676 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 676 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:20:03","raw_log":"[2026-09-28 08:20:03] \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-09-28 08:20:03","raw_log":"[2026-09-28 08:20:03] \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-09-28 08:20:03","raw_log":"[2026-09-28 08:20:03] \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-09-28 08:20:03","raw_log":"[2026-09-28 08:20:03] Check-in: keputusan=berhasil, nama=Anggra, kar_id=676, id_absensi=207220379, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Anggra, kar_id=676, id_absensi=207220379, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Anggra","kar_id":"676","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:20:04","raw_log":"[2026-09-28 08:20:04] \u2717 REJECTED: No schedule found for 363 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 363 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:20:04","raw_log":"[2026-09-28 08:20:04] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Elang Ragil Rusmana Putra, kar_id=363","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Elang Ragil Rusmana Putra, kar_id=363","category":"fallback-mode","severity":"warning","nama":"Elang Ragil Rusmana Putra","kar_id":"363"},{"timestamp":"2026-09-28 08:20:04","raw_log":"[2026-09-28 08:20:04] \u26a0 FALLBACK: Using time-based detection pagi for 363 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 363 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:20:04","raw_log":"[2026-09-28 08:20:04] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Elang Ragil Rusmana Putra, kar_id=363","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Elang Ragil Rusmana Putra, kar_id=363","category":"unknown","severity":"info","nama":"Elang Ragil Rusmana Putra","kar_id":"363"},{"timestamp":"2026-09-28 08:20:04","raw_log":"[2026-09-28 08:20:04] Check-in: keputusan=berhasil, nama=Elang Ragil Rusmana Putra, kar_id=363, id_absensi=207220380, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Elang Ragil Rusmana Putra, kar_id=363, id_absensi=207220380, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Elang Ragil Rusmana Putra","kar_id":"363","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:20:05","raw_log":"[2026-09-28 08:20:05] \u2717 REJECTED: No schedule found for 1177 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1177 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:20:05","raw_log":"[2026-09-28 08:20:05] \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-09-28 08:20:05","raw_log":"[2026-09-28 08:20:05] \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-09-28 08:20:05","raw_log":"[2026-09-28 08:20:05] \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-09-28 08:20:05","raw_log":"[2026-09-28 08:20:05] Check-in: keputusan=berhasil, nama=Moch Adnan Haikal Bayhaqi, kar_id=1177, id_absensi=207220381, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Moch Adnan Haikal Bayhaqi, kar_id=1177, id_absensi=207220381, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Moch Adnan Haikal Bayhaqi","kar_id":"1177","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:21:05","raw_log":"[2026-09-28 08:21:05] \u2717 REJECTED: No schedule found for 1317 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1317 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:21:05","raw_log":"[2026-09-28 08:21:05] \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-09-28 08:21:05","raw_log":"[2026-09-28 08:21:05] \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-09-28 08:21:05","raw_log":"[2026-09-28 08:21:05] \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-09-28 08:21:05","raw_log":"[2026-09-28 08:21:05] Check-in: keputusan=berhasil, nama=Vinka Anggita Permana, kar_id=1317, id_absensi=207220382, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Vinka Anggita Permana, kar_id=1317, id_absensi=207220382, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Vinka Anggita Permana","kar_id":"1317","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:21:05","raw_log":"[2026-09-28 08:21:05] \u2717 REJECTED: No schedule found for 443 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 443 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:21:05","raw_log":"[2026-09-28 08:21:05] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Fariha Syifa, kar_id=443","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Fariha Syifa, kar_id=443","category":"fallback-mode","severity":"warning","nama":"Fariha Syifa","kar_id":"443"},{"timestamp":"2026-09-28 08:21:05","raw_log":"[2026-09-28 08:21:05] \u26a0 FALLBACK: Using time-based detection pagi for 443 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 443 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:21:05","raw_log":"[2026-09-28 08:21:05] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Fariha Syifa, kar_id=443","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Fariha Syifa, kar_id=443","category":"unknown","severity":"info","nama":"Fariha Syifa","kar_id":"443"},{"timestamp":"2026-09-28 08:21:05","raw_log":"[2026-09-28 08:21:05] Check-in: keputusan=berhasil, nama=Fariha Syifa, kar_id=443, id_absensi=207220383, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Fariha Syifa, kar_id=443, id_absensi=207220383, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Fariha Syifa","kar_id":"443","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:23:03","raw_log":"[2026-09-28 08:23:03] \u2717 REJECTED: No schedule found for 1555 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1555 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:23:03","raw_log":"[2026-09-28 08:23:03] \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-09-28 08:23:03","raw_log":"[2026-09-28 08:23:03] \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-09-28 08:23:03","raw_log":"[2026-09-28 08:23:03] \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-09-28 08:23:03","raw_log":"[2026-09-28 08:23:03] Check-in: keputusan=berhasil, nama=Fadhilla Alfajr, kar_id=1555, id_absensi=207220384, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Fadhilla Alfajr, kar_id=1555, id_absensi=207220384, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Fadhilla Alfajr","kar_id":"1555","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:26:04","raw_log":"[2026-09-28 08:26:04] \u2717 REJECTED: No schedule found for 1759 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1759 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:26:04","raw_log":"[2026-09-28 08:26:04] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Aldi Agung Gunawan, kar_id=1759","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Aldi Agung Gunawan, kar_id=1759","category":"fallback-mode","severity":"warning","nama":"Aldi Agung Gunawan","kar_id":"1759"},{"timestamp":"2026-09-28 08:26:04","raw_log":"[2026-09-28 08:26:04] \u26a0 FALLBACK: Using time-based detection pagi for 1759 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1759 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:26:04","raw_log":"[2026-09-28 08:26:04] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Aldi Agung Gunawan, kar_id=1759","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Aldi Agung Gunawan, kar_id=1759","category":"unknown","severity":"info","nama":"Aldi Agung Gunawan","kar_id":"1759"},{"timestamp":"2026-09-28 08:26:04","raw_log":"[2026-09-28 08:26:04] Check-in: keputusan=berhasil, nama=Aldi Agung Gunawan, kar_id=1759, id_absensi=207220386, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Aldi Agung Gunawan, kar_id=1759, id_absensi=207220386, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Aldi Agung Gunawan","kar_id":"1759","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:33:04","raw_log":"[2026-09-28 08:33:04] \u2717 REJECTED: No schedule found for 169 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 169 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:33:04","raw_log":"[2026-09-28 08:33:04] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Islah Mutaqin, kar_id=169","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Islah Mutaqin, kar_id=169","category":"fallback-mode","severity":"warning","nama":"Islah Mutaqin","kar_id":"169"},{"timestamp":"2026-09-28 08:33:04","raw_log":"[2026-09-28 08:33:04] \u26a0 FALLBACK: Using time-based detection pagi for 169 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 169 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:33:04","raw_log":"[2026-09-28 08:33:04] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Islah Mutaqin, kar_id=169","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Islah Mutaqin, kar_id=169","category":"unknown","severity":"info","nama":"Islah Mutaqin","kar_id":"169"},{"timestamp":"2026-09-28 08:33:04","raw_log":"[2026-09-28 08:33:04] Check-in: keputusan=berhasil, nama=Islah Mutaqin, kar_id=169, id_absensi=207220391, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Islah Mutaqin, kar_id=169, id_absensi=207220391, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Islah Mutaqin","kar_id":"169","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:34:04","raw_log":"[2026-09-28 08:34:04] \u2717 REJECTED: No schedule found for 1715 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1715 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:34:04","raw_log":"[2026-09-28 08:34:04] \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-09-28 08:34:04","raw_log":"[2026-09-28 08:34:04] \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-09-28 08:34:04","raw_log":"[2026-09-28 08:34:04] \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-09-28 08:34:04","raw_log":"[2026-09-28 08:34:04] Check-in: keputusan=berhasil, nama=Alya Azhar Haura Putri, kar_id=1715, id_absensi=207220393, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Alya Azhar Haura Putri, kar_id=1715, id_absensi=207220393, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Alya Azhar Haura Putri","kar_id":"1715","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:43:03","raw_log":"[2026-09-28 08:43:03] \u2717 REJECTED: No schedule found for 442 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 442 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:43:03","raw_log":"[2026-09-28 08:43:03] \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-09-28 08:43:03","raw_log":"[2026-09-28 08:43:03] \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-09-28 08:43:03","raw_log":"[2026-09-28 08:43:03] \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-09-28 08:43:03","raw_log":"[2026-09-28 08:43:03] Check-in: keputusan=berhasil, nama=Ranty Soeny Paraswaty, kar_id=442, id_absensi=207220394, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Ranty Soeny Paraswaty, kar_id=442, id_absensi=207220394, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Ranty Soeny Paraswaty","kar_id":"442","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:53:03","raw_log":"[2026-09-28 08:53:03] \u2717 REJECTED: No schedule found for 668 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 668 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:53:03","raw_log":"[2026-09-28 08:53:03] \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-09-28 08:53:03","raw_log":"[2026-09-28 08:53:03] \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-09-28 08:53:03","raw_log":"[2026-09-28 08:53:03] \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-09-28 08:53:03","raw_log":"[2026-09-28 08:53:03] Check-in: keputusan=berhasil, nama=Muhammad Ikbal Al Ghiffari, kar_id=668, id_absensi=207220395, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Muhammad Ikbal Al Ghiffari, kar_id=668, id_absensi=207220395, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Muhammad Ikbal Al Ghiffari","kar_id":"668","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:57:03","raw_log":"[2026-09-28 08:57:03] \u2717 REJECTED: No schedule found for 1681 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1681 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:57:03","raw_log":"[2026-09-28 08:57:03] \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-09-28 08:57:03","raw_log":"[2026-09-28 08:57:03] \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-09-28 08:57:03","raw_log":"[2026-09-28 08:57:03] \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-09-28 08:57:03","raw_log":"[2026-09-28 08:57:03] Check-in: keputusan=berhasil, nama=Tio Pebriansyah , kar_id=1681, id_absensi=207220396, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Tio Pebriansyah , kar_id=1681, id_absensi=207220396, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Tio Pebriansyah","kar_id":"1681","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 08:58:03","raw_log":"[2026-09-28 08:58:03] \u2717 REJECTED: No schedule found for 251 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 251 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 08:58:03","raw_log":"[2026-09-28 08:58:03] \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-09-28 08:58:03","raw_log":"[2026-09-28 08:58:03] \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-09-28 08:58:03","raw_log":"[2026-09-28 08:58:03] \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-09-28 08:58:03","raw_log":"[2026-09-28 08:58:03] Check-in: keputusan=berhasil, nama=Pipin Sopian, kar_id=251, id_absensi=207220397, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Pipin Sopian, kar_id=251, id_absensi=207220397, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Pipin Sopian","kar_id":"251","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 09:01:04","raw_log":"[2026-09-28 09:01:04] \u2717 REJECTED: No schedule found for 302 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 302 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 09:01:04","raw_log":"[2026-09-28 09:01:04] \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-09-28 09:01:04","raw_log":"[2026-09-28 09:01:04] \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-09-28 09:01:04","raw_log":"[2026-09-28 09:01:04] \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-09-28 09:01:04","raw_log":"[2026-09-28 09:01:04] Check-in: keputusan=berhasil, nama=Nunung Unangsih, kar_id=302, id_absensi=207220398, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Nunung Unangsih, kar_id=302, id_absensi=207220398, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Nunung Unangsih","kar_id":"302","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 09:11:03","raw_log":"[2026-09-28 09:11:03] \u2717 REJECTED: No schedule found for 371 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 371 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 09:11:03","raw_log":"[2026-09-28 09:11: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-09-28 09:11:03","raw_log":"[2026-09-28 09:11: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-09-28 09:11:03","raw_log":"[2026-09-28 09:11: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-09-28 09:11:03","raw_log":"[2026-09-28 09:11:03] Check-in: keputusan=berhasil, nama=Bhakti Purnama Prasetyo, kar_id=371, id_absensi=207220399, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Bhakti Purnama Prasetyo, kar_id=371, id_absensi=207220399, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Bhakti Purnama Prasetyo","kar_id":"371","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 09:39:13","raw_log":"[2026-09-28 09:39:13] [AIVEN] Koneksi gagal (non-fatal): php_network_getaddresses: getaddrinfo for mysql-1c51190c-mincreng1-656a.h.aivencloud.com failed: No such host is known. ","message":"[AIVEN] Koneksi gagal (non-fatal): php_network_getaddresses: getaddrinfo for mysql-1c51190c-mincreng1-656a.h.aivencloud.com failed: No such host is known.","category":"error","severity":"critical"},{"timestamp":"2026-09-28 09:53:25","raw_log":"[2026-09-28 09:53:25] \u2717 REJECTED: No schedule found for 401 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 401 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 09:53:25","raw_log":"[2026-09-28 09:53:25] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Septian Nugraha Alsafaat, kar_id=401","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Septian Nugraha Alsafaat, kar_id=401","category":"fallback-mode","severity":"warning","nama":"Septian Nugraha Alsafaat","kar_id":"401"},{"timestamp":"2026-09-28 09:53:25","raw_log":"[2026-09-28 09:53:25] \u26a0 FALLBACK: Using time-based detection pagi for 401 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 401 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 09:53:25","raw_log":"[2026-09-28 09:53:25] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Septian Nugraha Alsafaat, kar_id=401","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Septian Nugraha Alsafaat, kar_id=401","category":"unknown","severity":"info","nama":"Septian Nugraha Alsafaat","kar_id":"401"},{"timestamp":"2026-09-28 09:53:25","raw_log":"[2026-09-28 09:53:25] Check-in: keputusan=berhasil, nama=Septian Nugraha Alsafaat, kar_id=401, id_absensi=207220401, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Septian Nugraha Alsafaat, kar_id=401, id_absensi=207220401, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Septian Nugraha Alsafaat","kar_id":"401","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 10:24:04","raw_log":"[2026-09-28 10:24:04] \u2717 REJECTED: No schedule found for 719 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 719 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 10:24:04","raw_log":"[2026-09-28 10:24:04] \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-09-28 10:24:04","raw_log":"[2026-09-28 10:24:04] \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-09-28 10:24:04","raw_log":"[2026-09-28 10:24:04] \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-09-28 10:24:04","raw_log":"[2026-09-28 10:24:04] Check-in: keputusan=berhasil, nama=Ridwan Lesmana, kar_id=719, id_absensi=207220402, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Ridwan Lesmana, kar_id=719, id_absensi=207220402, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Ridwan Lesmana","kar_id":"719","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 10:39:04","raw_log":"[2026-09-28 10:39:04] \u2717 REJECTED: No schedule found for 344 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 344 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 10:39:04","raw_log":"[2026-09-28 10:39:04] \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-09-28 10:39:04","raw_log":"[2026-09-28 10:39:04] \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-09-28 10:39:04","raw_log":"[2026-09-28 10:39:04] \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-09-28 10:39:04","raw_log":"[2026-09-28 10:39:04] Check-in: keputusan=berhasil, nama=Yongky Alexandra, kar_id=344, id_absensi=207220403, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Yongky Alexandra, kar_id=344, id_absensi=207220403, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Yongky Alexandra","kar_id":"344","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 11:11:05","raw_log":"[2026-09-28 11:11:05] \u26a0 FALLBACK: Using time-based detection pagi for 580 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 580 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 11:11:05","raw_log":"[2026-09-28 11:11:05] \u26a0 FALLBACK checkout validation for 580 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 580 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 11:11:05","raw_log":"[2026-09-28 11:11:05] Tutup otomatis: keputusan=ditutup_otomatis, nama=Sahrina Putri Widiati, kar_id=580, id_absensi=207220162, shift=pagi, waktu_pulang=2026-09-25 19:57:42, alasan=jam kerja melebihi batas maksimal; fallback berdasarkan max_hours","message":"Tutup otomatis: keputusan=ditutup_otomatis, nama=Sahrina Putri Widiati, kar_id=580, id_absensi=207220162, shift=pagi, waktu_pulang=2026-09-25 19:57:42, alasan=jam kerja melebihi batas maksimal; fallback berdasarkan max_hours","category":"tutup-otomatis","severity":"warning","nama":"Sahrina Putri Widiati","kar_id":"580","shift":"pagi","alasan":"jam kerja melebihi batas maksimal; fallback berdasarkan max_hours"},{"timestamp":"2026-09-28 11:11:05","raw_log":"[2026-09-28 11:11:05] \u2717 REJECTED: No schedule found for 580 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 580 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 11:11:05","raw_log":"[2026-09-28 11:11:05] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Sahrina Putri Widiati, kar_id=580","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Sahrina Putri Widiati, kar_id=580","category":"fallback-mode","severity":"warning","nama":"Sahrina Putri Widiati","kar_id":"580"},{"timestamp":"2026-09-28 11:11:05","raw_log":"[2026-09-28 11:11:05] \u26a0 WARNING: No schedule AND outside shift hours for 580 on 2026-09-28 at 2026-09-28 11:10:56","message":"\u26a0 WARNING: No schedule AND outside shift hours for 580 on 2026-09-28 at 2026-09-28 11:10:56","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 11:11:05","raw_log":"[2026-09-28 11:11:05] Check-in: keputusan=ditolak, nama=Sahrina Putri Widiati, kar_id=580, alasan=outside shift hours (Undefined); tidak ada insert ke trs_absensi","message":"Check-in: keputusan=ditolak, nama=Sahrina Putri Widiati, kar_id=580, alasan=outside shift hours (Undefined); tidak ada insert ke trs_absensi","category":"check-in-ditolak","severity":"error","nama":"Sahrina Putri Widiati","kar_id":"580","alasan":"outside shift hours (Undefined); tidak ada insert ke trs_absensi"},{"timestamp":"2026-09-28 11:34:37","raw_log":"[2026-09-28 11:34:37] \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-09-28 11:34:37","raw_log":"[2026-09-28 11:34:37] \u26a0 FALLBACK checkout validation for 1748 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 1748 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 11:34:37","raw_log":"[2026-09-28 11:34:37] Tutup otomatis: keputusan=ditutup_otomatis, nama=Syifa Rahma Al-Insani, kar_id=1748, id_absensi=207219178, shift=pagi, waktu_pulang=2026-09-17 19:36:10, alasan=jam kerja melebihi batas maksimal; fallback berdasarkan max_hours","message":"Tutup otomatis: keputusan=ditutup_otomatis, nama=Syifa Rahma Al-Insani, kar_id=1748, id_absensi=207219178, shift=pagi, waktu_pulang=2026-09-17 19:36:10, alasan=jam kerja melebihi batas maksimal; fallback berdasarkan max_hours","category":"tutup-otomatis","severity":"warning","nama":"Syifa Rahma Al-Insani","kar_id":"1748","shift":"pagi","alasan":"jam kerja melebihi batas maksimal; fallback berdasarkan max_hours"},{"timestamp":"2026-09-28 11:34:37","raw_log":"[2026-09-28 11:34:37] \u2717 REJECTED: No schedule found for 1748 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1748 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 11:34:37","raw_log":"[2026-09-28 11:34:37] \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-09-28 11:34:37","raw_log":"[2026-09-28 11:34:37] \u26a0 WARNING: No schedule AND outside shift hours for 1748 on 2026-09-28 at 2026-09-28 11:34:19","message":"\u26a0 WARNING: No schedule AND outside shift hours for 1748 on 2026-09-28 at 2026-09-28 11:34:19","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 11:34:37","raw_log":"[2026-09-28 11:34:37] Check-in: keputusan=ditolak, nama=Syifa Rahma Al-Insani, kar_id=1748, alasan=outside shift hours (Undefined); tidak ada insert ke trs_absensi","message":"Check-in: keputusan=ditolak, nama=Syifa Rahma Al-Insani, kar_id=1748, alasan=outside shift hours (Undefined); tidak ada insert ke trs_absensi","category":"check-in-ditolak","severity":"error","nama":"Syifa Rahma Al-Insani","kar_id":"1748","alasan":"outside shift hours (Undefined); tidak ada insert ke trs_absensi"},{"timestamp":"2026-09-28 15:53:03","raw_log":"[2026-09-28 15:53:03] Tutup otomatis: keputusan=ditutup_otomatis, nama=Andika Satria Putra Ramadan, kar_id=1722, id_absensi=207220193, shift=sore, waktu_pulang=2026-09-28 15:51:04, alasan=pegawai tidak checkout","message":"Tutup otomatis: keputusan=ditutup_otomatis, nama=Andika Satria Putra Ramadan, kar_id=1722, id_absensi=207220193, shift=sore, waktu_pulang=2026-09-28 15:51:04, alasan=pegawai tidak checkout","category":"tutup-otomatis","severity":"warning","nama":"Andika Satria Putra Ramadan","kar_id":"1722","shift":"sore","alasan":"pegawai tidak checkout"},{"timestamp":"2026-09-28 15:53:03","raw_log":"[2026-09-28 15:53:03] \u2717 REJECTED: No schedule found for 1722 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1722 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 15:53:03","raw_log":"[2026-09-28 15:53:03] \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-09-28 15:53:03","raw_log":"[2026-09-28 15:53:03] \u26a0 FALLBACK: Using time-based detection sore for 1722 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection sore for 1722 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 15:53:03","raw_log":"[2026-09-28 15:53:03] \u26a0 SHIFT ASSIGNED: sore (source: fallback) for nama=Andika Satria Putra Ramadan, kar_id=1722","message":"\u26a0 SHIFT ASSIGNED: sore (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-09-28 15:53:03","raw_log":"[2026-09-28 15:53:03] Check-in: keputusan=berhasil, nama=Andika Satria Putra Ramadan, kar_id=1722, id_absensi=207220406, shift=sore, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Andika Satria Putra Ramadan, kar_id=1722, id_absensi=207220406, shift=sore, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Andika Satria Putra Ramadan","kar_id":"1722","shift":"sore","source":"fallback"},{"timestamp":"2026-09-28 16:39:04","raw_log":"[2026-09-28 16:39:04] Check-in: keputusan=berhasil, nama=Ardian Meidiansyah, kar_id=355, id_absensi=207220407, shift=sore, sumber=schedule","message":"Check-in: keputusan=berhasil, nama=Ardian Meidiansyah, kar_id=355, id_absensi=207220407, shift=sore, sumber=schedule","category":"check-in-berhasil","severity":"success","nama":"Ardian Meidiansyah","kar_id":"355","shift":"sore","source":"schedule"},{"timestamp":"2026-09-28 16:45:04","raw_log":"[2026-09-28 16:45:04] Check-in: keputusan=berhasil, nama=Imantri Didit Purnomo Aji, kar_id=311, id_absensi=207220408, shift=sore, sumber=schedule","message":"Check-in: keputusan=berhasil, nama=Imantri Didit Purnomo Aji, kar_id=311, id_absensi=207220408, shift=sore, sumber=schedule","category":"check-in-berhasil","severity":"success","nama":"Imantri Didit Purnomo Aji","kar_id":"311","shift":"sore","source":"schedule"},{"timestamp":"2026-09-28 16:48:04","raw_log":"[2026-09-28 16:48:04] \u2717 REJECTED: No schedule found for 684 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 684 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 16:48:04","raw_log":"[2026-09-28 16:48:04] \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-09-28 16:48:04","raw_log":"[2026-09-28 16:48:04] \u26a0 FALLBACK: Using time-based detection sore for 684 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection sore for 684 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 16:48:04","raw_log":"[2026-09-28 16:48:04] \u26a0 SHIFT ASSIGNED: sore (source: fallback) for nama=Angga Reza Mahendra, kar_id=684","message":"\u26a0 SHIFT ASSIGNED: sore (source: fallback) for nama=Angga Reza Mahendra, kar_id=684","category":"unknown","severity":"info","nama":"Angga Reza Mahendra","kar_id":"684"},{"timestamp":"2026-09-28 16:48:04","raw_log":"[2026-09-28 16:48:04] Check-in: keputusan=berhasil, nama=Angga Reza Mahendra, kar_id=684, id_absensi=207220409, shift=sore, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Angga Reza Mahendra, kar_id=684, id_absensi=207220409, shift=sore, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Angga Reza Mahendra","kar_id":"684","shift":"sore","source":"fallback"},{"timestamp":"2026-09-28 17:01:04","raw_log":"[2026-09-28 17:01:04] \u2717 REJECTED: No schedule found for 1754 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1754 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:01:04","raw_log":"[2026-09-28 17:01:04] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Muhammad Zidan Munggaran, kar_id=1754","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Muhammad Zidan Munggaran, kar_id=1754","category":"fallback-mode","severity":"warning","nama":"Muhammad Zidan Munggaran","kar_id":"1754"},{"timestamp":"2026-09-28 17:01:04","raw_log":"[2026-09-28 17:01:04] \u26a0 FALLBACK: Using time-based detection sore for 1754 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection sore for 1754 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:01:04","raw_log":"[2026-09-28 17:01:04] \u26a0 SHIFT ASSIGNED: sore (source: fallback) for nama=Muhammad Zidan Munggaran, kar_id=1754","message":"\u26a0 SHIFT ASSIGNED: sore (source: fallback) for nama=Muhammad Zidan Munggaran, kar_id=1754","category":"unknown","severity":"info","nama":"Muhammad Zidan Munggaran","kar_id":"1754"},{"timestamp":"2026-09-28 17:01:04","raw_log":"[2026-09-28 17:01:04] Check-in: keputusan=berhasil, nama=Muhammad Zidan Munggaran, kar_id=1754, id_absensi=207220410, shift=sore, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Muhammad Zidan Munggaran, kar_id=1754, id_absensi=207220410, shift=sore, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Muhammad Zidan Munggaran","kar_id":"1754","shift":"sore","source":"fallback"},{"timestamp":"2026-09-28 17:02:04","raw_log":"[2026-09-28 17:02:04] \u26a0 FALLBACK: Using time-based detection pagi for 576 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 576 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:02:04","raw_log":"[2026-09-28 17:02:04] \u26a0 FALLBACK checkout validation for 576 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 576 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:02:04","raw_log":"[2026-09-28 17:02:04] Checkout: keputusan=berhasil, nama=Dudi Mulyadi, kar_id=576, id_absensi=207220369, shift=pagi, jam_kerja=8.92 jam, sumber=fallback","message":"Checkout: keputusan=berhasil, nama=Dudi Mulyadi, kar_id=576, id_absensi=207220369, shift=pagi, jam_kerja=8.92 jam, sumber=fallback","category":"checkout-berhasil","severity":"success","nama":"Dudi Mulyadi","kar_id":"576","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 17:03:03","raw_log":"[2026-09-28 17:03:03] \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-09-28 17:03:03","raw_log":"[2026-09-28 17:03:03] \u26a0 FALLBACK checkout validation for 636 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 636 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:03:03","raw_log":"[2026-09-28 17:03:03] Checkout: keputusan=berhasil, nama=Siti Fatimah, kar_id=636, id_absensi=207220335, shift=pagi, jam_kerja=9.14 jam, sumber=fallback","message":"Checkout: keputusan=berhasil, nama=Siti Fatimah, kar_id=636, id_absensi=207220335, shift=pagi, jam_kerja=9.14 jam, sumber=fallback","category":"checkout-berhasil","severity":"success","nama":"Siti Fatimah","kar_id":"636","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 17:03:04","raw_log":"[2026-09-28 17:03:04] \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-09-28 17:03:04","raw_log":"[2026-09-28 17:03:04] \u26a0 FALLBACK checkout validation for 1520 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 1520 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:03:04","raw_log":"[2026-09-28 17:03:04] Checkout: keputusan=berhasil, nama=Fadhila Salsabila Ahda, kar_id=1520, id_absensi=207220343, shift=pagi, jam_kerja=9.1 jam, sumber=fallback","message":"Checkout: keputusan=berhasil, nama=Fadhila Salsabila Ahda, kar_id=1520, id_absensi=207220343, shift=pagi, jam_kerja=9.1 jam, sumber=fallback","category":"checkout-berhasil","severity":"success","nama":"Fadhila Salsabila Ahda","kar_id":"1520","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 17:04:04","raw_log":"[2026-09-28 17:04:04] \u2717 REJECTED: No schedule found for 1748 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1748 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:04:04","raw_log":"[2026-09-28 17:04:04] \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-09-28 17:04:04","raw_log":"[2026-09-28 17:04:04] \u26a0 FALLBACK: Using time-based detection sore for 1748 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection sore for 1748 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:04:04","raw_log":"[2026-09-28 17:04:04] \u26a0 SHIFT ASSIGNED: sore (source: fallback) for nama=Syifa Rahma Al-Insani, kar_id=1748","message":"\u26a0 SHIFT ASSIGNED: sore (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-09-28 17:04:04","raw_log":"[2026-09-28 17:04:04] Check-in: keputusan=berhasil, nama=Syifa Rahma Al-Insani, kar_id=1748, id_absensi=207220411, shift=sore, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Syifa Rahma Al-Insani, kar_id=1748, id_absensi=207220411, shift=sore, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Syifa Rahma Al-Insani","kar_id":"1748","shift":"sore","source":"fallback"},{"timestamp":"2026-09-28 17:04:04","raw_log":"[2026-09-28 17:04:04] \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-09-28 17:04:04","raw_log":"[2026-09-28 17:04:04] \u26a0 FALLBACK checkout validation for 245 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 245 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:04:04","raw_log":"[2026-09-28 17:04:04] Checkout: keputusan=berhasil, nama=Kiki Andriansyah, kar_id=245, id_absensi=207220336, shift=pagi, jam_kerja=9.15 jam, sumber=fallback","message":"Checkout: keputusan=berhasil, nama=Kiki Andriansyah, kar_id=245, id_absensi=207220336, shift=pagi, jam_kerja=9.15 jam, sumber=fallback","category":"checkout-berhasil","severity":"success","nama":"Kiki Andriansyah","kar_id":"245","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 17:04:05","raw_log":"[2026-09-28 17:04:05] \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-09-28 17:04:05","raw_log":"[2026-09-28 17:04:05] \u26a0 FALLBACK checkout validation for 1681 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 1681 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:04:05","raw_log":"[2026-09-28 17:04:05] Checkout: keputusan=berhasil, nama=Tio Pebriansyah , kar_id=1681, id_absensi=207220396, shift=pagi, jam_kerja=8.12 jam, sumber=fallback","message":"Checkout: keputusan=berhasil, nama=Tio Pebriansyah , kar_id=1681, id_absensi=207220396, shift=pagi, jam_kerja=8.12 jam, sumber=fallback","category":"checkout-berhasil","severity":"success","nama":"Tio Pebriansyah","kar_id":"1681","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 17:04:05","raw_log":"[2026-09-28 17:04:05] \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-09-28 17:04:05","raw_log":"[2026-09-28 17:04:05] \u26a0 FALLBACK checkout validation for 1732 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 1732 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:04:05","raw_log":"[2026-09-28 17:04:05] Checkout: keputusan=berhasil, nama=Novia Az-Zahra, kar_id=1732, id_absensi=207220356, shift=pagi, jam_kerja=9.05 jam, sumber=fallback","message":"Checkout: keputusan=berhasil, nama=Novia Az-Zahra, kar_id=1732, id_absensi=207220356, shift=pagi, jam_kerja=9.05 jam, sumber=fallback","category":"checkout-berhasil","severity":"success","nama":"Novia Az-Zahra","kar_id":"1732","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 17:05:04","raw_log":"[2026-09-28 17:05:04] \u26a0 FALLBACK: Using time-based detection pagi for 1759 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1759 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:05:04","raw_log":"[2026-09-28 17:05:04] \u26a0 FALLBACK checkout validation for 1759 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 1759 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:05:04","raw_log":"[2026-09-28 17:05:04] Checkout: keputusan=berhasil, nama=Aldi Agung Gunawan, kar_id=1759, id_absensi=207220386, shift=pagi, jam_kerja=8.64 jam, sumber=fallback","message":"Checkout: keputusan=berhasil, nama=Aldi Agung Gunawan, kar_id=1759, id_absensi=207220386, shift=pagi, jam_kerja=8.64 jam, sumber=fallback","category":"checkout-berhasil","severity":"success","nama":"Aldi Agung Gunawan","kar_id":"1759","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 17:05:04","raw_log":"[2026-09-28 17:05:04] \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-09-28 17:05:04","raw_log":"[2026-09-28 17:05:04] \u26a0 FALLBACK checkout validation for 862 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 862 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:05:04","raw_log":"[2026-09-28 17:05:04] Checkout: keputusan=berhasil, nama=Desi Anggraeni, kar_id=862, id_absensi=207220298, shift=pagi, jam_kerja=9.66 jam, sumber=fallback","message":"Checkout: keputusan=berhasil, nama=Desi Anggraeni, kar_id=862, id_absensi=207220298, shift=pagi, jam_kerja=9.66 jam, sumber=fallback","category":"checkout-berhasil","severity":"success","nama":"Desi Anggraeni","kar_id":"862","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 17:05:04","raw_log":"[2026-09-28 17:05:04] Checkout: keputusan=berhasil, nama=Fathur Sanusi, kar_id=470, id_absensi=207220367, shift=malam, jam_kerja=8.98 jam, sumber=schedule","message":"Checkout: keputusan=berhasil, nama=Fathur Sanusi, kar_id=470, id_absensi=207220367, shift=malam, jam_kerja=8.98 jam, sumber=schedule","category":"checkout-berhasil","severity":"success","nama":"Fathur Sanusi","kar_id":"470","shift":"malam","source":"schedule"},{"timestamp":"2026-09-28 17:06:04","raw_log":"[2026-09-28 17:06:04] \u2717 REJECTED: No schedule found for 580 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 580 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:06:04","raw_log":"[2026-09-28 17:06:04] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Sahrina Putri Widiati, kar_id=580","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Sahrina Putri Widiati, kar_id=580","category":"fallback-mode","severity":"warning","nama":"Sahrina Putri Widiati","kar_id":"580"},{"timestamp":"2026-09-28 17:06:04","raw_log":"[2026-09-28 17:06:04] \u26a0 FALLBACK: Using time-based detection sore for 580 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection sore for 580 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:06:04","raw_log":"[2026-09-28 17:06:04] \u26a0 SHIFT ASSIGNED: sore (source: fallback) for nama=Sahrina Putri Widiati, kar_id=580","message":"\u26a0 SHIFT ASSIGNED: sore (source: fallback) for nama=Sahrina Putri Widiati, kar_id=580","category":"unknown","severity":"info","nama":"Sahrina Putri Widiati","kar_id":"580"},{"timestamp":"2026-09-28 17:06:04","raw_log":"[2026-09-28 17:06:04] Check-in: keputusan=berhasil, nama=Sahrina Putri Widiati, kar_id=580, id_absensi=207220412, shift=sore, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Sahrina Putri Widiati, kar_id=580, id_absensi=207220412, shift=sore, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Sahrina Putri Widiati","kar_id":"580","shift":"sore","source":"fallback"},{"timestamp":"2026-09-28 17:06:04","raw_log":"[2026-09-28 17:06:04] \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-09-28 17:06:04","raw_log":"[2026-09-28 17:06:04] \u26a0 FALLBACK checkout validation for 520 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 520 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:06:04","raw_log":"[2026-09-28 17:06:04] Checkout: keputusan=berhasil, nama=Devi Indah Sari, kar_id=520, id_absensi=207220299, shift=pagi, jam_kerja=9.66 jam, sumber=fallback","message":"Checkout: keputusan=berhasil, nama=Devi Indah Sari, kar_id=520, id_absensi=207220299, shift=pagi, jam_kerja=9.66 jam, sumber=fallback","category":"checkout-berhasil","severity":"success","nama":"Devi Indah Sari","kar_id":"520","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 17:07:04","raw_log":"[2026-09-28 17:07:04] Checkout: keputusan=berhasil, nama=Wildan Azhar, kar_id=347, id_absensi=207220334, shift=malam, jam_kerja=9.22 jam, sumber=schedule","message":"Checkout: keputusan=berhasil, nama=Wildan Azhar, kar_id=347, id_absensi=207220334, shift=malam, jam_kerja=9.22 jam, sumber=schedule","category":"checkout-berhasil","severity":"success","nama":"Wildan Azhar","kar_id":"347","shift":"malam","source":"schedule"},{"timestamp":"2026-09-28 17:07:04","raw_log":"[2026-09-28 17:07:04] \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-09-28 17:07:04","raw_log":"[2026-09-28 17:07:04] \u26a0 FALLBACK checkout validation for 302 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 302 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:07:04","raw_log":"[2026-09-28 17:07:04] Checkout: keputusan=berhasil, nama=Nunung Unangsih, kar_id=302, id_absensi=207220398, shift=pagi, jam_kerja=8.1 jam, sumber=fallback","message":"Checkout: keputusan=berhasil, nama=Nunung Unangsih, kar_id=302, id_absensi=207220398, shift=pagi, jam_kerja=8.1 jam, sumber=fallback","category":"checkout-berhasil","severity":"success","nama":"Nunung Unangsih","kar_id":"302","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 17:08:04","raw_log":"[2026-09-28 17:08:04] \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-09-28 17:08:04","raw_log":"[2026-09-28 17:08:04] \u26a0 FALLBACK checkout validation for 1037 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 1037 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:08:04","raw_log":"[2026-09-28 17:08:04] Checkout: keputusan=berhasil, nama=Alisya Salma Indriati, kar_id=1037, id_absensi=207220323, shift=pagi, jam_kerja=9.34 jam, sumber=fallback","message":"Checkout: keputusan=berhasil, nama=Alisya Salma Indriati, kar_id=1037, id_absensi=207220323, shift=pagi, jam_kerja=9.34 jam, sumber=fallback","category":"checkout-berhasil","severity":"success","nama":"Alisya Salma Indriati","kar_id":"1037","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 17:10:03","raw_log":"[2026-09-28 17:10:03] \u2717 REJECTED: No schedule found for 403 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 403 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:10:03","raw_log":"[2026-09-28 17:10: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-09-28 17:10:03","raw_log":"[2026-09-28 17:10:03] \u26a0 FALLBACK: Using time-based detection sore for 403 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection sore for 403 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:10:03","raw_log":"[2026-09-28 17:10:03] \u26a0 SHIFT ASSIGNED: sore (source: fallback) for nama=Wiwin Wulantika Putri, kar_id=403","message":"\u26a0 SHIFT ASSIGNED: sore (source: fallback) for nama=Wiwin Wulantika Putri, kar_id=403","category":"unknown","severity":"info","nama":"Wiwin Wulantika Putri","kar_id":"403"},{"timestamp":"2026-09-28 17:10:03","raw_log":"[2026-09-28 17:10:03] Check-in: keputusan=berhasil, nama=Wiwin Wulantika Putri, kar_id=403, id_absensi=207220413, shift=sore, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Wiwin Wulantika Putri, kar_id=403, id_absensi=207220413, shift=sore, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Wiwin Wulantika Putri","kar_id":"403","shift":"sore","source":"fallback"},{"timestamp":"2026-09-28 17:10:04","raw_log":"[2026-09-28 17:10:04] \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-09-28 17:10:04","raw_log":"[2026-09-28 17:10:04] \u26a0 FALLBACK checkout validation for 421 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 421 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:10:04","raw_log":"[2026-09-28 17:10:04] Checkout: keputusan=berhasil, nama=Gina Oktaviana, kar_id=421, id_absensi=207220368, shift=pagi, jam_kerja=9.06 jam, sumber=fallback","message":"Checkout: keputusan=berhasil, nama=Gina Oktaviana, kar_id=421, id_absensi=207220368, shift=pagi, jam_kerja=9.06 jam, sumber=fallback","category":"checkout-berhasil","severity":"success","nama":"Gina Oktaviana","kar_id":"421","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 17:14:03","raw_log":"[2026-09-28 17:14:03] \u26a0 FALLBACK: Using time-based detection pagi for 443 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 443 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:14:03","raw_log":"[2026-09-28 17:14:03] \u26a0 FALLBACK checkout validation for 443 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 443 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:14:03","raw_log":"[2026-09-28 17:14:03] Checkout: keputusan=berhasil, nama=Fariha Syifa, kar_id=443, id_absensi=207220383, shift=pagi, jam_kerja=8.89 jam, sumber=fallback","message":"Checkout: keputusan=berhasil, nama=Fariha Syifa, kar_id=443, id_absensi=207220383, shift=pagi, jam_kerja=8.89 jam, sumber=fallback","category":"checkout-berhasil","severity":"success","nama":"Fariha Syifa","kar_id":"443","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 17:16:04","raw_log":"[2026-09-28 17:16:04] \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-09-28 17:16:04","raw_log":"[2026-09-28 17:16:04] \u26a0 FALLBACK checkout validation for 320 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 320 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:16:04","raw_log":"[2026-09-28 17:16:04] Checkout: keputusan=berhasil, nama=Asep Setiawan, kar_id=320, id_absensi=207220361, shift=pagi, jam_kerja=9.21 jam, sumber=fallback","message":"Checkout: keputusan=berhasil, nama=Asep Setiawan, kar_id=320, id_absensi=207220361, shift=pagi, jam_kerja=9.21 jam, sumber=fallback","category":"checkout-berhasil","severity":"success","nama":"Asep Setiawan","kar_id":"320","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 17:17:03","raw_log":"[2026-09-28 17:17:03] \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-09-28 17:17:03","raw_log":"[2026-09-28 17:17:03] \u26a0 FALLBACK checkout validation for 1345 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 1345 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:17:03","raw_log":"[2026-09-28 17:17:03] Checkout: keputusan=berhasil, nama=Putri Zahro Pramesty, kar_id=1345, id_absensi=207220353, shift=pagi, jam_kerja=9.28 jam, sumber=fallback","message":"Checkout: keputusan=berhasil, nama=Putri Zahro Pramesty, kar_id=1345, id_absensi=207220353, shift=pagi, jam_kerja=9.28 jam, sumber=fallback","category":"checkout-berhasil","severity":"success","nama":"Putri Zahro Pramesty","kar_id":"1345","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 17:17:03","raw_log":"[2026-09-28 17:17:03] \u26a0 FALLBACK: Using time-based detection pagi for 1758 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1758 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:17:03","raw_log":"[2026-09-28 17:17:03] \u26a0 FALLBACK checkout validation for 1758 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 1758 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:17:03","raw_log":"[2026-09-28 17:17:03] Checkout: keputusan=berhasil, nama=Al Fath Arda Jatikusuma, kar_id=1758, id_absensi=207220303, shift=pagi, jam_kerja=9.83 jam, sumber=fallback","message":"Checkout: keputusan=berhasil, nama=Al Fath Arda Jatikusuma, kar_id=1758, id_absensi=207220303, shift=pagi, jam_kerja=9.83 jam, sumber=fallback","category":"checkout-berhasil","severity":"success","nama":"Al Fath Arda Jatikusuma","kar_id":"1758","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 17:17:04","raw_log":"[2026-09-28 17:17:04] \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-09-28 17:17:04","raw_log":"[2026-09-28 17:17:04] \u26a0 FALLBACK checkout validation for 1555 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 1555 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:17:04","raw_log":"[2026-09-28 17:17:04] Checkout: keputusan=berhasil, nama=Fadhilla Alfajr, kar_id=1555, id_absensi=207220384, shift=pagi, jam_kerja=8.9 jam, sumber=fallback","message":"Checkout: keputusan=berhasil, nama=Fadhilla Alfajr, kar_id=1555, id_absensi=207220384, shift=pagi, jam_kerja=8.9 jam, sumber=fallback","category":"checkout-berhasil","severity":"success","nama":"Fadhilla Alfajr","kar_id":"1555","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 17:17:04","raw_log":"[2026-09-28 17:17:04] \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-09-28 17:17:04","raw_log":"[2026-09-28 17:17:04] \u26a0 FALLBACK checkout validation for 442 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 442 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:17:04","raw_log":"[2026-09-28 17:17:04] Checkout: keputusan=berhasil, nama=Ranty Soeny Paraswaty, kar_id=442, id_absensi=207220394, shift=pagi, jam_kerja=8.57 jam, sumber=fallback","message":"Checkout: keputusan=berhasil, nama=Ranty Soeny Paraswaty, kar_id=442, id_absensi=207220394, shift=pagi, jam_kerja=8.57 jam, sumber=fallback","category":"checkout-berhasil","severity":"success","nama":"Ranty Soeny Paraswaty","kar_id":"442","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 17:17:04","raw_log":"[2026-09-28 17:17:04] \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-09-28 17:17:04","raw_log":"[2026-09-28 17:17:04] \u26a0 FALLBACK checkout validation for 1715 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 1715 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:17:04","raw_log":"[2026-09-28 17:17:04] Checkout: keputusan=berhasil, nama=Alya Azhar Haura Putri, kar_id=1715, id_absensi=207220393, shift=pagi, jam_kerja=8.71 jam, sumber=fallback","message":"Checkout: keputusan=berhasil, nama=Alya Azhar Haura Putri, kar_id=1715, id_absensi=207220393, shift=pagi, jam_kerja=8.71 jam, sumber=fallback","category":"checkout-berhasil","severity":"success","nama":"Alya Azhar Haura Putri","kar_id":"1715","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 17:17:04","raw_log":"[2026-09-28 17:17:04] \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-09-28 17:17:04","raw_log":"[2026-09-28 17:17:04] \u26a0 FALLBACK checkout validation for 1734 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 1734 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:17:04","raw_log":"[2026-09-28 17:17:04] Checkout: keputusan=berhasil, nama=Alifa Rizki Salsabila Rosadi, kar_id=1734, id_absensi=207220371, shift=pagi, jam_kerja=9.15 jam, sumber=fallback","message":"Checkout: keputusan=berhasil, nama=Alifa Rizki Salsabila Rosadi, kar_id=1734, id_absensi=207220371, shift=pagi, jam_kerja=9.15 jam, sumber=fallback","category":"checkout-berhasil","severity":"success","nama":"Alifa Rizki Salsabila Rosadi","kar_id":"1734","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 17:22:04","raw_log":"[2026-09-28 17:22:04] \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-09-28 17:22:04","raw_log":"[2026-09-28 17:22:04] \u26a0 FALLBACK checkout validation for 1317 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 1317 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:22:04","raw_log":"[2026-09-28 17:22:04] Checkout: keputusan=berhasil, nama=Vinka Anggita Permana, kar_id=1317, id_absensi=207220382, shift=pagi, jam_kerja=9.03 jam, sumber=fallback","message":"Checkout: keputusan=berhasil, nama=Vinka Anggita Permana, kar_id=1317, id_absensi=207220382, shift=pagi, jam_kerja=9.03 jam, sumber=fallback","category":"checkout-berhasil","severity":"success","nama":"Vinka Anggita Permana","kar_id":"1317","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 17:34:03","raw_log":"[2026-09-28 17:34:03] \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-09-28 17:34:03","raw_log":"[2026-09-28 17:34:03] \u26a0 FALLBACK checkout validation for 251 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 251 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:34:03","raw_log":"[2026-09-28 17:34:03] Checkout: keputusan=berhasil, nama=Pipin Sopian, kar_id=251, id_absensi=207220397, shift=pagi, jam_kerja=8.6 jam, sumber=fallback","message":"Checkout: keputusan=berhasil, nama=Pipin Sopian, kar_id=251, id_absensi=207220397, shift=pagi, jam_kerja=8.6 jam, sumber=fallback","category":"checkout-berhasil","severity":"success","nama":"Pipin Sopian","kar_id":"251","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 17:46:04","raw_log":"[2026-09-28 17:46:04] \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-09-28 17:46:04","raw_log":"[2026-09-28 17:46:04] \u26a0 FALLBACK checkout validation for 719 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 719 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:46:04","raw_log":"[2026-09-28 17:46:04] Checkout: keputusan=berhasil, nama=Ridwan Lesmana, kar_id=719, id_absensi=207220402, shift=pagi, jam_kerja=7.37 jam, sumber=fallback","message":"Checkout: keputusan=berhasil, nama=Ridwan Lesmana, kar_id=719, id_absensi=207220402, shift=pagi, jam_kerja=7.37 jam, sumber=fallback","category":"checkout-berhasil","severity":"success","nama":"Ridwan Lesmana","kar_id":"719","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 17:59:04","raw_log":"[2026-09-28 17:59:04] \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-09-28 17:59:04","raw_log":"[2026-09-28 17:59:04] \u26a0 FALLBACK checkout validation for 1740 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 1740 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 17:59:04","raw_log":"[2026-09-28 17:59:04] Checkout: keputusan=berhasil, nama=Nadela Siti Nuraisyah, kar_id=1740, id_absensi=207220344, shift=pagi, jam_kerja=10.03 jam, sumber=fallback","message":"Checkout: keputusan=berhasil, nama=Nadela Siti Nuraisyah, kar_id=1740, id_absensi=207220344, shift=pagi, jam_kerja=10.03 jam, sumber=fallback","category":"checkout-berhasil","severity":"success","nama":"Nadela Siti Nuraisyah","kar_id":"1740","shift":"pagi","source":"fallback"},{"timestamp":"2026-09-28 18:28:04","raw_log":"[2026-09-28 18:28:04] Check-in: keputusan=berhasil, nama=Hidayat, kar_id=1324, id_absensi=207220417, shift=malam, sumber=schedule","message":"Check-in: keputusan=berhasil, nama=Hidayat, kar_id=1324, id_absensi=207220417, shift=malam, sumber=schedule","category":"check-in-berhasil","severity":"success","nama":"Hidayat","kar_id":"1324","shift":"malam","source":"schedule"},{"timestamp":"2026-09-28 18:29:04","raw_log":"[2026-09-28 18:29:04] \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-09-28 18:29:04","raw_log":"[2026-09-28 18:29:04] \u26a0 FALLBACK checkout validation for 575 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 575 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 18:29:04","raw_log":"[2026-09-28 18:29:04] Tutup otomatis: keputusan=ditutup_otomatis, nama=Eka Kurnia, kar_id=575, id_absensi=207220275, shift=pagi, waktu_pulang=2026-09-28 18:18:38, alasan=jam kerja melebihi batas maksimal; fallback berdasarkan max_hours","message":"Tutup otomatis: keputusan=ditutup_otomatis, nama=Eka Kurnia, kar_id=575, id_absensi=207220275, shift=pagi, waktu_pulang=2026-09-28 18:18:38, alasan=jam kerja melebihi batas maksimal; fallback berdasarkan max_hours","category":"tutup-otomatis","severity":"warning","nama":"Eka Kurnia","kar_id":"575","shift":"pagi","alasan":"jam kerja melebihi batas maksimal; fallback berdasarkan max_hours"},{"timestamp":"2026-09-28 18:29:04","raw_log":"[2026-09-28 18:29:04] \u2717 REJECTED: No schedule found for 575 on 2026-09-28 (strict mode)","message":"\u2717 REJECTED: No schedule found for 575 on 2026-09-28 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 18:29:04","raw_log":"[2026-09-28 18:29:04] \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-09-28 18:29:04","raw_log":"[2026-09-28 18:29:04] \u26a0 WARNING: No schedule AND outside shift hours for 575 on 2026-09-28 at 2026-09-28 18:28:27","message":"\u26a0 WARNING: No schedule AND outside shift hours for 575 on 2026-09-28 at 2026-09-28 18:28:27","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 18:29:04","raw_log":"[2026-09-28 18:29:04] Check-in: keputusan=ditolak, nama=Eka Kurnia, kar_id=575, alasan=outside shift hours (Undefined); tidak ada insert ke trs_absensi","message":"Check-in: keputusan=ditolak, nama=Eka Kurnia, kar_id=575, alasan=outside shift hours (Undefined); tidak ada insert ke trs_absensi","category":"check-in-ditolak","severity":"error","nama":"Eka Kurnia","kar_id":"575","alasan":"outside shift hours (Undefined); tidak ada insert ke trs_absensi"},{"timestamp":"2026-09-28 19:25:04","raw_log":"[2026-09-28 19:25:04] \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-09-28 19:25:04","raw_log":"[2026-09-28 19:25:04] \u26a0 FALLBACK checkout validation for 193 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 193 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-09-28 19:25:04","raw_log":"[2026-09-28 19:25:04] Checkout: keputusan=berhasil, nama=Anggi Nugraha, kar_id=193, id_absensi=207220313, shift=pagi, jam_kerja=11.79 jam, sumber=fallback","message":"Checkout: keputusan=berhasil, nama=Anggi Nugraha, kar_id=193, id_absensi=207220313, shift=pagi, jam_kerja=11.79 jam, sumber=fallback","category":"checkout-berhasil","severity":"success","nama":"Anggi Nugraha","kar_id":"193","shift":"pagi","source":"fallback"}]}