{"timestamp":1779238398,"date":"history_2026-05-20","data":[{"timestamp":"2026-05-20 00:02:02","raw_log":"[2026-05-20 00:02:02] \u2717 REJECTED: No schedule found for 480 on 2026-05-20 (strict mode)","message":"\u2717 REJECTED: No schedule found for 480 on 2026-05-20 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 00:02:02","raw_log":"[2026-05-20 00:02:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Cahyadi Saputra, kar_id=480","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Cahyadi Saputra, kar_id=480","category":"fallback-mode","severity":"warning","nama":"Cahyadi Saputra","kar_id":"480"},{"timestamp":"2026-05-20 00:02:02","raw_log":"[2026-05-20 00:02:02] \u26a0 FALLBACK: Using time-based detection malam for 480 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection malam for 480 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 00:02:02","raw_log":"[2026-05-20 00:02:02] \u26a0 SHIFT ASSIGNED: malam (source: fallback) for nama=Cahyadi Saputra, kar_id=480","message":"\u26a0 SHIFT ASSIGNED: malam (source: fallback) for nama=Cahyadi Saputra, kar_id=480","category":"unknown","severity":"info","nama":"Cahyadi Saputra","kar_id":"480"},{"timestamp":"2026-05-20 00:02:02","raw_log":"[2026-05-20 00:02:02] Check-in: keputusan=berhasil, nama=Cahyadi Saputra, kar_id=480, id_absensi=207205575, shift=malam, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Cahyadi Saputra, kar_id=480, id_absensi=207205575, shift=malam, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Cahyadi Saputra","kar_id":"480","shift":"malam","source":"fallback"},{"timestamp":"2026-05-20 00:57:01","raw_log":"[2026-05-20 00:57:01] \u2717 REJECTED: No schedule found for 169 on 2026-05-20 (strict mode)","message":"\u2717 REJECTED: No schedule found for 169 on 2026-05-20 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 00:57:01","raw_log":"[2026-05-20 00:57:01] \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-05-20 00:57:01","raw_log":"[2026-05-20 00:57:01] \u26a0 FALLBACK: Using time-based detection malam for 169 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection malam for 169 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 00:57:01","raw_log":"[2026-05-20 00:57:01] \u26a0 SHIFT ASSIGNED: malam (source: fallback) for nama=Islah Mutaqin, kar_id=169","message":"\u26a0 SHIFT ASSIGNED: malam (source: fallback) for nama=Islah Mutaqin, kar_id=169","category":"unknown","severity":"info","nama":"Islah Mutaqin","kar_id":"169"},{"timestamp":"2026-05-20 00:57:01","raw_log":"[2026-05-20 00:57:01] Check-in: keputusan=berhasil, nama=Islah Mutaqin, kar_id=169, id_absensi=207205576, shift=malam, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Islah Mutaqin, kar_id=169, id_absensi=207205576, shift=malam, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Islah Mutaqin","kar_id":"169","shift":"malam","source":"fallback"},{"timestamp":"2026-05-20 06:25:01","raw_log":"[2026-05-20 06:25:01] \u2717 REJECTED: No schedule found for 575 on 2026-05-20 (strict mode)","message":"\u2717 REJECTED: No schedule found for 575 on 2026-05-20 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 06:25:01","raw_log":"[2026-05-20 06:25:01] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Eka Kurnia, kar_id=575","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Eka Kurnia, kar_id=575","category":"fallback-mode","severity":"warning","nama":"Eka Kurnia","kar_id":"575"},{"timestamp":"2026-05-20 06:25:01","raw_log":"[2026-05-20 06:25:01] \u26a0 FALLBACK: Using time-based detection pagi for 575 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 575 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 06:25:01","raw_log":"[2026-05-20 06:25:01] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Eka Kurnia, kar_id=575","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Eka Kurnia, kar_id=575","category":"unknown","severity":"info","nama":"Eka Kurnia","kar_id":"575"},{"timestamp":"2026-05-20 06:25:01","raw_log":"[2026-05-20 06:25:01] Check-in: keputusan=berhasil, nama=Eka Kurnia, kar_id=575, id_absensi=207205579, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Eka Kurnia, kar_id=575, id_absensi=207205579, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Eka Kurnia","kar_id":"575","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-20 06:34:01","raw_log":"[2026-05-20 06:34:01] Check-in: keputusan=berhasil, nama=Hidayat, kar_id=1324, id_absensi=207205580, shift=malam, sumber=schedule","message":"Check-in: keputusan=berhasil, nama=Hidayat, kar_id=1324, id_absensi=207205580, shift=malam, sumber=schedule","category":"check-in-berhasil","severity":"success","nama":"Hidayat","kar_id":"1324","shift":"malam","source":"schedule"},{"timestamp":"2026-05-20 06:39:01","raw_log":"[2026-05-20 06:39:01] \u2717 REJECTED: No schedule found for 1747 on 2026-05-20 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1747 on 2026-05-20 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 06:39:01","raw_log":"[2026-05-20 06:39:01] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Yulis Setiawan, kar_id=1747","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Yulis Setiawan, kar_id=1747","category":"fallback-mode","severity":"warning","nama":"Yulis Setiawan","kar_id":"1747"},{"timestamp":"2026-05-20 06:39:01","raw_log":"[2026-05-20 06:39:01] \u26a0 FALLBACK: Using time-based detection pagi for 1747 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1747 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 06:39:01","raw_log":"[2026-05-20 06:39:01] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Yulis Setiawan, kar_id=1747","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Yulis Setiawan, kar_id=1747","category":"unknown","severity":"info","nama":"Yulis Setiawan","kar_id":"1747"},{"timestamp":"2026-05-20 06:39:01","raw_log":"[2026-05-20 06:39:01] Check-in: keputusan=berhasil, nama=Yulis Setiawan, kar_id=1747, id_absensi=207205581, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Yulis Setiawan, kar_id=1747, id_absensi=207205581, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Yulis Setiawan","kar_id":"1747","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-20 07:02:02","raw_log":"[2026-05-20 07:02:02] \u2717 REJECTED: No schedule found for 1590 on 2026-05-20 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1590 on 2026-05-20 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:02:02","raw_log":"[2026-05-20 07:02:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Muhammad Husni Mubarok, kar_id=1590","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Muhammad Husni Mubarok, kar_id=1590","category":"fallback-mode","severity":"warning","nama":"Muhammad Husni Mubarok","kar_id":"1590"},{"timestamp":"2026-05-20 07:02:02","raw_log":"[2026-05-20 07:02:02] \u26a0 FALLBACK: Using time-based detection pagi for 1590 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1590 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:02:02","raw_log":"[2026-05-20 07:02:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Muhammad Husni Mubarok, kar_id=1590","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Muhammad Husni Mubarok, kar_id=1590","category":"unknown","severity":"info","nama":"Muhammad Husni Mubarok","kar_id":"1590"},{"timestamp":"2026-05-20 07:02:02","raw_log":"[2026-05-20 07:02:02] Check-in: keputusan=berhasil, nama=Muhammad Husni Mubarok, kar_id=1590, id_absensi=207205589, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Muhammad Husni Mubarok, kar_id=1590, id_absensi=207205589, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Muhammad Husni Mubarok","kar_id":"1590","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-20 07:02:03","raw_log":"[2026-05-20 07:02:03] \u2717 REJECTED: No schedule found for 713 on 2026-05-20 (strict mode)","message":"\u2717 REJECTED: No schedule found for 713 on 2026-05-20 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:02:03","raw_log":"[2026-05-20 07:02:03] \u26a0 ALLOWING FALLBACK: Schedule coverage only 37.5% for nama=Nandang, kar_id=713","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 37.5% for nama=Nandang, kar_id=713","category":"fallback-mode","severity":"warning","nama":"Nandang","kar_id":"713"},{"timestamp":"2026-05-20 07:02:03","raw_log":"[2026-05-20 07:02:03] \u26a0 FALLBACK: Using time-based detection pagi for 713 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 713 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:02:03","raw_log":"[2026-05-20 07:02:03] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Nandang, kar_id=713","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Nandang, kar_id=713","category":"unknown","severity":"info","nama":"Nandang","kar_id":"713"},{"timestamp":"2026-05-20 07:02:03","raw_log":"[2026-05-20 07:02:03] Check-in: keputusan=berhasil, nama=Nandang, kar_id=713, id_absensi=207205590, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Nandang, kar_id=713, id_absensi=207205590, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Nandang","kar_id":"713","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-20 07:11:02","raw_log":"[2026-05-20 07:11:02] \u2717 REJECTED: No schedule found for 560 on 2026-05-20 (strict mode)","message":"\u2717 REJECTED: No schedule found for 560 on 2026-05-20 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:11:02","raw_log":"[2026-05-20 07:11: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-05-20 07:11:02","raw_log":"[2026-05-20 07:11: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-05-20 07:11:02","raw_log":"[2026-05-20 07:11: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-05-20 07:11:02","raw_log":"[2026-05-20 07:11:02] Check-in: keputusan=berhasil, nama=Dedi Cahyadi, kar_id=560, id_absensi=207205598, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Dedi Cahyadi, kar_id=560, id_absensi=207205598, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Dedi Cahyadi","kar_id":"560","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-20 07:22:02","raw_log":"[2026-05-20 07:22:02] \u2717 REJECTED: No schedule found for 347 on 2026-05-20 (strict mode)","message":"\u2717 REJECTED: No schedule found for 347 on 2026-05-20 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:22:02","raw_log":"[2026-05-20 07:22:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Wildan Azhar, kar_id=347","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Wildan Azhar, kar_id=347","category":"fallback-mode","severity":"warning","nama":"Wildan Azhar","kar_id":"347"},{"timestamp":"2026-05-20 07:22:02","raw_log":"[2026-05-20 07:22:02] \u26a0 FALLBACK: Using time-based detection pagi for 347 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 347 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:22:02","raw_log":"[2026-05-20 07:22:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Wildan Azhar, kar_id=347","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Wildan Azhar, kar_id=347","category":"unknown","severity":"info","nama":"Wildan Azhar","kar_id":"347"},{"timestamp":"2026-05-20 07:22:02","raw_log":"[2026-05-20 07:22:02] Check-in: keputusan=berhasil, nama=Wildan Azhar, kar_id=347, id_absensi=207205605, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Wildan Azhar, kar_id=347, id_absensi=207205605, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Wildan Azhar","kar_id":"347","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-20 07:26:02","raw_log":"[2026-05-20 07:26:02] \u2717 REJECTED: No schedule found for 862 on 2026-05-20 (strict mode)","message":"\u2717 REJECTED: No schedule found for 862 on 2026-05-20 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:26:02","raw_log":"[2026-05-20 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-05-20 07:26:02","raw_log":"[2026-05-20 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-05-20 07:26:02","raw_log":"[2026-05-20 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-05-20 07:26:02","raw_log":"[2026-05-20 07:26:02] Check-in: keputusan=berhasil, nama=Desi Anggraeni, kar_id=862, id_absensi=207205608, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Desi Anggraeni, kar_id=862, id_absensi=207205608, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Desi Anggraeni","kar_id":"862","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-20 07:27:02","raw_log":"[2026-05-20 07:27:02] \u2717 REJECTED: No schedule found for 520 on 2026-05-20 (strict mode)","message":"\u2717 REJECTED: No schedule found for 520 on 2026-05-20 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:27:02","raw_log":"[2026-05-20 07:27: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-05-20 07:27:02","raw_log":"[2026-05-20 07:27: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-05-20 07:27:02","raw_log":"[2026-05-20 07:27: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-05-20 07:27:02","raw_log":"[2026-05-20 07:27:02] Check-in: keputusan=berhasil, nama=Devi Indah Sari, kar_id=520, id_absensi=207205610, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Devi Indah Sari, kar_id=520, id_absensi=207205610, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Devi Indah Sari","kar_id":"520","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-20 07:27:02","raw_log":"[2026-05-20 07:27:02] \u2717 REJECTED: No schedule found for 1177 on 2026-05-20 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1177 on 2026-05-20 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:27:02","raw_log":"[2026-05-20 07:27:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Moch Adnan Haikal Bayhaqi, kar_id=1177","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Moch Adnan Haikal Bayhaqi, kar_id=1177","category":"fallback-mode","severity":"warning","nama":"Moch Adnan Haikal Bayhaqi","kar_id":"1177"},{"timestamp":"2026-05-20 07:27:02","raw_log":"[2026-05-20 07:27:02] \u26a0 FALLBACK: Using time-based detection pagi for 1177 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1177 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:27:02","raw_log":"[2026-05-20 07:27:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Moch Adnan Haikal Bayhaqi, kar_id=1177","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Moch Adnan Haikal Bayhaqi, kar_id=1177","category":"unknown","severity":"info","nama":"Moch Adnan Haikal Bayhaqi","kar_id":"1177"},{"timestamp":"2026-05-20 07:27:02","raw_log":"[2026-05-20 07:27:02] Check-in: keputusan=berhasil, nama=Moch Adnan Haikal Bayhaqi, kar_id=1177, id_absensi=207205611, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Moch Adnan Haikal Bayhaqi, kar_id=1177, id_absensi=207205611, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Moch Adnan Haikal Bayhaqi","kar_id":"1177","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-20 07:28:02","raw_log":"[2026-05-20 07:28:02] \u2717 REJECTED: No schedule found for 697 on 2026-05-20 (strict mode)","message":"\u2717 REJECTED: No schedule found for 697 on 2026-05-20 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:28:02","raw_log":"[2026-05-20 07:28:02] \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-05-20 07:28:02","raw_log":"[2026-05-20 07:28:02] \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-05-20 07:28:02","raw_log":"[2026-05-20 07:28:02] \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-05-20 07:28:02","raw_log":"[2026-05-20 07:28:02] Check-in: keputusan=berhasil, nama=Rivkey Raka Bima Ardiansyah, kar_id=697, id_absensi=207205612, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Rivkey Raka Bima Ardiansyah, kar_id=697, id_absensi=207205612, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Rivkey Raka Bima Ardiansyah","kar_id":"697","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-20 07:33:02","raw_log":"[2026-05-20 07:33:02] \u2717 REJECTED: No schedule found for 731 on 2026-05-20 (strict mode)","message":"\u2717 REJECTED: No schedule found for 731 on 2026-05-20 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:33:02","raw_log":"[2026-05-20 07:33:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Ahmad Mulya, kar_id=731","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Ahmad Mulya, kar_id=731","category":"fallback-mode","severity":"warning","nama":"Ahmad Mulya","kar_id":"731"},{"timestamp":"2026-05-20 07:33:02","raw_log":"[2026-05-20 07:33:02] \u26a0 FALLBACK: Using time-based detection pagi for 731 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 731 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:33:02","raw_log":"[2026-05-20 07:33:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Ahmad Mulya, kar_id=731","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Ahmad Mulya, kar_id=731","category":"unknown","severity":"info","nama":"Ahmad Mulya","kar_id":"731"},{"timestamp":"2026-05-20 07:33:02","raw_log":"[2026-05-20 07:33:02] Check-in: keputusan=berhasil, nama=Ahmad Mulya, kar_id=731, id_absensi=207205618, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Ahmad Mulya, kar_id=731, id_absensi=207205618, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Ahmad Mulya","kar_id":"731","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-20 07:34:02","raw_log":"[2026-05-20 07:34:02] \u2717 REJECTED: No schedule found for 193 on 2026-05-20 (strict mode)","message":"\u2717 REJECTED: No schedule found for 193 on 2026-05-20 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:34:02","raw_log":"[2026-05-20 07:34: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-05-20 07:34:02","raw_log":"[2026-05-20 07:34: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-05-20 07:34:02","raw_log":"[2026-05-20 07:34: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-05-20 07:34:02","raw_log":"[2026-05-20 07:34:02] Check-in: keputusan=berhasil, nama=Anggi Nugraha, kar_id=193, id_absensi=207205622, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Anggi Nugraha, kar_id=193, id_absensi=207205622, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Anggi Nugraha","kar_id":"193","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-20 07:36:02","raw_log":"[2026-05-20 07:36:02] \u2717 REJECTED: No schedule found for 311 on 2026-05-20 (strict mode)","message":"\u2717 REJECTED: No schedule found for 311 on 2026-05-20 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:36:02","raw_log":"[2026-05-20 07:36:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Imantri Didit Purnomo Aji, kar_id=311","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Imantri Didit Purnomo Aji, kar_id=311","category":"fallback-mode","severity":"warning","nama":"Imantri Didit Purnomo Aji","kar_id":"311"},{"timestamp":"2026-05-20 07:36:02","raw_log":"[2026-05-20 07:36:02] \u26a0 FALLBACK: Using time-based detection pagi for 311 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 311 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:36:02","raw_log":"[2026-05-20 07:36:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Imantri Didit Purnomo Aji, kar_id=311","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Imantri Didit Purnomo Aji, kar_id=311","category":"unknown","severity":"info","nama":"Imantri Didit Purnomo Aji","kar_id":"311"},{"timestamp":"2026-05-20 07:36:02","raw_log":"[2026-05-20 07:36:02] Check-in: keputusan=berhasil, nama=Imantri Didit Purnomo Aji, kar_id=311, id_absensi=207205623, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Imantri Didit Purnomo Aji, kar_id=311, id_absensi=207205623, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Imantri Didit Purnomo Aji","kar_id":"311","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-20 07:36:03","raw_log":"[2026-05-20 07:36:03] \u2717 REJECTED: No schedule found for 320 on 2026-05-20 (strict mode)","message":"\u2717 REJECTED: No schedule found for 320 on 2026-05-20 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:36:03","raw_log":"[2026-05-20 07:36: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-05-20 07:36:03","raw_log":"[2026-05-20 07:36: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-05-20 07:36:03","raw_log":"[2026-05-20 07:36: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-05-20 07:36:03","raw_log":"[2026-05-20 07:36:03] Check-in: keputusan=berhasil, nama=Asep Setiawan, kar_id=320, id_absensi=207205624, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Asep Setiawan, kar_id=320, id_absensi=207205624, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Asep Setiawan","kar_id":"320","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-20 07:36:03","raw_log":"[2026-05-20 07:36:03] \u2717 REJECTED: No schedule found for 1401 on 2026-05-20 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1401 on 2026-05-20 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:36:03","raw_log":"[2026-05-20 07:36:03] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Happy Adisti, kar_id=1401","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Happy Adisti, kar_id=1401","category":"fallback-mode","severity":"warning","nama":"Happy Adisti","kar_id":"1401"},{"timestamp":"2026-05-20 07:36:03","raw_log":"[2026-05-20 07:36:03] \u26a0 FALLBACK: Using time-based detection pagi for 1401 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1401 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:36:03","raw_log":"[2026-05-20 07:36:03] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Happy Adisti, kar_id=1401","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Happy Adisti, kar_id=1401","category":"unknown","severity":"info","nama":"Happy Adisti","kar_id":"1401"},{"timestamp":"2026-05-20 07:36:03","raw_log":"[2026-05-20 07:36:03] Check-in: keputusan=berhasil, nama=Happy Adisti, kar_id=1401, id_absensi=207205625, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Happy Adisti, kar_id=1401, id_absensi=207205625, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Happy Adisti","kar_id":"1401","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-20 07:37:02","raw_log":"[2026-05-20 07:37:02] \u2717 REJECTED: No schedule found for 717 on 2026-05-20 (strict mode)","message":"\u2717 REJECTED: No schedule found for 717 on 2026-05-20 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:37:02","raw_log":"[2026-05-20 07:37:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Kiki Kurniawan, kar_id=717","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Kiki Kurniawan, kar_id=717","category":"fallback-mode","severity":"warning","nama":"Kiki Kurniawan","kar_id":"717"},{"timestamp":"2026-05-20 07:37:02","raw_log":"[2026-05-20 07:37:02] \u26a0 FALLBACK: Using time-based detection pagi for 717 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 717 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:37:02","raw_log":"[2026-05-20 07:37:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Kiki Kurniawan, kar_id=717","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Kiki Kurniawan, kar_id=717","category":"unknown","severity":"info","nama":"Kiki Kurniawan","kar_id":"717"},{"timestamp":"2026-05-20 07:37:02","raw_log":"[2026-05-20 07:37:02] Check-in: keputusan=berhasil, nama=Kiki Kurniawan, kar_id=717, id_absensi=207205627, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Kiki Kurniawan, kar_id=717, id_absensi=207205627, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Kiki Kurniawan","kar_id":"717","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-20 07:39:02","raw_log":"[2026-05-20 07:39:02] \u2717 REJECTED: No schedule found for 611 on 2026-05-20 (strict mode)","message":"\u2717 REJECTED: No schedule found for 611 on 2026-05-20 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:39:02","raw_log":"[2026-05-20 07:39:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Desi Ria Puspita, kar_id=611","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Desi Ria Puspita, kar_id=611","category":"fallback-mode","severity":"warning","nama":"Desi Ria Puspita","kar_id":"611"},{"timestamp":"2026-05-20 07:39:02","raw_log":"[2026-05-20 07:39:02] \u26a0 FALLBACK: Using time-based detection pagi for 611 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 611 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:39:02","raw_log":"[2026-05-20 07:39:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Desi Ria Puspita, kar_id=611","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Desi Ria Puspita, kar_id=611","category":"unknown","severity":"info","nama":"Desi Ria Puspita","kar_id":"611"},{"timestamp":"2026-05-20 07:39:02","raw_log":"[2026-05-20 07:39:02] Check-in: keputusan=berhasil, nama=Desi Ria Puspita, kar_id=611, id_absensi=207205630, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Desi Ria Puspita, kar_id=611, id_absensi=207205630, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Desi Ria Puspita","kar_id":"611","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-20 07:40:03","raw_log":"[2026-05-20 07:40:03] \u2717 REJECTED: No schedule found for 386 on 2026-05-20 (strict mode)","message":"\u2717 REJECTED: No schedule found for 386 on 2026-05-20 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:40:03","raw_log":"[2026-05-20 07:40: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-05-20 07:40:03","raw_log":"[2026-05-20 07:40: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-05-20 07:40:03","raw_log":"[2026-05-20 07:40: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-05-20 07:40:03","raw_log":"[2026-05-20 07:40:03] Check-in: keputusan=berhasil, nama=Endang, kar_id=386, id_absensi=207205632, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Endang, kar_id=386, id_absensi=207205632, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Endang","kar_id":"386","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-20 07:42:03","raw_log":"[2026-05-20 07:42:03] \u2717 REJECTED: No schedule found for 1748 on 2026-05-20 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1748 on 2026-05-20 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:42:03","raw_log":"[2026-05-20 07:42:03] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Syifa Rahma Al-Insani, kar_id=1748","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Syifa Rahma Al-Insani, kar_id=1748","category":"fallback-mode","severity":"warning","nama":"Syifa Rahma Al-Insani","kar_id":"1748"},{"timestamp":"2026-05-20 07:42:03","raw_log":"[2026-05-20 07:42:03] \u26a0 FALLBACK: Using time-based detection pagi for 1748 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1748 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:42:03","raw_log":"[2026-05-20 07:42:03] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Syifa Rahma Al-Insani, kar_id=1748","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Syifa Rahma Al-Insani, kar_id=1748","category":"unknown","severity":"info","nama":"Syifa Rahma Al-Insani","kar_id":"1748"},{"timestamp":"2026-05-20 07:42:03","raw_log":"[2026-05-20 07:42:03] Check-in: keputusan=berhasil, nama=Syifa Rahma Al-Insani, kar_id=1748, id_absensi=207205634, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Syifa Rahma Al-Insani, kar_id=1748, id_absensi=207205634, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Syifa Rahma Al-Insani","kar_id":"1748","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-20 07:43:02","raw_log":"[2026-05-20 07:43:02] \u2717 REJECTED: No schedule found for 1583 on 2026-05-20 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1583 on 2026-05-20 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:43:02","raw_log":"[2026-05-20 07:43:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Ahmad Sayidi, kar_id=1583","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Ahmad Sayidi, kar_id=1583","category":"fallback-mode","severity":"warning","nama":"Ahmad Sayidi","kar_id":"1583"},{"timestamp":"2026-05-20 07:43:02","raw_log":"[2026-05-20 07:43:02] \u26a0 FALLBACK: Using time-based detection pagi for 1583 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1583 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:43:02","raw_log":"[2026-05-20 07:43:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Ahmad Sayidi, kar_id=1583","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Ahmad Sayidi, kar_id=1583","category":"unknown","severity":"info","nama":"Ahmad Sayidi","kar_id":"1583"},{"timestamp":"2026-05-20 07:43:02","raw_log":"[2026-05-20 07:43:02] Check-in: keputusan=berhasil, nama=Ahmad Sayidi, kar_id=1583, id_absensi=207205635, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Ahmad Sayidi, kar_id=1583, id_absensi=207205635, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Ahmad Sayidi","kar_id":"1583","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-20 07:46:02","raw_log":"[2026-05-20 07:46:02] \u2717 REJECTED: No schedule found for 454 on 2026-05-20 (strict mode)","message":"\u2717 REJECTED: No schedule found for 454 on 2026-05-20 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:46:02","raw_log":"[2026-05-20 07:46:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Agung Kurniawan, kar_id=454","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Agung Kurniawan, kar_id=454","category":"fallback-mode","severity":"warning","nama":"Agung Kurniawan","kar_id":"454"},{"timestamp":"2026-05-20 07:46:02","raw_log":"[2026-05-20 07:46:02] \u26a0 FALLBACK: Using time-based detection pagi for 454 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 454 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:46:02","raw_log":"[2026-05-20 07:46:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Agung Kurniawan, kar_id=454","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Agung Kurniawan, kar_id=454","category":"unknown","severity":"info","nama":"Agung Kurniawan","kar_id":"454"},{"timestamp":"2026-05-20 07:46:02","raw_log":"[2026-05-20 07:46:02] Check-in: keputusan=berhasil, nama=Agung Kurniawan, kar_id=454, id_absensi=207205639, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Agung Kurniawan, kar_id=454, id_absensi=207205639, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Agung Kurniawan","kar_id":"454","shift":"pagi","source":"fallback"},{"timestamp":"2026-05-20 07:48:02","raw_log":"[2026-05-20 07:48:02] \u2717 REJECTED: No schedule found for 1729 on 2026-05-20 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1729 on 2026-05-20 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:48:02","raw_log":"[2026-05-20 07:48:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Ferina Afriani, kar_id=1729","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Ferina Afriani, kar_id=1729","category":"fallback-mode","severity":"warning","nama":"Ferina Afriani","kar_id":"1729"},{"timestamp":"2026-05-20 07:48:02","raw_log":"[2026-05-20 07:48:02] \u26a0 FALLBACK: Using time-based detection pagi for 1729 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1729 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-05-20 07:48:02","raw_log":"[2026-05-20 07:48:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Ferina Afriani, kar_id=1729","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Ferina Afriani, kar_id=1729","category":"unknown","severity":"info","nama":"Ferina Afriani","kar_id":"1729"},{"timestamp":"2026-05-20 07:48:02","raw_log":"[2026-05-20 07:48:02] Check-in: keputusan=berhasil, nama=Ferina Afriani, kar_id=1729, id_absensi=207205643, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Ferina Afriani, kar_id=1729, id_absensi=207205643, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Ferina Afriani","kar_id":"1729","shift":"pagi","source":"fallback"}]}