{"timestamp":1788016377,"date":"history_2026-08-29","data":[{"timestamp":"2026-08-29 00:35:02","raw_log":"[2026-08-29 00:35:02] Check-in: keputusan=berhasil, nama=Bima Pratama Putra, kar_id=1268, id_absensi=207217000, shift=malam, sumber=schedule","message":"Check-in: keputusan=berhasil, nama=Bima Pratama Putra, kar_id=1268, id_absensi=207217000, shift=malam, sumber=schedule","category":"check-in-berhasil","severity":"success","nama":"Bima Pratama Putra","kar_id":"1268","shift":"malam","source":"schedule"},{"timestamp":"2026-08-29 00:46:01","raw_log":"[2026-08-29 00:46:01] Checkout: keputusan=berhasil, nama=Aldi Agung Gunawan, kar_id=1759, id_absensi=207216992, shift=sore, jam_kerja=8.39 jam, sumber=schedule","message":"Checkout: keputusan=berhasil, nama=Aldi Agung Gunawan, kar_id=1759, id_absensi=207216992, shift=sore, jam_kerja=8.39 jam, sumber=schedule","category":"checkout-berhasil","severity":"success","nama":"Aldi Agung Gunawan","kar_id":"1759","shift":"sore","source":"schedule"},{"timestamp":"2026-08-29 01:06:02","raw_log":"[2026-08-29 01:06:02] Checkout: keputusan=berhasil, nama=Elang Ragil Rusmana Putra, kar_id=363, id_absensi=207216991, shift=sore, jam_kerja=8.94 jam, sumber=schedule","message":"Checkout: keputusan=berhasil, nama=Elang Ragil Rusmana Putra, kar_id=363, id_absensi=207216991, shift=sore, jam_kerja=8.94 jam, sumber=schedule","category":"checkout-berhasil","severity":"success","nama":"Elang Ragil Rusmana Putra","kar_id":"363","shift":"sore","source":"schedule"},{"timestamp":"2026-08-29 04:27:05","raw_log":"[2026-08-29 04:27:05] [AIVEN] Koneksi gagal (non-fatal): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond","message":"[AIVEN] Koneksi gagal (non-fatal): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond","category":"error","severity":"critical"},{"timestamp":"2026-08-29 05:09:05","raw_log":"[2026-08-29 05:09:05] [AIVEN] Koneksi gagal (non-fatal): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond","message":"[AIVEN] Koneksi gagal (non-fatal): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond","category":"error","severity":"critical"},{"timestamp":"2026-08-29 05:10:05","raw_log":"[2026-08-29 05:10:05] [AIVEN] Koneksi gagal (non-fatal): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond","message":"[AIVEN] Koneksi gagal (non-fatal): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond","category":"error","severity":"critical"},{"timestamp":"2026-08-29 06:26:02","raw_log":"[2026-08-29 06:26:02] \u2717 REJECTED: No schedule found for 1324 on 2026-08-29 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1324 on 2026-08-29 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-08-29 06:26:02","raw_log":"[2026-08-29 06:26:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 37.5% for nama=Hidayat, kar_id=1324","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 37.5% for nama=Hidayat, kar_id=1324","category":"fallback-mode","severity":"warning","nama":"Hidayat","kar_id":"1324"},{"timestamp":"2026-08-29 06:26:02","raw_log":"[2026-08-29 06:26:02] \u26a0 FALLBACK: Using time-based detection pagi for 1324 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1324 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-08-29 06:26:02","raw_log":"[2026-08-29 06:26:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Hidayat, kar_id=1324","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Hidayat, kar_id=1324","category":"unknown","severity":"info","nama":"Hidayat","kar_id":"1324"},{"timestamp":"2026-08-29 06:26:02","raw_log":"[2026-08-29 06:26:02] Check-in: keputusan=berhasil, nama=Hidayat, kar_id=1324, id_absensi=207217004, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Hidayat, kar_id=1324, id_absensi=207217004, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Hidayat","kar_id":"1324","shift":"pagi","source":"fallback"},{"timestamp":"2026-08-29 07:03:02","raw_log":"[2026-08-29 07:03:02] Checkout: keputusan=berhasil, nama=Nandang, kar_id=713, id_absensi=207216999, shift=malam, jam_kerja=12.52 jam, sumber=schedule","message":"Checkout: keputusan=berhasil, nama=Nandang, kar_id=713, id_absensi=207216999, shift=malam, jam_kerja=12.52 jam, sumber=schedule","category":"checkout-berhasil","severity":"success","nama":"Nandang","kar_id":"713","shift":"malam","source":"schedule"},{"timestamp":"2026-08-29 07:58:40","raw_log":"[2026-08-29 07:58:40] \u2717 REJECTED: No schedule found for 1754 on 2026-08-29 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1754 on 2026-08-29 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-08-29 07:58:40","raw_log":"[2026-08-29 07:58:40] \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-08-29 07:58:41","raw_log":"[2026-08-29 07:58:41] \u26a0 FALLBACK: Using time-based detection pagi for 1754 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1754 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-08-29 07:58:42","raw_log":"[2026-08-29 07:58:42] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Muhammad Zidan Munggaran, kar_id=1754","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Muhammad Zidan Munggaran, kar_id=1754","category":"unknown","severity":"info","nama":"Muhammad Zidan Munggaran","kar_id":"1754"},{"timestamp":"2026-08-29 07:58:42","raw_log":"[2026-08-29 07:58:42] Check-in: keputusan=berhasil, nama=Muhammad Zidan Munggaran, kar_id=1754, id_absensi=207217011, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Muhammad Zidan Munggaran, kar_id=1754, id_absensi=207217011, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Muhammad Zidan Munggaran","kar_id":"1754","shift":"pagi","source":"fallback"},{"timestamp":"2026-08-29 08:10:51","raw_log":"[2026-08-29 08:10:51] \u2717 REJECTED: No schedule found for 480 on 2026-08-29 (strict mode)","message":"\u2717 REJECTED: No schedule found for 480 on 2026-08-29 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-08-29 08:10:51","raw_log":"[2026-08-29 08:10:51] \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-08-29 08:10:51","raw_log":"[2026-08-29 08:10:51] \u26a0 FALLBACK: Using time-based detection pagi for 480 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 480 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-08-29 08:10:51","raw_log":"[2026-08-29 08:10:51] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Cahyadi Saputra, kar_id=480","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Cahyadi Saputra, kar_id=480","category":"unknown","severity":"info","nama":"Cahyadi Saputra","kar_id":"480"},{"timestamp":"2026-08-29 08:10:51","raw_log":"[2026-08-29 08:10:51] Check-in: keputusan=berhasil, nama=Cahyadi Saputra, kar_id=480, id_absensi=207217013, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Cahyadi Saputra, kar_id=480, id_absensi=207217013, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Cahyadi Saputra","kar_id":"480","shift":"pagi","source":"fallback"},{"timestamp":"2026-08-29 08:14:47","raw_log":"[2026-08-29 08:14:47] Check-in: keputusan=berhasil, nama=Andre Saputra, kar_id=485, id_absensi=207217014, shift=sore, sumber=schedule","message":"Check-in: keputusan=berhasil, nama=Andre Saputra, kar_id=485, id_absensi=207217014, shift=sore, sumber=schedule","category":"check-in-berhasil","severity":"success","nama":"Andre Saputra","kar_id":"485","shift":"sore","source":"schedule"},{"timestamp":"2026-08-29 08:17:48","raw_log":"[2026-08-29 08:17:48] \u2717 REJECTED: No schedule found for 1723 on 2026-08-29 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1723 on 2026-08-29 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-08-29 08:17:48","raw_log":"[2026-08-29 08:17:48] \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-08-29 08:17:48","raw_log":"[2026-08-29 08:17:48] \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-08-29 08:17:48","raw_log":"[2026-08-29 08:17:48] \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-08-29 08:17:48","raw_log":"[2026-08-29 08:17:48] Check-in: keputusan=berhasil, nama=Angga Nur Rizki, kar_id=1723, id_absensi=207217015, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Angga Nur Rizki, kar_id=1723, id_absensi=207217015, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Angga Nur Rizki","kar_id":"1723","shift":"pagi","source":"fallback"},{"timestamp":"2026-08-29 09:10:02","raw_log":"[2026-08-29 09:10:02] \u2717 REJECTED: No schedule found for 668 on 2026-08-29 (strict mode)","message":"\u2717 REJECTED: No schedule found for 668 on 2026-08-29 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-08-29 09:10:02","raw_log":"[2026-08-29 09:10:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Muhammad Ikbal Al Ghiffari, kar_id=668","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Muhammad Ikbal Al Ghiffari, kar_id=668","category":"fallback-mode","severity":"warning","nama":"Muhammad Ikbal Al Ghiffari","kar_id":"668"},{"timestamp":"2026-08-29 09:10:02","raw_log":"[2026-08-29 09:10:02] \u26a0 FALLBACK: Using time-based detection pagi for 668 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 668 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-08-29 09:10:02","raw_log":"[2026-08-29 09:10:02] \u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Muhammad Ikbal Al Ghiffari, kar_id=668","message":"\u26a0 SHIFT ASSIGNED: pagi (source: fallback) for nama=Muhammad Ikbal Al Ghiffari, kar_id=668","category":"unknown","severity":"info","nama":"Muhammad Ikbal Al Ghiffari","kar_id":"668"},{"timestamp":"2026-08-29 09:10:02","raw_log":"[2026-08-29 09:10:02] Check-in: keputusan=berhasil, nama=Muhammad Ikbal Al Ghiffari, kar_id=668, id_absensi=207217017, shift=pagi, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Muhammad Ikbal Al Ghiffari, kar_id=668, id_absensi=207217017, shift=pagi, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Muhammad Ikbal Al Ghiffari","kar_id":"668","shift":"pagi","source":"fallback"},{"timestamp":"2026-08-29 10:20:12","raw_log":"[2026-08-29 10:20:12] [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-08-29 13:08:05","raw_log":"[2026-08-29 13:08:05] [AIVEN] Koneksi gagal (non-fatal): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond","message":"[AIVEN] Koneksi gagal (non-fatal): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond","category":"error","severity":"critical"},{"timestamp":"2026-08-29 14:42:05","raw_log":"[2026-08-29 14:42:05] [AIVEN] Koneksi gagal (non-fatal): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond","message":"[AIVEN] Koneksi gagal (non-fatal): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond","category":"error","severity":"critical"},{"timestamp":"2026-08-29 15:05:05","raw_log":"[2026-08-29 15:05:05] [AIVEN] Koneksi gagal (non-fatal): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond","message":"[AIVEN] Koneksi gagal (non-fatal): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond","category":"error","severity":"critical"},{"timestamp":"2026-08-29 16:24:02","raw_log":"[2026-08-29 16:24:02] Check-in: keputusan=berhasil, nama=Aldi Agung Gunawan, kar_id=1759, id_absensi=207217018, shift=sore, sumber=schedule","message":"Check-in: keputusan=berhasil, nama=Aldi Agung Gunawan, kar_id=1759, id_absensi=207217018, shift=sore, sumber=schedule","category":"check-in-berhasil","severity":"success","nama":"Aldi Agung Gunawan","kar_id":"1759","shift":"sore","source":"schedule"},{"timestamp":"2026-08-29 17:08:02","raw_log":"[2026-08-29 17:08:02] \u2717 REJECTED: No schedule found for 1703 on 2026-08-29 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1703 on 2026-08-29 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-08-29 17:08:02","raw_log":"[2026-08-29 17:08:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 12.5% for nama=Arka Nugraha, kar_id=1703","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 12.5% for nama=Arka Nugraha, kar_id=1703","category":"fallback-mode","severity":"warning","nama":"Arka Nugraha","kar_id":"1703"},{"timestamp":"2026-08-29 17:08:02","raw_log":"[2026-08-29 17:08:02] \u26a0 FALLBACK: Using time-based detection sore for 1703 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection sore for 1703 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-08-29 17:08:02","raw_log":"[2026-08-29 17:08:02] \u26a0 SHIFT ASSIGNED: sore (source: fallback) for nama=Arka Nugraha, kar_id=1703","message":"\u26a0 SHIFT ASSIGNED: sore (source: fallback) for nama=Arka Nugraha, kar_id=1703","category":"unknown","severity":"info","nama":"Arka Nugraha","kar_id":"1703"},{"timestamp":"2026-08-29 17:08:02","raw_log":"[2026-08-29 17:08:02] Check-in: keputusan=berhasil, nama=Arka Nugraha, kar_id=1703, id_absensi=207217019, shift=sore, sumber=fallback","message":"Check-in: keputusan=berhasil, nama=Arka Nugraha, kar_id=1703, id_absensi=207217019, shift=sore, sumber=fallback","category":"check-in-berhasil","severity":"success","nama":"Arka Nugraha","kar_id":"1703","shift":"sore","source":"fallback"},{"timestamp":"2026-08-29 18:33:02","raw_log":"[2026-08-29 18:33:02] Check-in: keputusan=berhasil, nama=Nandang, kar_id=713, id_absensi=207217022, shift=malam, sumber=schedule","message":"Check-in: keputusan=berhasil, nama=Nandang, kar_id=713, id_absensi=207217022, shift=malam, sumber=schedule","category":"check-in-berhasil","severity":"success","nama":"Nandang","kar_id":"713","shift":"malam","source":"schedule"},{"timestamp":"2026-08-29 19:01:02","raw_log":"[2026-08-29 19:01:02] \u26a0 FALLBACK: Using time-based detection pagi for 1324 (SCHEDULE MISSING!)","message":"\u26a0 FALLBACK: Using time-based detection pagi for 1324 (SCHEDULE MISSING!)","category":"unknown","severity":"info"},{"timestamp":"2026-08-29 19:01:02","raw_log":"[2026-08-29 19:01:02] \u26a0 FALLBACK checkout validation for 1324 (no schedule found)","message":"\u26a0 FALLBACK checkout validation for 1324 (no schedule found)","category":"unknown","severity":"info"},{"timestamp":"2026-08-29 19:01:02","raw_log":"[2026-08-29 19:01:02] Tutup otomatis: keputusan=ditutup_otomatis, nama=Hidayat, kar_id=1324, id_absensi=207217004, shift=pagi, waktu_pulang=2026-08-29 18:24:09, alasan=jam kerja melebihi batas maksimal; fallback berdasarkan max_hours","message":"Tutup otomatis: keputusan=ditutup_otomatis, nama=Hidayat, kar_id=1324, id_absensi=207217004, shift=pagi, waktu_pulang=2026-08-29 18:24:09, alasan=jam kerja melebihi batas maksimal; fallback berdasarkan max_hours","category":"tutup-otomatis","severity":"warning","nama":"Hidayat","kar_id":"1324","shift":"pagi","alasan":"jam kerja melebihi batas maksimal; fallback berdasarkan max_hours"},{"timestamp":"2026-08-29 19:01:02","raw_log":"[2026-08-29 19:01:02] \u2717 REJECTED: No schedule found for 1324 on 2026-08-29 (strict mode)","message":"\u2717 REJECTED: No schedule found for 1324 on 2026-08-29 (strict mode)","category":"unknown","severity":"info"},{"timestamp":"2026-08-29 19:01:02","raw_log":"[2026-08-29 19:01:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 37.5% for nama=Hidayat, kar_id=1324","message":"\u26a0 ALLOWING FALLBACK: Schedule coverage only 37.5% for nama=Hidayat, kar_id=1324","category":"fallback-mode","severity":"warning","nama":"Hidayat","kar_id":"1324"},{"timestamp":"2026-08-29 19:01:02","raw_log":"[2026-08-29 19:01:02] \u26a0 WARNING: No schedule AND outside shift hours for 1324 on 2026-08-29 at 2026-08-29 19:00:30","message":"\u26a0 WARNING: No schedule AND outside shift hours for 1324 on 2026-08-29 at 2026-08-29 19:00:30","category":"unknown","severity":"info"},{"timestamp":"2026-08-29 19:01:02","raw_log":"[2026-08-29 19:01:02] Check-in: keputusan=ditolak, nama=Hidayat, kar_id=1324, alasan=outside shift hours (Undefined); tidak ada insert ke trs_absensi","message":"Check-in: keputusan=ditolak, nama=Hidayat, kar_id=1324, alasan=outside shift hours (Undefined); tidak ada insert ke trs_absensi","category":"check-in-ditolak","severity":"error","nama":"Hidayat","kar_id":"1324","alasan":"outside shift hours (Undefined); tidak ada insert ke trs_absensi"},{"timestamp":"2026-08-29 19:29:05","raw_log":"[2026-08-29 19:29:05] [AIVEN] Koneksi gagal (non-fatal): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond","message":"[AIVEN] Koneksi gagal (non-fatal): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond","category":"error","severity":"critical"},{"timestamp":"2026-08-29 19:30:02","raw_log":"[2026-08-29 19:30:02] Check-in: keputusan=berhasil, nama=Fauzi Rahman, kar_id=1142, id_absensi=207217023, shift=malam, sumber=schedule","message":"Check-in: keputusan=berhasil, nama=Fauzi Rahman, kar_id=1142, id_absensi=207217023, shift=malam, sumber=schedule","category":"check-in-berhasil","severity":"success","nama":"Fauzi Rahman","kar_id":"1142","shift":"malam","source":"schedule"},{"timestamp":"2026-08-29 21:55:05","raw_log":"[2026-08-29 21:55:05] [AIVEN] Koneksi gagal (non-fatal): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond","message":"[AIVEN] Koneksi gagal (non-fatal): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond","category":"error","severity":"critical"}]}