← Back to list | Download | 2026-01-20-18-23-all-messages-unread-Laurent.log (289,572 bytes)
=== Eye Viewer Log Cleared at 2026-01-18 18:47:29 +0000 ===
    "content-available" = 1;
}, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18173]
    datesent = "2026-01-18 18:47:41";
    "file_name" = "";
    message = "Yes baby.but today, the cold gave me a migraine, after snowboarding, I spent the rest of the day dozing";
    "message_id" = 18174;
    "message_type" = 0;
    "prev_session_message_id" = 18173;
    "replied_message" = "What are you 8 doing in evenings ? Talk mainly ?";
    "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF";
    "replied_sender_name" = Laurent;
    "reply_to_id" = 18169;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("aps"): {
    "content-available" = 1;
}, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): {
    datesent = "2026-01-18 18:47:41";
    "file_name" = "";
    message = "Yes baby.but today, the cold gave me a migraine, after snowboarding, I spent the rest of the day dozing";
    "message_id" = 18174;
    "message_type" = 0;
    "prev_session_message_id" = 18173;
    "replied_message" = "What are you 8 doing in evenings ? Talk mainly ?";
    "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF";
    "replied_sender_name" = Laurent;
    "reply_to_id" = 18169;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}]
    "content-available" = 1;
}, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18175]
    "content-available" = 1;
}, AnyHashable("message_id"): 18177, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3]
    "content-available" = 1;
}, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18179, AnyHashable("operation_type"): 3]
    "content-available" = 1;
}, AnyHashable("operation_type"): 3]
    "content-available" = 1;
}, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18180, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}]
    "content-available" = 1;
}, AnyHashable("message_id"): 18188, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}, AnyHashable("message_id"): 18189, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}, AnyHashable("message_id"): 18185, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}, AnyHashable("message_id"): 18186, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}, AnyHashable("message_id"): 18187, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU][07:32:23] [LOG] Pruned 3454 entries older than 3 hours
    "content-available" = 1;
}, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}]
    "content-available" = 1;
}]
    "content-available" = 1;
}]
    "content-available" = 1;
}, AnyHashable("message_id"): 18196, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18203, AnyHashable("message_data"): {
    datesent = "2026-01-19 09:49:35";
    "file_name" = "";
    message = "Hi babyyy\Ud83e\Udd70\Ud83e\Udd70\Ud83e\Udd70";
    "message_id" = 18203;
    "message_type" = 0;
    "prev_session_message_id" = 18202;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("session_id"): ILUIWU]
    datesent = "2026-01-19 09:49:35";
    "file_name" = "";
    message = "Hi babyyy\Ud83e\Udd70\Ud83e\Udd70\Ud83e\Udd70";
    "message_id" = 18203;
    "message_type" = 0;
    "prev_session_message_id" = 18202;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("message_id"): 18203, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 2;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0, AnyHashable("message_data"): {
    datesent = "2026-01-19 09:49:43";
    "file_name" = "";
    message = "Back to hotel";
    "message_id" = 18204;
    "message_type" = 0;
    "prev_session_message_id" = 18203;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("message_id"): 18204, AnyHashable("session_id"): ILUIWU]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 2;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0, AnyHashable("message_data"): {
    datesent = "2026-01-19 09:49:43";
    "file_name" = "";
    message = "Back to hotel";
    "message_id" = 18204;
    "message_type" = 0;
    "prev_session_message_id" = 18203;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("message_id"): 18204, AnyHashable("session_id"): ILUIWU]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 2;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0, AnyHashable("message_data"): {
    datesent = "2026-01-19 09:49:43";
    "file_name" = "";
    message = "Back to hotel";
    "message_id" = 18204;
    "message_type" = 0;
    "prev_session_message_id" = 18203;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("message_id"): 18204, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18204, AnyHashable("operation_type"): 3]
    "content-available" = 1;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18205]
    "content-available" = 1;
}, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18206, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 0;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_id"): 18207, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 0;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_id"): 18207, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 0;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_id"): 18207, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0]
    datesent = "2026-01-19 09:50:22";
    "file_name" = "";
    message = "It was slow morning for me \Ud83d\Ude43";
    "message_id" = 18208;
    "message_type" = 0;
    "prev_session_message_id" = 18207;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}]
    datesent = "2026-01-19 09:50:22";
    "file_name" = "";
    message = "It was slow morning for me \Ud83d\Ude43";
    "message_id" = 18208;
    "message_type" = 0;
    "prev_session_message_id" = 18207;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}]
    datesent = "2026-01-19 09:50:22";
    "file_name" = "";
    message = "It was slow morning for me \Ud83d\Ude43";
    "message_id" = 18208;
    "message_type" = 0;
    "prev_session_message_id" = 18207;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}]
    "content-available" = 1;
}, AnyHashable("message_id"): 18208, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_data"): {
    datesent = "2026-01-19 09:50:29";
    "file_name" = "";
    message = "For lunch babyy";
    "message_id" = 18209;
    "message_type" = 0;
    "prev_session_message_id" = 18208;
    "replied_message" = "Or just having lunch here ?";
    "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF";
    "replied_sender_name" = Laurent;
    "reply_to_id" = 18206;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("message_id"): 18209, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_data"): {
    datesent = "2026-01-19 09:50:29";
    "file_name" = "";
    message = "For lunch babyy";
    "message_id" = 18209;
    "message_type" = 0;
    "prev_session_message_id" = 18208;
    "replied_message" = "Or just having lunch here ?";
    "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF";
    "replied_sender_name" = Laurent;
    "reply_to_id" = 18206;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("message_id"): 18209, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_data"): {
    datesent = "2026-01-19 09:50:29";
    "file_name" = "";
    message = "For lunch babyy";
    "message_id" = 18209;
    "message_type" = 0;
    "prev_session_message_id" = 18208;
    "replied_message" = "Or just having lunch here ?";
    "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF";
    "replied_sender_name" = Laurent;
    "reply_to_id" = 18206;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("message_id"): 18209, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0]
    "content-available" = 1;
}, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_id"): 18213, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): {
    datesent = "2026-01-19 14:57:32";
    "file_name" = "";
    message = "\Ud83e\Udd70";
    "message_id" = 18213;
    "message_type" = 0;
    "prev_session_message_id" = 18212;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("operation_type"): 0]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_id"): 18213, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): {
    datesent = "2026-01-19 14:57:32";
    "file_name" = "";
    message = "\Ud83e\Udd70";
    "message_id" = 18213;
    "message_type" = 0;
    "prev_session_message_id" = 18212;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("operation_type"): 0]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 0;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_data"): {
    datesent = "2026-01-19 14:57:38";
    "file_name" = "";
    message = "Sorry for my silence baby";
    "message_id" = 18214;
    "message_type" = 0;
    "prev_session_message_id" = 18213;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("operation_type"): 0]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 0;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_data"): {
    datesent = "2026-01-19 14:57:38";
    "file_name" = "";
    message = "Sorry for my silence baby";
    "message_id" = 18214;
    "message_type" = 0;
    "prev_session_message_id" = 18213;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("operation_type"): 0]
    datesent = "2026-01-19 14:57:38";
    "file_name" = "";
    message = "Sorry for my silence baby";
    "message_id" = 18214;
    "message_type" = 0;
    "prev_session_message_id" = 18213;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 0;
    "content-available" = 1;
    sound = default;
}]
    "content-available" = 1;
}, AnyHashable("message_id"): 18213, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3]
    "content-available" = 1;
}]
    datesent = "2026-01-19 14:57:42";
    "file_name" = "";
    message = "I was sleeping \Ud83e\Udd72";
    "message_id" = 18215;
    "message_type" = 0;
    "prev_session_message_id" = 18214;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("message_id"): 18215, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 0;
    "content-available" = 1;
    sound = default;
}]
    datesent = "2026-01-19 14:57:42";
    "file_name" = "";
    message = "I was sleeping \Ud83e\Udd72";
    "message_id" = 18215;
    "message_type" = 0;
    "prev_session_message_id" = 18214;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("message_id"): 18215, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 0;
    "content-available" = 1;
    sound = default;
}]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 0;
    "content-available" = 1;
    sound = default;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): {
    datesent = "2026-01-19 14:57:42";
    "file_name" = "";
    message = "I was sleeping \Ud83e\Udd72";
    "message_id" = 18215;
    "message_type" = 0;
    "prev_session_message_id" = 18214;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18215]
    "content-available" = 1;
}]
    "content-available" = 1;
}, AnyHashable("operation_type"): 3]
    "content-available" = 1;
}, AnyHashable("message_id"): 18217, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU]
    datesent = "2026-01-19 14:58:08";
    "file_name" = "";
    message = Nopee;
    "message_id" = 18219;
    "message_type" = 0;
    "prev_session_message_id" = 18218;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("message_id"): 18219, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("session_id"): ILUIWU]
    datesent = "2026-01-19 14:58:08";
    "file_name" = "";
    message = Nopee;
    "message_id" = 18219;
    "message_type" = 0;
    "prev_session_message_id" = 18218;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("message_id"): 18219, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("session_id"): ILUIWU]
    datesent = "2026-01-19 14:58:08";
    "file_name" = "";
    message = Nopee;
    "message_id" = 18219;
    "message_type" = 0;
    "prev_session_message_id" = 18218;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("message_id"): 18219, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}]
── Body ──
{"ok":true,"message":"Message updated","session_id":"ILUIWU","message_id":18217,"event_type":2}
    datesent = "2026-01-19 14:58:20";
    "file_name" = "";
    message = "I didn\U2019t feel very well";
    "message_id" = 18220;
    "message_type" = 0;
    "prev_session_message_id" = 18219;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18220, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}]
    datesent = "2026-01-19 14:58:20";
    "file_name" = "";
    message = "I didn\U2019t feel very well";
    "message_id" = 18220;
    "message_type" = 0;
    "prev_session_message_id" = 18219;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18220, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18220, AnyHashable("message_data"): {
    datesent = "2026-01-19 14:58:20";
    "file_name" = "";
    message = "I didn\U2019t feel very well";
    "message_id" = 18220;
    "message_type" = 0;
    "prev_session_message_id" = 18219;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}, AnyHashable("message_id"): 18217]
    "content-available" = 1;
}, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18220]
    datesent = "2026-01-19 14:58:26";
    "file_name" = "";
    message = "The weather was -17";
    "message_id" = 18221;
    "message_type" = 0;
    "prev_session_message_id" = 18220;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_id"): 18221]
    datesent = "2026-01-19 14:58:26";
    "file_name" = "";
    message = "The weather was -17";
    "message_id" = 18221;
    "message_type" = 0;
    "prev_session_message_id" = 18220;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_id"): 18221]
    datesent = "2026-01-19 14:58:26";
    "file_name" = "";
    message = "The weather was -17";
    "message_id" = 18221;
    "message_type" = 0;
    "prev_session_message_id" = 18220;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_id"): 18221]
    "content-available" = 1;
}, AnyHashable("operation_type"): 3]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_data"): {
    datesent = "2026-01-19 14:58:33";
    "file_name" = "";
    message = "\Ud83e\Udd76\Ud83e\Udd76";
    "message_id" = 18222;
    "message_type" = 0;
    "prev_session_message_id" = 18221;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("message_id"): 18222]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_data"): {
    datesent = "2026-01-19 14:58:33";
    "file_name" = "";
    message = "\Ud83e\Udd76\Ud83e\Udd76";
    "message_id" = 18222;
    "message_type" = 0;
    "prev_session_message_id" = 18221;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("message_id"): 18222]
    datesent = "2026-01-19 14:58:33";
    "file_name" = "";
    message = "\Ud83e\Udd76\Ud83e\Udd76";
    "message_id" = 18222;
    "message_type" = 0;
    "prev_session_message_id" = 18221;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0]
    "content-available" = 1;
}, AnyHashable("operation_type"): 3]
    "content-available" = 1;
}, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}, AnyHashable("message_id"): 18224, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_id"): 18225, AnyHashable("message_data"): {
    datesent = "2026-01-19 14:58:55";
    "file_name" = "";
    message = "Absofuckinglutely \Ud83e\Udd13";
    "message_id" = 18225;
    "message_type" = 0;
    "prev_session_message_id" = 18224;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("session_id"): ILUIWU]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_id"): 18225, AnyHashable("message_data"): {
    datesent = "2026-01-19 14:58:55";
    "file_name" = "";
    message = "Absofuckinglutely \Ud83e\Udd13";
    "message_id" = 18225;
    "message_type" = 0;
    "prev_session_message_id" = 18224;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("session_id"): ILUIWU]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_id"): 18225, AnyHashable("message_data"): {
    datesent = "2026-01-19 14:58:55";
    "file_name" = "";
    message = "Absofuckinglutely \Ud83e\Udd13";
    "message_id" = 18225;
    "message_type" = 0;
    "prev_session_message_id" = 18224;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}, AnyHashable("message_id"): 18225, AnyHashable("session_id"): ILUIWU]
    datesent = "2026-01-19 14:59:02";
    "file_name" = "";
    message = "Yes my looove\U2665\Ufe0f";
    "message_id" = 18226;
    "message_type" = 0;
    "prev_session_message_id" = 18225;
    "replied_message" = "Feeling better now ?";
    "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF";
    "replied_sender_name" = Laurent;
    "reply_to_id" = 18224;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_id"): 18226]
    datesent = "2026-01-19 14:59:02";
    "file_name" = "";
    message = "Yes my looove\U2665\Ufe0f";
    "message_id" = 18226;
    "message_type" = 0;
    "prev_session_message_id" = 18225;
    "replied_message" = "Feeling better now ?";
    "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF";
    "replied_sender_name" = Laurent;
    "reply_to_id" = 18224;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_id"): 18226]
    datesent = "2026-01-19 14:59:02";
    "file_name" = "";
    message = "Yes my looove\U2665\Ufe0f";
    "message_id" = 18226;
    "message_type" = 0;
    "prev_session_message_id" = 18225;
    "replied_message" = "Feeling better now ?";
    "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF";
    "replied_sender_name" = Laurent;
    "reply_to_id" = 18224;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_id"): 18226]
    "content-available" = 1;
}, AnyHashable("message_id"): 18226]
    "content-available" = 1;
}, AnyHashable("message_id"): 18227]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18228, AnyHashable("message_data"): {
    datesent = "2026-01-19 14:59:07";
    "file_name" = "";
    message = "How is your day going baby";
    "message_id" = 18228;
    "message_type" = 0;
    "prev_session_message_id" = 18227;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18228, AnyHashable("message_data"): {
    datesent = "2026-01-19 14:59:07";
    "file_name" = "";
    message = "How is your day going baby";
    "message_id" = 18228;
    "message_type" = 0;
    "prev_session_message_id" = 18227;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18228, AnyHashable("message_data"): {
    datesent = "2026-01-19 14:59:07";
    "file_name" = "";
    message = "How is your day going baby";
    "message_id" = 18228;
    "message_type" = 0;
    "prev_session_message_id" = 18227;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}]
    "content-available" = 1;
}, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18230, AnyHashable("operation_type"): 3]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18231, AnyHashable("operation_type"): 0, AnyHashable("message_data"): {
    datesent = "2026-01-19 14:59:32";
    "file_name" = "";
    message = "\Ud83e\Udd2d";
    "message_id" = 18231;
    "message_type" = 0;
    "prev_session_message_id" = 18230;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18231, AnyHashable("operation_type"): 0, AnyHashable("message_data"): {
    datesent = "2026-01-19 14:59:32";
    "file_name" = "";
    message = "\Ud83e\Udd2d";
    "message_id" = 18231;
    "message_type" = 0;
    "prev_session_message_id" = 18230;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18231, AnyHashable("operation_type"): 0, AnyHashable("message_data"): {
    datesent = "2026-01-19 14:59:32";
    "file_name" = "";
    message = "\Ud83e\Udd2d";
    "message_id" = 18231;
    "message_type" = 0;
    "prev_session_message_id" = 18230;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}]
    "content-available" = 1;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 0;
    "content-available" = 1;
    sound = default;
}, AnyHashable("session_id"): ILUIWU]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 0;
    "content-available" = 1;
    sound = default;
}, AnyHashable("session_id"): ILUIWU]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 0;
    "content-available" = 1;
    sound = default;
}, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18234, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:00:48";
    "file_name" = "";
    message = "Ha ha no\Ud83e\Udd23";
    "message_id" = 18234;
    "message_type" = 0;
    "prev_session_message_id" = 18233;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18234, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:00:48";
    "file_name" = "";
    message = "Ha ha no\Ud83e\Udd23";
    "message_id" = 18234;
    "message_type" = 0;
    "prev_session_message_id" = 18233;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:00:48";
    "file_name" = "";
    message = "Ha ha no\Ud83e\Udd23";
    "message_id" = 18234;
    "message_type" = 0;
    "prev_session_message_id" = 18233;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("message_id"): 18234, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0]
    "content-available" = 1;
}, AnyHashable("message_id"): 18234, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU]
    datesent = "2026-01-19 15:00:55";
    "file_name" = "";
    message = "I couldn\U2019t find same pattern";
    "message_id" = 18235;
    "message_type" = 0;
    "prev_session_message_id" = 18234;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0]
    datesent = "2026-01-19 15:00:55";
    "file_name" = "";
    message = "I couldn\U2019t find same pattern";
    "message_id" = 18235;
    "message_type" = 0;
    "prev_session_message_id" = 18234;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0]
    datesent = "2026-01-19 15:00:55";
    "file_name" = "";
    message = "I couldn\U2019t find same pattern";
    "message_id" = 18235;
    "message_type" = 0;
    "prev_session_message_id" = 18234;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18235, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}]
    "content-available" = 1;
}, AnyHashable("operation_type"): 3]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:00:59";
    "file_name" = "";
    message = "\Ud83e\Udd2a\Ud83e\Udd2a";
    "message_id" = 18236;
    "message_type" = 0;
    "prev_session_message_id" = 18235;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("message_id"): 18236, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:00:59";
    "file_name" = "";
    message = "\Ud83e\Udd2a\Ud83e\Udd2a";
    "message_id" = 18236;
    "message_type" = 0;
    "prev_session_message_id" = 18235;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("message_id"): 18236, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:00:59";
    "file_name" = "";
    message = "\Ud83e\Udd2a\Ud83e\Udd2a";
    "message_id" = 18236;
    "message_type" = 0;
    "prev_session_message_id" = 18235;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("message_id"): 18236, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0]
    "content-available" = 1;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18236, AnyHashable("operation_type"): 3]
    "content-available" = 1;
}, AnyHashable("message_id"): 18237, AnyHashable("session_id"): ILUIWU]
    datesent = "2026-01-19 15:01:33";
    "file_name" = "";
    message = "We will leave at 10am baby, wont skiing";
    "message_id" = 18238;
    "message_type" = 0;
    "prev_session_message_id" = 18237;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18238, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}]
    datesent = "2026-01-19 15:01:33";
    "file_name" = "";
    message = "We will leave at 10am baby, wont skiing";
    "message_id" = 18238;
    "message_type" = 0;
    "prev_session_message_id" = 18237;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18238, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}]
    datesent = "2026-01-19 15:01:33";
    "file_name" = "";
    message = "We will leave at 10am baby, wont skiing";
    "message_id" = 18238;
    "message_type" = 0;
    "prev_session_message_id" = 18237;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18238, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}]
    "content-available" = 1;
}]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18239, AnyHashable("operation_type"): 0, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:01:57";
    "file_name" = "";
    message = "But we are planning to come again between feb 13-16";
    "message_id" = 18239;
    "message_type" = 0;
    "prev_session_message_id" = 18238;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18239, AnyHashable("operation_type"): 0, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:01:57";
    "file_name" = "";
    message = "But we are planning to come again between feb 13-16";
    "message_id" = 18239;
    "message_type" = 0;
    "prev_session_message_id" = 18238;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18239, AnyHashable("operation_type"): 0, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:01:57";
    "file_name" = "";
    message = "But we are planning to come again between feb 13-16";
    "message_id" = 18239;
    "message_type" = 0;
    "prev_session_message_id" = 18238;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}]
    "content-available" = 1;
}, AnyHashable("operation_type"): 3]
    "content-available" = 1;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:02:05";
    "file_name" = "";
    message = "I hope we can make it";
    "message_id" = 18241;
    "message_type" = 0;
    "prev_session_message_id" = 18240;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("message_id"): 18241, AnyHashable("session_id"): ILUIWU]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:02:05";
    "file_name" = "";
    message = "I hope we can make it";
    "message_id" = 18241;
    "message_type" = 0;
    "prev_session_message_id" = 18240;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("message_id"): 18241, AnyHashable("session_id"): ILUIWU]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:02:05";
    "file_name" = "";
    message = "I hope we can make it";
    "message_id" = 18241;
    "message_type" = 0;
    "prev_session_message_id" = 18240;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("message_id"): 18241, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}, AnyHashable("message_id"): 18241, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3]
    "content-available" = 1;
}, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18243, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_id"): 18244, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:02:20";
    "file_name" = "";
    message = "Yes, morning was amazing";
    "message_id" = 18244;
    "message_type" = 0;
    "prev_session_message_id" = 18243;
    "replied_message" = "Oh. Then that was it \Ud83d\Ude22 Less crowded I hope today";
    "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF";
    "replied_sender_name" = Laurent;
    "reply_to_id" = 18240;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_id"): 18244, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:02:20";
    "file_name" = "";
    message = "Yes, morning was amazing";
    "message_id" = 18244;
    "message_type" = 0;
    "prev_session_message_id" = 18243;
    "replied_message" = "Oh. Then that was it \Ud83d\Ude22 Less crowded I hope today";
    "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF";
    "replied_sender_name" = Laurent;
    "reply_to_id" = 18240;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_id"): 18244, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:02:20";
    "file_name" = "";
    message = "Yes, morning was amazing";
    "message_id" = 18244;
    "message_type" = 0;
    "prev_session_message_id" = 18243;
    "replied_message" = "Oh. Then that was it \Ud83d\Ude22 Less crowded I hope today";
    "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF";
    "replied_sender_name" = Laurent;
    "reply_to_id" = 18240;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}, AnyHashable("message_id"): 18244, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3]
    "content-available" = 1;
}, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18245, AnyHashable("session_id"): ILUIWU]
    datesent = "2026-01-19 15:02:59";
    "file_name" = "";
    message = "I was the 1st person on black slope\Ud83e\Udd2a\Ud83e\Udd23";
    "message_id" = 18246;
    "message_type" = 0;
    "prev_session_message_id" = 18245;
    "replied_message" = "Oh. Then that was it \Ud83d\Ude22 Less crowded I hope today";
    "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF";
    "replied_sender_name" = Laurent;
    "reply_to_id" = 18240;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18246]
    datesent = "2026-01-19 15:02:59";
    "file_name" = "";
    message = "I was the 1st person on black slope\Ud83e\Udd2a\Ud83e\Udd23";
    "message_id" = 18246;
    "message_type" = 0;
    "prev_session_message_id" = 18245;
    "replied_message" = "Oh. Then that was it \Ud83d\Ude22 Less crowded I hope today";
    "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF";
    "replied_sender_name" = Laurent;
    "reply_to_id" = 18240;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18246]
    datesent = "2026-01-19 15:02:59";
    "file_name" = "";
    message = "I was the 1st person on black slope\Ud83e\Udd2a\Ud83e\Udd23";
    "message_id" = 18246;
    "message_type" = 0;
    "prev_session_message_id" = 18245;
    "replied_message" = "Oh. Then that was it \Ud83d\Ude22 Less crowded I hope today";
    "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF";
    "replied_sender_name" = Laurent;
    "reply_to_id" = 18240;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18246]
    "content-available" = 1;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3]
    "content-available" = 1;
}, AnyHashable("message_id"): 18247]
    datesent = "2026-01-19 15:03:28";
    "file_name" = "";
    message = "Do I ?";
    "message_id" = 18248;
    "message_type" = 0;
    "prev_session_message_id" = 18247;
    "replied_message" = "At least you leave on a good note";
    "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF";
    "replied_sender_name" = Laurent;
    "reply_to_id" = 18245;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0]
    datesent = "2026-01-19 15:03:28";
    "file_name" = "";
    message = "Do I ?";
    "message_id" = 18248;
    "message_type" = 0;
    "prev_session_message_id" = 18247;
    "replied_message" = "At least you leave on a good note";
    "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF";
    "replied_sender_name" = Laurent;
    "reply_to_id" = 18245;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0]
    datesent = "2026-01-19 15:03:28";
    "file_name" = "";
    message = "Do I ?";
    "message_id" = 18248;
    "message_type" = 0;
    "prev_session_message_id" = 18247;
    "replied_message" = "At least you leave on a good note";
    "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF";
    "replied_sender_name" = Laurent;
    "reply_to_id" = 18245;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0]
    "content-available" = 1;
}]
    "content-available" = 1;
}, AnyHashable("session_id"): ILUIWU]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_id"): 18250, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:03:52";
    "file_name" = "";
    message = "From this morning";
    "message_id" = 18250;
    "message_type" = 0;
    "prev_session_message_id" = 18249;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_id"): 18250, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:03:52";
    "file_name" = "";
    message = "From this morning";
    "message_id" = 18250;
    "message_type" = 0;
    "prev_session_message_id" = 18249;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_id"): 18250, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:03:52";
    "file_name" = "";
    message = "From this morning";
    "message_id" = 18250;
    "message_type" = 0;
    "prev_session_message_id" = 18249;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}]
    "content-available" = 1;
}, AnyHashable("session_id"): ILUIWU]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 2;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_id"): 18255]
    "content-available" = 1;
}, AnyHashable("message_id"): 18254]
    "content-available" = 1;
}, AnyHashable("message_id"): 18254]
    "content-available" = 1;
}]
    "LocalDataTask <998FAEE8-0D38-42DF-911F-A133038CA882>.<58>"
), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https://crivello.dyndns.org:443/WebRTC/chat/receive_message.php, NSErrorFailingURLKey=https://crivello.dyndns.org:443/WebRTC/chat/receive_message.php, _kCFStreamErrorDomainKey=4}
    "content-available" = 1;
}]
    "content-available" = 1;
}, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:11:55";
    "file_name" = "";
    message = "https://www.instagram.com/reel/DTBCSosk8kX/?igsh=NDVyaWxkMWV5N3Y5";
    "message_id" = 18258;
    "message_type" = 0;
    "prev_session_message_id" = 18257;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}]
    "content-available" = 1;
}, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_id"): 18258, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:11:55";
    "file_name" = "";
    message = "https://www.instagram.com/reel/DTBCSosk8kX/?igsh=NDVyaWxkMWV5N3Y5";
    "message_id" = 18258;
    "message_type" = 0;
    "prev_session_message_id" = 18257;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}]
    "content-available" = 1;
}, AnyHashable("message_id"): 18259]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 2;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:26:59";
    "file_name" = "";
    message = "https://www.instagram.com/reel/DTqKgHVjFyt/?igsh=bTY4d2d1OGd2bTR5";
    "message_id" = 18262;
    "message_type" = 0;
    "prev_session_message_id" = 18261;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("message_id"): 18262, AnyHashable("session_id"): ILUIWU]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 2;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:26:59";
    "file_name" = "";
    message = "https://www.instagram.com/reel/DTqKgHVjFyt/?igsh=bTY4d2d1OGd2bTR5";
    "message_id" = 18262;
    "message_type" = 0;
    "prev_session_message_id" = 18261;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("message_id"): 18262]
    "content-available" = 1;
}, AnyHashable("operation_type"): 3]
    "content-available" = 1;
}, AnyHashable("message_id"): 18261]
    datesent = "2026-01-19 15:27:09";
    "file_name" = "";
    message = "Im not ready for this\Ud83e\Udd72\Ud83e\Udd72\Ud83e\Udd72\Ud83e\Udd72";
    "message_id" = 18263;
    "message_type" = 0;
    "prev_session_message_id" = 18262;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0]
    datesent = "2026-01-19 15:27:09";
    "file_name" = "";
    message = "Im not ready for this\Ud83e\Udd72\Ud83e\Udd72\Ud83e\Udd72\Ud83e\Udd72";
    "message_id" = 18263;
    "message_type" = 0;
    "prev_session_message_id" = 18262;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:27:09";
    "file_name" = "";
    message = "Im not ready for this\Ud83e\Udd72\Ud83e\Udd72\Ud83e\Udd72\Ud83e\Udd72";
    "message_id" = 18263;
    "message_type" = 0;
    "prev_session_message_id" = 18262;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}]
    "content-available" = 1;
}, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:31:19";
    "file_name" = "";
    message = "Ha ha ha \Ud83e\Udd23\Ud83e\Udd23\Ud83e\Udd23";
    "message_id" = 18265;
    "message_type" = 0;
    "prev_session_message_id" = 18264;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}]
    "content-available" = 1;
}, AnyHashable("message_id"): 18265]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_id"): 18266, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:31:31";
    "file_name" = "";
    message = "Whyyyyyy\Ud83e\Udd23\Ud83e\Udd23\Ud83e\Udd23\Ud83e\Udd23";
    "message_id" = 18266;
    "message_type" = 0;
    "prev_session_message_id" = 18265;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_id"): 18266, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:31:31";
    "file_name" = "";
    message = "Whyyyyyy\Ud83e\Udd23\Ud83e\Udd23\Ud83e\Udd23\Ud83e\Udd23";
    "message_id" = 18266;
    "message_type" = 0;
    "prev_session_message_id" = 18265;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}]
    datesent = "2026-01-19 15:31:31";
    "file_name" = "";
    message = "Whyyyyyy\Ud83e\Udd23\Ud83e\Udd23\Ud83e\Udd23\Ud83e\Udd23";
    "message_id" = 18266;
    "message_type" = 0;
    "prev_session_message_id" = 18265;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("message_id"): 18266, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}, AnyHashable("message_id"): 18266, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18267]
    "content-available" = 1;
}, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18268]
    "content-available" = 1;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18268]
    "content-available" = 1;
}, AnyHashable("message_id"): 18269, AnyHashable("session_id"): ILUIWU]
    "LocalWebSocketTask <70A7FF7F-BAF0-47A9-8A4C-6927B614D4BC>.<1>"
), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <70A7FF7F-BAF0-47A9-8A4C-6927B614D4BC>.<1>}
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:33:32";
    "file_name" = "";
    message = "Do you like watching this kind of videos?";
    "message_id" = 18270;
    "message_type" = 0;
    "prev_session_message_id" = 18269;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("message_id"): 18270]
    "content-available" = 1;
}, AnyHashable("operation_type"): 3]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_id"): 18270, AnyHashable("message_data"): {
    datesent = "2026-01-19 15:33:32";
    "file_name" = "";
    message = "Do you like watching this kind of videos?";
    "message_id" = 18270;
    "message_type" = 0;
    "prev_session_message_id" = 18269;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}]
── Body ──
{"ok":true,"message":"Message updated","session_id":"ILUIWU","message_id":18271,"event_type":2}
    "content-available" = 1;
}, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18272, AnyHashable("session_id"): ILUIWU]
    "LocalDataTask <79D770E1-D710-4754-B2D7-B4105B7AE22B>.<1>"
), NSLocalizedDescription=The Internet connection appears to be offline., NSErrorFailingURLStringKey=https://crivello.dyndns.org:443/WebRTC/chat/register_device.php, NSErrorFailingURLKey=https://crivello.dyndns.org:443/WebRTC/chat/register_device.php, _kCFStreamErrorDomainKey=1}
    "LocalDataTask <4A9C3DCB-E603-45B5-9DDB-146E47EDAF12>.<7>"
), NSLocalizedDescription=The Internet connection appears to be offline., NSErrorFailingURLStringKey=https://crivello.dyndns.org:443/WebRTC/chat/chat_get_messages.php?viewer=1&session_id=ILUIWU&mark_read=0&viewer_id=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF&since_id=18273, NSErrorFailingURLKey=https://crivello.dyndns.org:443/WebRTC/chat/chat_get_messages.php?viewer=1&session_id=ILUIWU&mark_read=0&viewer_id=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF&since_id=18273, _kCFStreamErrorDomainKey=1}
    datesent = "2026-01-19 20:08:05";
    "file_name" = "";
    message = "\U2665\Ufe0f";
    "message_id" = 18274;
    "message_type" = 0;
    "prev_session_message_id" = 18273;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18274, AnyHashable("aps"): {
    "content-available" = 1;
}]
    "content-available" = 1;
}]
    "content-available" = 1;
}, AnyHashable("message_id"): 18277, AnyHashable("operation_type"): 3]
    "content-available" = 1;
}, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18278, AnyHashable("session_id"): ILUIWU]
    "content-available" = 1;
}, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18279]
    "content-available" = 1;
}, AnyHashable("message_id"): 18280, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3][07:31:24] [LOG] Pruned 2055 entries older than 3 hours
    "content-available" = 1;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18285]
    "content-available" = 1;
}, AnyHashable("operation_type"): 3]
    "content-available" = 1;
}, AnyHashable("operation_type"): 3]
    "content-available" = 1;
}]
    "content-available" = 1;
}, AnyHashable("message_id"): 18285, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3]
    "content-available" = 1;
}]
    "content-available" = 1;
}, AnyHashable("session_id"): ILUIWU]
    "LocalWebSocketTask <11FDA715-EE17-4B97-99CA-A9CC90592816>.<1>"
), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <11FDA715-EE17-4B97-99CA-A9CC90592816>.<1>}
    datesent = "2026-01-20 06:36:13";
    "file_name" = "";
    message = "Nope baby, still at the hotel. Boarding will be in 1,5 hrs.";
    "message_id" = 18293;
    "message_type" = 0;
    "prev_session_message_id" = 18292;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("operation_type"): 0, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("session_id"): ILUIWU]
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): {
    datesent = "2026-01-20 06:36:13";
    "file_name" = "";
    message = "Nope baby, still at the hotel. Boarding will be in 1,5 hrs.";
    "message_id" = 18293;
    "message_type" = 0;
    "prev_session_message_id" = 18292;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18293]
    "content-available" = 1;
}, AnyHashable("message_id"): 18293, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3]
    "LocalWebSocketTask <EFEF2D6E-2C2D-471B-A219-B9FABD809F7D>.<1>"
), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <EFEF2D6E-2C2D-471B-A219-B9FABD809F7D>.<1>, NSLocalizedDescription=The network connection was lost.}
    "content-available" = 1;
}, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18297]
    datesent = "2026-01-20 13:26:28";
    "file_name" = "";
    message = "Landed!";
    "message_id" = 18302;
    "message_type" = 0;
    "prev_session_message_id" = 18301;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18302]
    datesent = "2026-01-20 13:26:28";
    "file_name" = "";
    message = "Landed!";
    "message_id" = 18302;
    "message_type" = 0;
    "prev_session_message_id" = 18301;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("operation_type"): 0, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 1;
    "content-available" = 1;
    sound = default;
}, AnyHashable("message_id"): 18302]
    "content-available" = 1;
}]
[17:13:54] [NETWORK] Status changed: connected
[17:13:54] [SECURITY] Timeout check: elapsed=10015.796790122986s, timeout=300.0s
[17:13:54] [SECURITY] sceneWillEnterForeground - timeout exceeded, showing lock screen immediately
[17:13:54] [AUTH] ✅ All guards passed, showing privacy cover
[17:13:54] [CELL_UPLOAD] configure: msgId=18296, file=e27abe61119a26c3.mov, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[17:13:54] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[17:13:54] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=e27abe61119a26c3.mov, overlayExists=true
[17:13:54] [LIFECYCLE] App entering foreground - restoring connections
[17:13:54] [LIFECYCLE] Away > 2 minutes (10015s) - will scroll to bottom
[17:13:55] [UPLOAD_RETRY] No pending uploads to retry
[17:13:55] [LIFECYCLE] Merged 843 reactions from local DB
[17:13:55] [LIFECYCLE] WebRTC audio re-enabled
[17:13:55] [AUDIO] ✅ Chat mode - audio will be managed by WebRTCViewer (no microphone)
[17:13:55] [CLIENT_SIG] Setting up client signaling for session: ILUIWU
[17:13:55] [CLIENT_SIG] Connecting to session ILUIWU as Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF)
[17:13:55] [VIEWER] Reconnecting after background - querying agents
[17:13:55] [UNSENT_RETRY] Checking for unsent messages...
[17:13:55] [PENDING_UPLOAD] Total pending upload messages: 0
[17:13:55] [UNSENT_RETRY] No unsent messages found
[17:13:55] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:13:55] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:13:55] [CLIENT_SIG] Already connected/connecting to session ILUIWU
[17:13:55] [CLIENT_SIG] WebSocket opened
[17:13:55] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:13:55] [CLIENT_SIG] HELLO sent as client for session ILUIWU
[17:13:55] HELLO → sent (cached token, role=query)
[17:13:55] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=52, first5Ids=[18253, 18254, 18255, 18256, 18257]
[17:13:55] [CELL_UPLOAD] configure: msgId=18296, file=e27abe61119a26c3.mov, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[17:13:55] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[17:13:55] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=e27abe61119a26c3.mov, overlayExists=true
[17:13:55] [SECURITY] sceneDidBecomeActive - isAuthenticated=false, didEnterBackground=false
[17:13:55] [PUSH_DEBUG] 🟢 App became ACTIVE - resetting badges and triggering pollEventsNow
[17:13:55] [PUSH] handlePollEventsNotification userInfo: [:]
[17:13:55] [PUSH] No message_id in userInfo
[17:13:55] [PUSH] No operation_type in userInfo
[17:13:55] [FAST_REFRESH] Evolution disabled - performing incremental sync
[17:13:55] [FAST_REFRESH] Already have 52 messages - skipping local DB load
[17:13:55] [FAST_REFRESH] About to call reloadMessagesForCurrentTab(), isMainThread=true, viewLoaded=true
[17:13:55] [FAST_REFRESH] reloadMessagesForCurrentTab() called successfully
[17:13:55] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=52
[17:13:55] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 18304
[17:13:55] [CLIENT_SIG] Connected! clientId=ziYkfd5X2aua9DQB
[17:13:55] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:13:55] [WS] Query connection failed - cleaning up all agent connections and views
[17:13:55] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:13:55] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:13:55] [CLEANUP] ========================================
[17:13:55] [CLEANUP] Cleaning up all agent connections and views
[17:13:55] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:13:55] [CLEANUP] Stopped and removed 0 video connections
[17:13:55] [CLEANUP] Removed 0 video views
[17:13:55] [CLEANUP] Removed 0 feed scroll views
[17:13:55] [CLEANUP] Removed 0 status labels
[17:13:55] [CLEANUP] Reset agent query state
[17:13:55] [CLEANUP] Updated page indicator
[17:13:55] [CLEANUP] Rebuilt video layout
[17:13:55] [CLEANUP] ✅ All agent connections and views cleaned up
[17:13:55] [CLEANUP] ========================================
[17:13:55] [SERVER] Starting reconnect polling (5s interval)
[17:13:55] [CLEANUP] ========================================
[17:13:55] [CLEANUP] Cleaning up all agent connections and views
[17:13:55] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:13:55] [CLEANUP] Stopped and removed 0 video connections
[17:13:55] [CLEANUP] Removed 0 video views
[17:13:55] [CLEANUP] Removed 0 feed scroll views
[17:13:55] [CLEANUP] Removed 0 status labels
[17:13:55] [CLEANUP] Reset agent query state
[17:13:55] [CLEANUP] Updated page indicator
[17:13:55] [CLEANUP] Rebuilt video layout
[17:13:55] [CLEANUP] ✅ All agent connections and views cleaned up
[17:13:55] [CLEANUP] ========================================
[17:13:55] [SERVER] Starting reconnect polling (5s interval)
[17:13:55] [CLIENT_SIG] Received 1 clients for session 'ILUIWU' (my session: 'ILUIWU')
[17:13:55] [CLIENT_SIG]   - Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF)
[17:13:55] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=52, first5Ids=[18253, 18254, 18255, 18256, 18257]
[17:13:55] [CELL_UPLOAD] configure: msgId=18296, file=e27abe61119a26c3.mov, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[17:13:55] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[17:13:55] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=e27abe61119a26c3.mov, overlayExists=true
[17:13:55] [INCREMENTAL_SYNC] ✅ No new messages
[17:13:55] [FAST_REFRESH] Incremental sync complete - 52 messages
[17:13:56] [COMBINED_FETCH] Loaded 7071 read receipts, 849 messages with reactions
[17:13:56] [FOREGROUND] Enriched 0 messages with readBy data from server
[17:13:56] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=52, first5Ids=[18253, 18254, 18255, 18256, 18257]
[17:13:56] [CELL_UPLOAD] configure: msgId=18296, file=e27abe61119a26c3.mov, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[17:13:56] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[17:13:56] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=e27abe61119a26c3.mov, overlayExists=true[17:13:56] [LOG] Pruned 456 entries older than 3 hours
[17:13:56] [SECURITY] Restored real session: ILUIWU
[17:13:56] [SECURITY] Restored real session: ILUIWU
[17:13:56] [AUTH] Authentication completed - updating UI only (data already fetched in foreground handler)
[17:13:56] [AUTH] UI update complete
[17:13:56] [CLIENT_SIG] Reconnecting on foreground for session: ILUIWU
[17:13:56] [CLIENT_SIG] Already connected/connecting to session ILUIWU
[17:13:56] [FAKE MODE] Exiting fake mode, restoring real session
[17:13:56] [SECURITY] Restored real session: ILUIWU
[17:13:56] [SECURITY] Saved real session: ILUIWU
[17:13:56] [FAKE MODE] ✅ Restored real session: ILUIWU
[17:13:56] [FAKE MODE] Loaded 50 messages (limited to page size)
[17:13:56] [PUSH] register_device.php HTTP 200: {"status":"ok","session_id":"ILUIWU","token":"6c0571d5e4b29f63eac8424c26f3737968330e20febf8cd9a320b0952fc80c1c","role":"viewer","muted":0,"removed_from_other_channels":0}
[17:13:56] [USER] Registering user: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, name: Laurent
[17:13:56] [COMBINED_FETCH] Loaded 7071 read receipts, 849 messages with reactions
[17:13:56] [FAST_REFRESH] Enriched 50 messages with readBy data
[17:13:56] [RELOAD_TAB] ⏳ Already pending, waiting for debounce
[17:13:56] [USER] ✅ User registered successfully
[17:13:56] [PUSH] User registration after token update: success
[17:13:56] [CELL_UPLOAD] configure: msgId=18296, file=e27abe61119a26c3.mov, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[17:13:56] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[17:13:56] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=e27abe61119a26c3.mov, overlayExists=true
[17:13:56] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:13:56] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:13:56] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[18255, 18256, 18257, 18258, 18259]
[17:13:56] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:13:56] HELLO → sent (cached token, role=query)
[17:13:56] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:13:56] [WS] Query connection failed - cleaning up all agent connections and views
[17:13:56] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:13:56] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:13:56] [CLEANUP] ========================================
[17:13:56] [CLEANUP] Cleaning up all agent connections and views
[17:13:56] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:13:56] [CLEANUP] Stopped and removed 0 video connections
[17:13:56] [CLEANUP] Removed 0 video views
[17:13:56] [CLEANUP] Removed 0 feed scroll views
[17:13:56] [CLEANUP] Removed 0 status labels
[17:13:56] [CLEANUP] Reset agent query state
[17:13:56] [CLEANUP] Updated page indicator
[17:13:56] [CLEANUP] Rebuilt video layout
[17:13:56] [CLEANUP] ✅ All agent connections and views cleaned up
[17:13:56] [CLEANUP] ========================================
[17:13:56] [SERVER] Starting reconnect polling (5s interval)
[17:13:56] [CLEANUP] ========================================
[17:13:56] [CLEANUP] Cleaning up all agent connections and views
[17:13:56] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:13:56] [CLEANUP] Stopped and removed 0 video connections
[17:13:56] [CLEANUP] Removed 0 video views
[17:13:56] [CLEANUP] Removed 0 feed scroll views
[17:13:56] [CLEANUP] Removed 0 status labels
[17:13:56] [CLEANUP] Reset agent query state
[17:13:56] [CLEANUP] Updated page indicator
[17:13:56] [CLEANUP] Rebuilt video layout
[17:13:56] [CLEANUP] ✅ All agent connections and views cleaned up
[17:13:56] [CLEANUP] ========================================
[17:13:56] [SERVER] Starting reconnect polling (5s interval)
[17:13:57] [MENU] dismissAnyExistingMenu called
[17:13:57] [MENU] dismissAnyExistingMenu completed
[17:13:58] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:13:58] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:13:58] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:13:58] HELLO → sent (cached token, role=query)
[17:13:58] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:13:58] [WS] Query connection failed - cleaning up all agent connections and views
[17:13:58] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:13:58] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:13:58] [CLEANUP] ========================================
[17:13:58] [CLEANUP] Cleaning up all agent connections and views
[17:13:58] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:13:58] [CLEANUP] Stopped and removed 0 video connections
[17:13:58] [CLEANUP] Removed 0 video views
[17:13:58] [CLEANUP] Removed 0 feed scroll views
[17:13:58] [CLEANUP] Removed 0 status labels
[17:13:58] [CLEANUP] Reset agent query state
[17:13:58] [CLEANUP] Updated page indicator
[17:13:58] [CLEANUP] Rebuilt video layout
[17:13:58] [CLEANUP] ✅ All agent connections and views cleaned up
[17:13:58] [CLEANUP] ========================================
[17:13:58] [SERVER] Starting reconnect polling (5s interval)
[17:13:58] [CLEANUP] ========================================
[17:13:58] [CLEANUP] Cleaning up all agent connections and views
[17:13:58] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:13:58] [CLEANUP] Stopped and removed 0 video connections
[17:13:58] [CLEANUP] Removed 0 video views
[17:13:58] [CLEANUP] Removed 0 feed scroll views
[17:13:58] [CLEANUP] Removed 0 status labels
[17:13:58] [CLEANUP] Reset agent query state
[17:13:58] [CLEANUP] Updated page indicator
[17:13:58] [CLEANUP] Rebuilt video layout
[17:13:58] [CLEANUP] ✅ All agent connections and views cleaned up
[17:13:58] [CLEANUP] ========================================
[17:13:58] [SERVER] Starting reconnect polling (5s interval)
[17:14:00] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:14:00] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:14:00] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:14:00] HELLO → sent (cached token, role=query)
[17:14:00] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:14:00] [WS] Query connection failed - cleaning up all agent connections and views
[17:14:00] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:14:00] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:14:00] [CLEANUP] ========================================
[17:14:00] [CLEANUP] Cleaning up all agent connections and views
[17:14:00] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:14:00] [CLEANUP] Stopped and removed 0 video connections
[17:14:00] [CLEANUP] Removed 0 video views
[17:14:00] [CLEANUP] Removed 0 feed scroll views
[17:14:00] [CLEANUP] Removed 0 status labels
[17:14:00] [CLEANUP] Reset agent query state
[17:14:00] [CLEANUP] Updated page indicator
[17:14:00] [CLEANUP] Rebuilt video layout
[17:14:00] [CLEANUP] ✅ All agent connections and views cleaned up
[17:14:00] [CLEANUP] ========================================
[17:14:00] [SERVER] Starting reconnect polling (5s interval)
[17:14:00] [CLEANUP] ========================================
[17:14:00] [CLEANUP] Cleaning up all agent connections and views
[17:14:00] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:14:00] [CLEANUP] Stopped and removed 0 video connections
[17:14:00] [CLEANUP] Removed 0 video views
[17:14:00] [CLEANUP] Removed 0 feed scroll views
[17:14:00] [CLEANUP] Removed 0 status labels
[17:14:00] [CLEANUP] Reset agent query state
[17:14:00] [CLEANUP] Updated page indicator
[17:14:00] [CLEANUP] Rebuilt video layout
[17:14:00] [CLEANUP] ✅ All agent connections and views cleaned up
[17:14:00] [CLEANUP] ========================================
[17:14:00] [SERVER] Starting reconnect polling (5s interval)
[17:14:01] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:14:01] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:14:01] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:14:01] HELLO → sent (cached token, role=query)
[17:14:02] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:14:02] [WS] Query connection failed - cleaning up all agent connections and views
[17:14:02] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:14:02] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:14:02] [CLEANUP] ========================================
[17:14:02] [CLEANUP] Cleaning up all agent connections and views
[17:14:02] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:14:02] [CLEANUP] Stopped and removed 0 video connections
[17:14:02] [CLEANUP] Removed 0 video views
[17:14:02] [CLEANUP] Removed 0 feed scroll views
[17:14:02] [CLEANUP] Removed 0 status labels
[17:14:02] [CLEANUP] Reset agent query state
[17:14:02] [CLEANUP] Updated page indicator
[17:14:02] [CLEANUP] Rebuilt video layout
[17:14:02] [CLEANUP] ✅ All agent connections and views cleaned up
[17:14:02] [CLEANUP] ========================================
[17:14:02] [SERVER] Starting reconnect polling (5s interval)
[17:14:02] [CLEANUP] ========================================
[17:14:02] [CLEANUP] Cleaning up all agent connections and views
[17:14:02] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:14:02] [CLEANUP] Stopped and removed 0 video connections
[17:14:02] [CLEANUP] Removed 0 video views
[17:14:02] [CLEANUP] Removed 0 feed scroll views
[17:14:02] [CLEANUP] Removed 0 status labels
[17:14:02] [CLEANUP] Reset agent query state
[17:14:02] [CLEANUP] Updated page indicator
[17:14:02] [CLEANUP] Rebuilt video layout
[17:14:02] [CLEANUP] ✅ All agent connections and views cleaned up
[17:14:02] [CLEANUP] ========================================
[17:14:02] [SERVER] Starting reconnect polling (5s interval)
[17:14:03] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:14:03] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:14:03] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:14:03] HELLO → sent (cached token, role=query)
[17:14:03] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:14:03] [WS] Query connection failed - cleaning up all agent connections and views
[17:14:03] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:14:03] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:14:03] [CLEANUP] ========================================
[17:14:03] [CLEANUP] Cleaning up all agent connections and views
[17:14:03] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:14:03] [CLEANUP] Stopped and removed 0 video connections
[17:14:03] [CLEANUP] Removed 0 video views
[17:14:03] [CLEANUP] Removed 0 feed scroll views
[17:14:03] [CLEANUP] Removed 0 status labels
[17:14:03] [CLEANUP] Reset agent query state
[17:14:03] [CLEANUP] Updated page indicator
[17:14:03] [CLEANUP] Rebuilt video layout
[17:14:03] [CLEANUP] ✅ All agent connections and views cleaned up
[17:14:03] [CLEANUP] ========================================
[17:14:03] [SERVER] Starting reconnect polling (5s interval)
[17:14:03] [CLEANUP] ========================================
[17:14:03] [CLEANUP] Cleaning up all agent connections and views
[17:14:03] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:14:03] [CLEANUP] Stopped and removed 0 video connections
[17:14:03] [CLEANUP] Removed 0 video views
[17:14:03] [CLEANUP] Removed 0 feed scroll views
[17:14:03] [CLEANUP] Removed 0 status labels
[17:14:03] [CLEANUP] Reset agent query state
[17:14:03] [CLEANUP] Updated page indicator
[17:14:03] [CLEANUP] Rebuilt video layout
[17:14:03] [CLEANUP] ✅ All agent connections and views cleaned up
[17:14:03] [CLEANUP] ========================================
[17:14:03] [SERVER] Starting reconnect polling (5s interval)
[17:14:05] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:14:05] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:14:05] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:14:05] HELLO → sent (cached token, role=query)
[17:14:05] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:14:05] [WS] Query connection failed - cleaning up all agent connections and views
[17:14:05] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:14:05] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:14:05] [CLEANUP] ========================================
[17:14:05] [CLEANUP] Cleaning up all agent connections and views
[17:14:05] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:14:05] [CLEANUP] Stopped and removed 0 video connections
[17:14:05] [CLEANUP] Removed 0 video views
[17:14:05] [CLEANUP] Removed 0 feed scroll views
[17:14:05] [CLEANUP] Removed 0 status labels
[17:14:05] [CLEANUP] Reset agent query state
[17:14:05] [CLEANUP] Updated page indicator
[17:14:05] [CLEANUP] Rebuilt video layout
[17:14:05] [CLEANUP] ✅ All agent connections and views cleaned up
[17:14:05] [CLEANUP] ========================================
[17:14:05] [SERVER] Starting reconnect polling (5s interval)
[17:14:05] [CLEANUP] ========================================
[17:14:05] [CLEANUP] Cleaning up all agent connections and views
[17:14:05] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:14:05] [CLEANUP] Stopped and removed 0 video connections
[17:14:05] [CLEANUP] Removed 0 video views
[17:14:05] [CLEANUP] Removed 0 feed scroll views
[17:14:05] [CLEANUP] Removed 0 status labels
[17:14:05] [CLEANUP] Reset agent query state
[17:14:05] [CLEANUP] Updated page indicator
[17:14:05] [CLEANUP] Rebuilt video layout
[17:14:05] [CLEANUP] ✅ All agent connections and views cleaned up
[17:14:05] [CLEANUP] ========================================
[17:14:05] [SERVER] Starting reconnect polling (5s interval)
[17:14:06] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:14:06] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:14:06] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:14:06] HELLO → sent (cached token, role=query)
[17:14:06] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:14:06] [WS] Query connection failed - cleaning up all agent connections and views
[17:14:06] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:14:06] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:14:06] [CLEANUP] ========================================
[17:14:06] [CLEANUP] Cleaning up all agent connections and views
[17:14:06] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:14:06] [CLEANUP] Stopped and removed 0 video connections
[17:14:06] [CLEANUP] Removed 0 video views
[17:14:06] [CLEANUP] Removed 0 feed scroll views
[17:14:06] [CLEANUP] Removed 0 status labels
[17:14:06] [CLEANUP] Reset agent query state
[17:14:06] [CLEANUP] Updated page indicator
[17:14:06] [CLEANUP] Rebuilt video layout
[17:14:06] [CLEANUP] ✅ All agent connections and views cleaned up
[17:14:06] [CLEANUP] ========================================
[17:14:06] [SERVER] Starting reconnect polling (5s interval)
[17:14:06] [CLEANUP] ========================================
[17:14:06] [CLEANUP] Cleaning up all agent connections and views
[17:14:06] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:14:06] [CLEANUP] Stopped and removed 0 video connections
[17:14:06] [CLEANUP] Removed 0 video views
[17:14:06] [CLEANUP] Removed 0 feed scroll views
[17:14:06] [CLEANUP] Removed 0 status labels
[17:14:06] [CLEANUP] Reset agent query state
[17:14:06] [CLEANUP] Updated page indicator
[17:14:06] [CLEANUP] Rebuilt video layout
[17:14:06] [CLEANUP] ✅ All agent connections and views cleaned up
[17:14:06] [CLEANUP] ========================================
[17:14:06] [SERVER] Starting reconnect polling (5s interval)
[17:14:08] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:14:08] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:14:08] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:14:08] HELLO → sent (cached token, role=query)
[17:14:08] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:14:08] [WS] Query connection failed - cleaning up all agent connections and views
[17:14:08] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:14:08] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:14:08] [CLEANUP] ========================================
[17:14:08] [CLEANUP] Cleaning up all agent connections and views
[17:14:08] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:14:08] [CLEANUP] Stopped and removed 0 video connections
[17:14:08] [CLEANUP] Removed 0 video views
[17:14:08] [CLEANUP] Removed 0 feed scroll views
[17:14:08] [CLEANUP] Removed 0 status labels
[17:14:08] [CLEANUP] Reset agent query state
[17:14:08] [CLEANUP] Updated page indicator
[17:14:08] [CLEANUP] Rebuilt video layout
[17:14:08] [CLEANUP] ✅ All agent connections and views cleaned up
[17:14:08] [CLEANUP] ========================================
[17:14:08] [SERVER] Starting reconnect polling (5s interval)
[17:14:08] [CLEANUP] ========================================
[17:14:08] [CLEANUP] Cleaning up all agent connections and views
[17:14:08] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:14:08] [CLEANUP] Stopped and removed 0 video connections
[17:14:08] [CLEANUP] Removed 0 video views
[17:14:08] [CLEANUP] Removed 0 feed scroll views
[17:14:08] [CLEANUP] Removed 0 status labels
[17:14:08] [CLEANUP] Reset agent query state
[17:14:08] [CLEANUP] Updated page indicator
[17:14:08] [CLEANUP] Rebuilt video layout
[17:14:08] [CLEANUP] ✅ All agent connections and views cleaned up
[17:14:08] [CLEANUP] ========================================
[17:14:08] [SERVER] Starting reconnect polling (5s interval)
[17:14:10] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:14:10] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:14:10] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:14:10] HELLO → sent (cached token, role=query)
[17:14:10] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:14:10] [WS] Query connection failed - cleaning up all agent connections and views
[17:14:10] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:14:10] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:14:10] [CLEANUP] ========================================
[17:14:10] [CLEANUP] Cleaning up all agent connections and views
[17:14:10] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:14:10] [CLEANUP] Stopped and removed 0 video connections
[17:14:10] [CLEANUP] Removed 0 video views
[17:14:10] [CLEANUP] Removed 0 feed scroll views
[17:14:10] [CLEANUP] Removed 0 status labels
[17:14:10] [CLEANUP] Reset agent query state
[17:14:10] [CLEANUP] Updated page indicator
[17:14:10] [CLEANUP] Rebuilt video layout
[17:14:10] [CLEANUP] ✅ All agent connections and views cleaned up
[17:14:10] [CLEANUP] ========================================
[17:14:10] [SERVER] Starting reconnect polling (5s interval)
[17:14:10] [CLEANUP] ========================================
[17:14:10] [CLEANUP] Cleaning up all agent connections and views
[17:14:10] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:14:10] [CLEANUP] Stopped and removed 0 video connections
[17:14:10] [CLEANUP] Removed 0 video views
[17:14:10] [CLEANUP] Removed 0 feed scroll views
[17:14:10] [CLEANUP] Removed 0 status labels
[17:14:10] [CLEANUP] Reset agent query state
[17:14:10] [CLEANUP] Updated page indicator
[17:14:10] [CLEANUP] Rebuilt video layout
[17:14:10] [CLEANUP] ✅ All agent connections and views cleaned up
[17:14:10] [CLEANUP] ========================================
[17:14:10] [SERVER] Starting reconnect polling (5s interval)
[17:14:11] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:14:11] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:14:11] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:14:11] HELLO → sent (cached token, role=query)
[17:14:11] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:14:11] [WS] Query connection failed - cleaning up all agent connections and views
[17:14:11] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:14:11] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:14:11] [CLEANUP] ========================================
[17:14:11] [CLEANUP] Cleaning up all agent connections and views
[17:14:11] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:14:11] [CLEANUP] Stopped and removed 0 video connections
[17:14:11] [CLEANUP] Removed 0 video views
[17:14:11] [CLEANUP] Removed 0 feed scroll views
[17:14:11] [CLEANUP] Removed 0 status labels
[17:14:11] [CLEANUP] Reset agent query state
[17:14:11] [CLEANUP] Updated page indicator
[17:14:11] [CLEANUP] Rebuilt video layout
[17:14:11] [CLEANUP] ✅ All agent connections and views cleaned up
[17:14:11] [CLEANUP] ========================================
[17:14:11] [SERVER] Starting reconnect polling (5s interval)
[17:14:11] [CLEANUP] ========================================
[17:14:11] [CLEANUP] Cleaning up all agent connections and views
[17:14:11] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:14:11] [CLEANUP] Stopped and removed 0 video connections
[17:14:11] [CLEANUP] Removed 0 video views
[17:14:11] [CLEANUP] Removed 0 feed scroll views
[17:14:11] [CLEANUP] Removed 0 status labels
[17:14:11] [CLEANUP] Reset agent query state
[17:14:11] [CLEANUP] Updated page indicator
[17:14:11] [CLEANUP] Rebuilt video layout
[17:14:11] [CLEANUP] ✅ All agent connections and views cleaned up
[17:14:11] [CLEANUP] ========================================
[17:14:11] [SERVER] Starting reconnect polling (5s interval)
[17:14:13] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:14:13] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:14:13] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:14:13] HELLO → sent (cached token, role=query)
[17:14:13] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:14:13] [WS] Query connection failed - cleaning up all agent connections and views
[17:14:13] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:14:13] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:14:13] [CLEANUP] ========================================
[17:14:13] [CLEANUP] Cleaning up all agent connections and views
[17:14:13] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:14:13] [CLEANUP] Stopped and removed 0 video connections
[17:14:13] [CLEANUP] Removed 0 video views
[17:14:13] [CLEANUP] Removed 0 feed scroll views
[17:14:13] [CLEANUP] Removed 0 status labels
[17:14:13] [CLEANUP] Reset agent query state
[17:14:13] [CLEANUP] Updated page indicator
[17:14:13] [CLEANUP] Rebuilt video layout
[17:14:13] [CLEANUP] ✅ All agent connections and views cleaned up
[17:14:13] [CLEANUP] ========================================
[17:14:13] [SERVER] Starting reconnect polling (5s interval)
[17:14:13] [CLEANUP] ========================================
[17:14:13] [CLEANUP] Cleaning up all agent connections and views
[17:14:13] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:14:13] [CLEANUP] Stopped and removed 0 video connections
[17:14:13] [CLEANUP] Removed 0 video views
[17:14:13] [CLEANUP] Removed 0 feed scroll views
[17:14:13] [CLEANUP] Removed 0 status labels
[17:14:13] [CLEANUP] Reset agent query state
[17:14:13] [CLEANUP] Updated page indicator
[17:14:13] [CLEANUP] Rebuilt video layout
[17:14:13] [CLEANUP] ✅ All agent connections and views cleaned up
[17:14:13] [CLEANUP] ========================================
[17:14:13] [SERVER] Starting reconnect polling (5s interval)
[17:14:15] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:14:15] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:14:15] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:14:15] HELLO → sent (cached token, role=query)
[17:14:15] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:14:15] [WS] Query connection failed - cleaning up all agent connections and views
[17:14:15] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:14:15] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:14:15] [CLEANUP] ========================================
[17:14:15] [CLEANUP] Cleaning up all agent connections and views
[17:14:15] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:14:15] [CLEANUP] Stopped and removed 0 video connections
[17:14:15] [CLEANUP] Removed 0 video views
[17:14:15] [CLEANUP] Removed 0 feed scroll views
[17:14:15] [CLEANUP] Removed 0 status labels
[17:14:15] [CLEANUP] Reset agent query state
[17:14:15] [CLEANUP] Updated page indicator
[17:14:15] [CLEANUP] Rebuilt video layout
[17:14:15] [CLEANUP] ✅ All agent connections and views cleaned up
[17:14:15] [CLEANUP] ========================================
[17:14:15] [SERVER] Starting reconnect polling (5s interval)
[17:14:15] [CLEANUP] ========================================
[17:14:15] [CLEANUP] Cleaning up all agent connections and views
[17:14:15] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:14:15] [CLEANUP] Stopped and removed 0 video connections
[17:14:15] [CLEANUP] Removed 0 video views
[17:14:15] [CLEANUP] Removed 0 feed scroll views
[17:14:15] [CLEANUP] Removed 0 status labels
[17:14:15] [CLEANUP] Reset agent query state
[17:14:15] [CLEANUP] Updated page indicator
[17:14:15] [CLEANUP] Rebuilt video layout
[17:14:15] [CLEANUP] ✅ All agent connections and views cleaned up
[17:14:15] [CLEANUP] ========================================
[17:14:15] [SERVER] Starting reconnect polling (5s interval)
[17:14:16] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:14:16] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:14:16] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:14:16] HELLO → sent (cached token, role=query)
[17:14:16] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:14:16] [WS] Query connection failed - cleaning up all agent connections and views
[17:14:16] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:14:16] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:14:16] [CLEANUP] ========================================
[17:14:16] [CLEANUP] Cleaning up all agent connections and views
[17:14:16] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:14:16] [CLEANUP] Stopped and removed 0 video connections
[17:14:16] [CLEANUP] Removed 0 video views
[17:14:16] [CLEANUP] Removed 0 feed scroll views
[17:14:16] [CLEANUP] Removed 0 status labels
[17:14:16] [CLEANUP] Reset agent query state
[17:14:16] [CLEANUP] Updated page indicator
[17:14:16] [CLEANUP] Rebuilt video layout
[17:14:16] [CLEANUP] ✅ All agent connections and views cleaned up
[17:14:16] [CLEANUP] ========================================
[17:14:16] [SERVER] Starting reconnect polling (5s interval)
[17:14:16] [CLEANUP] ========================================
[17:14:16] [CLEANUP] Cleaning up all agent connections and views
[17:14:16] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:14:16] [CLEANUP] Stopped and removed 0 video connections
[17:14:16] [CLEANUP] Removed 0 video views
[17:14:16] [CLEANUP] Removed 0 feed scroll views
[17:14:16] [CLEANUP] Removed 0 status labels
[17:14:16] [CLEANUP] Reset agent query state
[17:14:16] [CLEANUP] Updated page indicator
[17:14:16] [CLEANUP] Rebuilt video layout
[17:14:16] [CLEANUP] ✅ All agent connections and views cleaned up
[17:14:16] [CLEANUP] ========================================
[17:14:16] [SERVER] Starting reconnect polling (5s interval)
[17:14:18] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:14:18] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:14:18] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:14:18] HELLO → sent (cached token, role=query)
[17:14:18] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:14:18] [WS] Query connection failed - cleaning up all agent connections and views
[17:14:18] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:14:18] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:14:18] [CLEANUP] ========================================
[17:14:18] [CLEANUP] Cleaning up all agent connections and views
[17:14:18] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:14:18] [CLEANUP] Stopped and removed 0 video connections
[17:14:18] [CLEANUP] Removed 0 video views
[17:14:18] [CLEANUP] Removed 0 feed scroll views
[17:14:18] [CLEANUP] Removed 0 status labels
[17:14:18] [CLEANUP] Reset agent query state
[17:14:18] [CLEANUP] Updated page indicator
[17:14:18] [CLEANUP] Rebuilt video layout
[17:14:18] [CLEANUP] ✅ All agent connections and views cleaned up
[17:14:18] [CLEANUP] ========================================
[17:14:18] [SERVER] Starting reconnect polling (5s interval)
[17:14:18] [CLEANUP] ========================================
[17:14:18] [CLEANUP] Cleaning up all agent connections and views
[17:14:18] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:14:18] [CLEANUP] Stopped and removed 0 video connections
[17:14:18] [CLEANUP] Removed 0 video views
[17:14:18] [CLEANUP] Removed 0 feed scroll views
[17:14:18] [CLEANUP] Removed 0 status labels
[17:14:18] [CLEANUP] Reset agent query state
[17:14:18] [CLEANUP] Updated page indicator
[17:14:18] [CLEANUP] Rebuilt video layout
[17:14:18] [CLEANUP] ✅ All agent connections and views cleaned up
[17:14:18] [CLEANUP] ========================================
[17:14:18] [SERVER] Starting reconnect polling (5s interval)
[17:14:18] [REPLY_DEBUG] 📤 didTapSend - Sending message WITHOUT reply
[17:14:18] [SEND_MESSAGE] 📤 Sending message, currentMsgCount=50, isReloading=false
[17:14:18] [SEND_MESSAGE] ✅ Added optimistic message id=-7 to arrays, newMsgCount=51
[17:14:18] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=51, first5Ids=[-7, 18304, 18303, 18302, 18301]
[17:14:18] [REPLY_DEBUG] ❌ cancelReply called - clearing messageToReplyTo
[17:14:18] [REPLY_DEBUG] ⚠️ sendMessage HTTP BODY - No reply message captured
[17:14:19] [CELL_UPLOAD] configure: msgId=18296, file=e27abe61119a26c3.mov, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[17:14:19] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[17:14:19] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=e27abe61119a26c3.mov, overlayExists=true
[17:14:20] [LOCK] Lock button tapped - locking app immediately
[17:14:20] [LOCK] Received lock app notification
[17:14:20] [CHAT] receive_message.php HTTP 200: {"ok":true,"message_id":18305,"session_id":"ILUIWU","message_type":0,"file_name":"","datesent_utc":"2026-01-20 16:14:19"}
[17:14:20] [CHAT] receive_message.php JSON: ["session_id": ILUIWU, "datesent_utc": 2026-01-20 16:14:19, "file_name": , "message_id": 18305, "message_type": 0, "ok": 1]
[17:14:20] [DB_UPGRADE] Upgrading message ID: -7 → 18305, preserveOriginalDate=false
[17:14:20] [DB_UPGRADE] ✅ Upgraded -7 → 18305 with send_status=0, 1 row(s) affected
[17:14:20] [CLIENT_SIG] Event received: type=0 messageId=18305
[17:14:20] [WS_EVENT] Received event: type=0, messageId=18305
[17:14:20] [WS_EVENT] 📨 New message notification (msgId=18305) - triggering incremental refresh, currentMsgCount=51
[17:14:20] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=51
[17:14:20] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 18305
[17:14:20] [SEND_UPGRADE] ✅ Updated chatMessages[0].id: -7 → 18305
[17:14:20] [SEND_UPGRADE] ✅ Updated allMessagesWithReadBy[0].id: -7 → 18305
[17:14:20] ReloadData 9
[17:14:20] [CELL_UPLOAD] configure: msgId=18296, file=e27abe61119a26c3.mov, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[17:14:20] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[17:14:20] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=e27abe61119a26c3.mov, overlayExists=true
[17:14:20] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:14:20] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:14:20] [INCREMENTAL_SYNC] ✅ No new messages
[17:14:20] [WS_EVENT] ✅ Incremental refresh complete, newMsgCount=51
[17:14:20] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:14:20] HELLO → sent (cached token, role=query)
[17:14:20] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:14:20] [WS] Query connection failed - cleaning up all agent connections and views
[17:14:20] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:14:20] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:14:20] [CLEANUP] ========================================
[17:14:20] [CLEANUP] Cleaning up all agent connections and views
[17:14:20] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:14:20] [CLEANUP] Stopped and removed 0 video connections
[17:14:20] [CLEANUP] Removed 0 video views
[17:14:20] [CLEANUP] Removed 0 feed scroll views
[17:14:20] [CLEANUP] Removed 0 status labels
[17:14:20] [CLEANUP] Reset agent query state
[17:14:20] [CLEANUP] Updated page indicator
[17:14:20] [CLEANUP] Rebuilt video layout
[17:14:20] [CLEANUP] ✅ All agent connections and views cleaned up
[17:14:20] [CLEANUP] ========================================
[17:14:20] [SERVER] Starting reconnect polling (5s interval)
[17:14:20] [CLEANUP] ========================================
[17:14:20] [CLEANUP] Cleaning up all agent connections and views
[17:14:20] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:14:20] [CLEANUP] Stopped and removed 0 video connections
[17:14:20] [CLEANUP] Removed 0 video views
[17:14:20] [CLEANUP] Removed 0 feed scroll views
[17:14:20] [CLEANUP] Removed 0 status labels
[17:14:20] [CLEANUP] Reset agent query state
[17:14:20] [CLEANUP] Updated page indicator
[17:14:20] [CLEANUP] Rebuilt video layout
[17:14:20] [CLEANUP] ✅ All agent connections and views cleaned up
[17:14:20] [CLEANUP] ========================================
[17:14:20] [SERVER] Starting reconnect polling (5s interval)
[17:14:20] [LIFECYCLE] App resigning active - cleared crash flag
[17:14:21] [SECURITY] sceneDidEnterBackground - isAuthenticated=false
[17:14:21] [SECURITY] ⚠️ NOT saving timestamp - isAuthenticated is false
[17:14:21] [LIFECYCLE] App entering background - cleared crash flag
[17:14:21] [CLIENT_SIG] Disconnecting
[17:14:21] [LIFECYCLE] App entering background - disconnecting connections and stopping audio
[17:14:21] [WS] stopSignalingAndPeer called - isQueryOnly=true, connectionStr=iosILUIWU, wsState=3
[17:14:21] [WS] Canceling WebSocket for query connection to iosILUIWU
[17:14:21] In cleanupPeer
[17:14:21] In cleanupPeer
[17:14:21] [LIFECYCLE] WebRTC audio disabled
[17:14:21] [LIFECYCLE] AVAudioSession deactivated
[17:14:21] [LIFECYCLE] All connections stopped
[17:14:21] [CLIENT_SIG] WebSocket closed with code 1001
[17:14:21] [CLIENT_SIG] Reconnecting in 2.0s (attempt 1)
[17:14:21] [SERVER] Stopped reconnect polling
[17:14:21] Will request stop of video 0
[17:14:21] [WS] URLSession invalidated successfully
[17:14:21] Will request stop of video 0
[17:14:21] [CLIENT_SIG] Receive error: Error Domain=NSPOSIXErrorDomain Code=57 "Socket is not connected" UserInfo={NSErrorFailingURLStringKey=http://crivello.dyndns.org:8081/, NSErrorFailingURLKey=http://crivello.dyndns.org:8081/}
[17:14:21] [CLIENT_SIG] Reconnecting in 4.0s (attempt 2)
[17:14:21] [PIP] Removing 0 tracks from PiP for connection 0
[17:14:21] [PIP] ✅ All tracks removed for connection 0
[17:14:21] [PIP] Removing 0 tracks from PiP for connection 0
[17:14:21] [PIP] ✅ All tracks removed for connection 0
[17:30:04] [NETWORK] Status changed: connected
[17:30:04] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:04] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:30:04] [CLIENT_SIG] Connecting to session ILUIWU as Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF)
[17:30:04] [CLIENT_SIG] Reconnecting on foreground for session: ILUIWU
[17:30:04] [CLIENT_SIG] Already connected/connecting to session ILUIWU
[17:30:04] [LIFECYCLE] App entering foreground - restoring connections
[17:30:04] [LIFECYCLE] Away > 2 minutes (943s) - will scroll to bottom
[17:30:04] [UPLOAD_RETRY] No pending uploads to retry
[17:30:04] [LIFECYCLE] Merged 843 reactions from local DB
[17:30:04] [LIFECYCLE] WebRTC audio re-enabled
[17:30:04] [AUDIO] ✅ Chat mode - audio will be managed by WebRTCViewer (no microphone)
[17:30:04] [CLIENT_SIG] Setting up client signaling for session: ILUIWU
[17:30:04] [CLIENT_SIG] Already connected/connecting to session ILUIWU
[17:30:04] [VIEWER] Reconnecting after background - querying agents
[17:30:04] [UNSENT_RETRY] Checking for unsent messages...
[17:30:04] [PENDING_UPLOAD] Total pending upload messages: 0
[17:30:04] [UNSENT_RETRY] No unsent messages found
[17:30:04] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:04] HELLO → sent (cached token, role=query)
[17:30:04] [CLIENT_SIG] WebSocket opened
[17:30:04] [CLIENT_SIG] HELLO sent as client for session ILUIWU
[17:30:04] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:30:04] [WS] Query connection failed - cleaning up all agent connections and views
[17:30:04] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:30:04] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:30:04] [CLEANUP] ========================================
[17:30:04] [CLEANUP] Cleaning up all agent connections and views
[17:30:04] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:04] [CLEANUP] Stopped and removed 0 video connections
[17:30:04] [CLEANUP] Removed 0 video views
[17:30:04] [CLEANUP] Removed 0 feed scroll views
[17:30:04] [CLEANUP] Removed 0 status labels
[17:30:04] [CLEANUP] Reset agent query state
[17:30:04] [CLEANUP] Updated page indicator
[17:30:04] [CLEANUP] Rebuilt video layout
[17:30:04] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:04] [CLEANUP] ========================================
[17:30:04] [SERVER] Starting reconnect polling (5s interval)
[17:30:04] [CLEANUP] ========================================
[17:30:04] [CLEANUP] Cleaning up all agent connections and views
[17:30:04] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:04] [CLEANUP] Stopped and removed 0 video connections
[17:30:04] [CLEANUP] Removed 0 video views
[17:30:04] [CLEANUP] Removed 0 feed scroll views
[17:30:04] [CLEANUP] Removed 0 status labels
[17:30:04] [CLEANUP] Reset agent query state
[17:30:04] [CLEANUP] Updated page indicator
[17:30:04] [CLEANUP] Rebuilt video layout
[17:30:04] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:04] [CLEANUP] ========================================
[17:30:04] [SERVER] Starting reconnect polling (5s interval)
[17:30:04] [CLIENT_SIG] Connected! clientId=y4jQz0zm6sLUw0XW
[17:30:04] [CLIENT_SIG] Received 1 clients for session 'ILUIWU' (my session: 'ILUIWU')
[17:30:04] [CLIENT_SIG]   - Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF)
[17:30:04] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=51, first5Ids=[18305, 18304, 18303, 18302, 18301]
[17:30:05] [CELL_UPLOAD] configure: msgId=18296, file=e27abe61119a26c3.mov, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[17:30:05] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[17:30:05] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=e27abe61119a26c3.mov, overlayExists=true
[17:30:05] [SECURITY] sceneDidBecomeActive - isAuthenticated=false, didEnterBackground=false
[17:30:05] [PUSH_DEBUG] 🟢 App became ACTIVE - resetting badges and triggering pollEventsNow
[17:30:05] [PUSH] handlePollEventsNotification userInfo: [:]
[17:30:05] [PUSH] No message_id in userInfo
[17:30:05] [PUSH] No operation_type in userInfo
[17:30:05] [FAST_REFRESH] Evolution disabled - performing incremental sync
[17:30:05] [FAST_REFRESH] Already have 51 messages - skipping local DB load
[17:30:05] [FAST_REFRESH] About to call reloadMessagesForCurrentTab(), isMainThread=true, viewLoaded=true
[17:30:05] [FAST_REFRESH] reloadMessagesForCurrentTab() called successfully
[17:30:05] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=51
[17:30:05] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 18305
[17:30:05] [INCREMENTAL_SYNC] ✅ No new messages
[17:30:05] [FAST_REFRESH] Incremental sync complete - 51 messages
[17:30:05] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=51, first5Ids=[18305, 18304, 18303, 18302, 18301]
[17:30:05] [CELL_UPLOAD] configure: msgId=18296, file=e27abe61119a26c3.mov, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[17:30:05] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[17:30:05] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=e27abe61119a26c3.mov, overlayExists=true
[17:30:05] [COMBINED_FETCH] Loaded 7072 read receipts, 849 messages with reactions
[17:30:05] [FOREGROUND] Enriched 0 messages with readBy data from server
[17:30:05] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=51, first5Ids=[18305, 18304, 18303, 18302, 18301]
[17:30:05] [CELL_UPLOAD] configure: msgId=18296, file=e27abe61119a26c3.mov, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[17:30:05] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[17:30:05] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=e27abe61119a26c3.mov, overlayExists=true
[17:30:05] [COMBINED_FETCH] Loaded 7072 read receipts, 849 messages with reactions
[17:30:05] [FAST_REFRESH] Enriched 51 messages with readBy data
[17:30:06] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=51, first5Ids=[18305, 18304, 18303, 18302, 18301]
[17:30:06] [CELL_UPLOAD] configure: msgId=18296, file=e27abe61119a26c3.mov, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[17:30:06] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[17:30:06] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=e27abe61119a26c3.mov, overlayExists=true
[17:30:06] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:06] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:30:06] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:06] HELLO → sent (cached token, role=query)
[17:30:06] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:30:06] [WS] Query connection failed - cleaning up all agent connections and views
[17:30:06] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:30:06] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:30:06] [CLEANUP] ========================================
[17:30:06] [CLEANUP] Cleaning up all agent connections and views
[17:30:06] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:06] [CLEANUP] Stopped and removed 0 video connections
[17:30:06] [CLEANUP] Removed 0 video views
[17:30:06] [CLEANUP] Removed 0 feed scroll views
[17:30:06] [CLEANUP] Removed 0 status labels
[17:30:06] [CLEANUP] Reset agent query state
[17:30:06] [CLEANUP] Updated page indicator
[17:30:06] [CLEANUP] Rebuilt video layout
[17:30:06] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:06] [CLEANUP] ========================================
[17:30:06] [SERVER] Starting reconnect polling (5s interval)
[17:30:06] [CLEANUP] ========================================
[17:30:06] [CLEANUP] Cleaning up all agent connections and views
[17:30:06] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:06] [CLEANUP] Stopped and removed 0 video connections
[17:30:06] [CLEANUP] Removed 0 video views
[17:30:06] [CLEANUP] Removed 0 feed scroll views
[17:30:06] [CLEANUP] Removed 0 status labels
[17:30:06] [CLEANUP] Reset agent query state
[17:30:06] [CLEANUP] Updated page indicator
[17:30:06] [CLEANUP] Rebuilt video layout
[17:30:06] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:06] [CLEANUP] ========================================
[17:30:06] [SERVER] Starting reconnect polling (5s interval)[17:30:06] [LOG] Pruned 1538 entries older than 3 hours
[17:30:06] [SECURITY] Restored real session: ILUIWU
[17:30:06] [SECURITY] Restored real session: ILUIWU
[17:30:06] [LOCK] ✅ PIN auth callback - setting isAuthenticated = true
[17:30:06] [AUTH] Authentication completed - updating UI only (data already fetched in foreground handler)
[17:30:06] [AUTH] UI update complete
[17:30:06] [FAKE MODE] Exiting fake mode, restoring real session
[17:30:06] [SECURITY] Restored real session: ILUIWU
[17:30:06] [SECURITY] Saved real session: ILUIWU
[17:30:06] [FAKE MODE] ✅ Restored real session: ILUIWU
[17:30:06] [FAKE MODE] Loaded 50 messages (limited to page size)
[17:30:06] [PUSH] register_device.php HTTP 200: {"status":"ok","session_id":"ILUIWU","token":"6c0571d5e4b29f63eac8424c26f3737968330e20febf8cd9a320b0952fc80c1c","role":"viewer","muted":0,"removed_from_other_channels":0}
[17:30:06] [USER] Registering user: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, name: Laurent
[17:30:06] [CELL_UPLOAD] configure: msgId=18296, file=e27abe61119a26c3.mov, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[17:30:06] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[17:30:06] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=e27abe61119a26c3.mov, overlayExists=true
[17:30:06] [USER] ✅ User registered successfully
[17:30:06] [PUSH] User registration after token update: success
[17:30:06] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[18256, 18257, 18258, 18259, 18260]
[17:30:06] [CELL_UPLOAD] configure: msgId=18296, file=e27abe61119a26c3.mov, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[17:30:06] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[17:30:06] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=e27abe61119a26c3.mov, overlayExists=true
[17:30:08] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:08] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:30:08] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:08] HELLO → sent (cached token, role=query)
[17:30:08] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:30:08] [WS] Query connection failed - cleaning up all agent connections and views
[17:30:08] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:30:08] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:30:08] [CLEANUP] ========================================
[17:30:08] [CLEANUP] Cleaning up all agent connections and views
[17:30:08] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:08] [CLEANUP] Stopped and removed 0 video connections
[17:30:08] [CLEANUP] Removed 0 video views
[17:30:08] [CLEANUP] Removed 0 feed scroll views
[17:30:08] [CLEANUP] Removed 0 status labels
[17:30:08] [CLEANUP] Reset agent query state
[17:30:08] [CLEANUP] Updated page indicator
[17:30:08] [CLEANUP] Rebuilt video layout
[17:30:08] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:08] [CLEANUP] ========================================
[17:30:08] [SERVER] Starting reconnect polling (5s interval)
[17:30:08] [CLEANUP] ========================================
[17:30:08] [CLEANUP] Cleaning up all agent connections and views
[17:30:08] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:08] [CLEANUP] Stopped and removed 0 video connections
[17:30:08] [CLEANUP] Removed 0 video views
[17:30:08] [CLEANUP] Removed 0 feed scroll views
[17:30:08] [CLEANUP] Removed 0 status labels
[17:30:08] [CLEANUP] Reset agent query state
[17:30:08] [CLEANUP] Updated page indicator
[17:30:08] [CLEANUP] Rebuilt video layout
[17:30:08] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:08] [CLEANUP] ========================================
[17:30:08] [SERVER] Starting reconnect polling (5s interval)
[17:30:09] [PASTE] paste invoked; hasImages=true, hasStrings=false
[17:30:09] [PASTE] onImagePaste handler fired
[17:30:09] [PASTE] presenting composer from pasted image: paste_1768926609.jpg
[17:30:09] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:09] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:30:09] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:09] HELLO → sent (cached token, role=query)
[17:30:09] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:30:09] [WS] Query connection failed - cleaning up all agent connections and views
[17:30:09] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:30:09] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:30:09] [CLEANUP] ========================================
[17:30:09] [CLEANUP] Cleaning up all agent connections and views
[17:30:09] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:09] [CLEANUP] Stopped and removed 0 video connections
[17:30:09] [CLEANUP] Removed 0 video views
[17:30:09] [CLEANUP] Removed 0 feed scroll views
[17:30:09] [CLEANUP] Removed 0 status labels
[17:30:09] [CLEANUP] Reset agent query state
[17:30:09] [CLEANUP] Updated page indicator
[17:30:09] [CLEANUP] Rebuilt video layout
[17:30:09] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:09] [CLEANUP] ========================================
[17:30:09] [SERVER] Starting reconnect polling (5s interval)
[17:30:09] [CLEANUP] ========================================
[17:30:09] [CLEANUP] Cleaning up all agent connections and views
[17:30:09] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:09] [CLEANUP] Stopped and removed 0 video connections
[17:30:09] [CLEANUP] Removed 0 video views
[17:30:09] [CLEANUP] Removed 0 feed scroll views
[17:30:09] [CLEANUP] Removed 0 status labels
[17:30:09] [CLEANUP] Reset agent query state
[17:30:09] [CLEANUP] Updated page indicator
[17:30:09] [CLEANUP] Rebuilt video layout
[17:30:09] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:09] [CLEANUP] ========================================
[17:30:09] [SERVER] Starting reconnect polling (5s interval)
[17:30:11] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:11] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:30:11] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:11] HELLO → sent (cached token, role=query)
[17:30:11] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:30:11] [WS] Query connection failed - cleaning up all agent connections and views
[17:30:11] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:30:11] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:30:11] [CLEANUP] ========================================
[17:30:11] [CLEANUP] Cleaning up all agent connections and views
[17:30:11] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:11] [CLEANUP] Stopped and removed 0 video connections
[17:30:11] [CLEANUP] Removed 0 video views
[17:30:11] [CLEANUP] Removed 0 feed scroll views
[17:30:11] [CLEANUP] Removed 0 status labels
[17:30:11] [CLEANUP] Reset agent query state
[17:30:11] [CLEANUP] Updated page indicator
[17:30:11] [CLEANUP] Rebuilt video layout
[17:30:11] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:11] [CLEANUP] ========================================
[17:30:11] [SERVER] Starting reconnect polling (5s interval)
[17:30:11] [CLEANUP] ========================================
[17:30:11] [CLEANUP] Cleaning up all agent connections and views
[17:30:11] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:11] [CLEANUP] Stopped and removed 0 video connections
[17:30:11] [CLEANUP] Removed 0 video views
[17:30:11] [CLEANUP] Removed 0 feed scroll views
[17:30:11] [CLEANUP] Removed 0 status labels
[17:30:11] [CLEANUP] Reset agent query state
[17:30:11] [CLEANUP] Updated page indicator
[17:30:11] [CLEANUP] Rebuilt video layout
[17:30:11] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:11] [CLEANUP] ========================================
[17:30:11] [SERVER] Starting reconnect polling (5s interval)
[17:30:13] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:13] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:30:13] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:13] HELLO → sent (cached token, role=query)
[17:30:13] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:30:13] [WS] Query connection failed - cleaning up all agent connections and views
[17:30:13] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:30:13] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:30:13] [CLEANUP] ========================================
[17:30:13] [CLEANUP] Cleaning up all agent connections and views
[17:30:13] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:13] [CLEANUP] Stopped and removed 0 video connections
[17:30:13] [CLEANUP] Removed 0 video views
[17:30:13] [CLEANUP] Removed 0 feed scroll views
[17:30:13] [CLEANUP] Removed 0 status labels
[17:30:13] [CLEANUP] Reset agent query state
[17:30:13] [CLEANUP] Updated page indicator
[17:30:13] [CLEANUP] Rebuilt video layout
[17:30:13] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:13] [CLEANUP] ========================================
[17:30:13] [SERVER] Starting reconnect polling (5s interval)
[17:30:13] [CLEANUP] ========================================
[17:30:13] [CLEANUP] Cleaning up all agent connections and views
[17:30:13] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:13] [CLEANUP] Stopped and removed 0 video connections
[17:30:13] [CLEANUP] Removed 0 video views
[17:30:13] [CLEANUP] Removed 0 feed scroll views
[17:30:13] [CLEANUP] Removed 0 status labels
[17:30:13] [CLEANUP] Reset agent query state
[17:30:13] [CLEANUP] Updated page indicator
[17:30:13] [CLEANUP] Rebuilt video layout
[17:30:13] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:13] [CLEANUP] ========================================
[17:30:13] [SERVER] Starting reconnect polling (5s interval)
[17:30:14] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:14] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:30:14] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:14] HELLO → sent (cached token, role=query)
[17:30:14] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:30:14] [WS] Query connection failed - cleaning up all agent connections and views
[17:30:14] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:30:14] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:30:14] [CLEANUP] ========================================
[17:30:14] [CLEANUP] Cleaning up all agent connections and views
[17:30:14] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:14] [CLEANUP] Stopped and removed 0 video connections
[17:30:14] [CLEANUP] Removed 0 video views
[17:30:14] [CLEANUP] Removed 0 feed scroll views
[17:30:14] [CLEANUP] Removed 0 status labels
[17:30:14] [CLEANUP] Reset agent query state
[17:30:14] [CLEANUP] Updated page indicator
[17:30:14] [CLEANUP] Rebuilt video layout
[17:30:14] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:14] [CLEANUP] ========================================
[17:30:14] [SERVER] Starting reconnect polling (5s interval)
[17:30:14] [CLEANUP] ========================================
[17:30:14] [CLEANUP] Cleaning up all agent connections and views
[17:30:14] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:14] [CLEANUP] Stopped and removed 0 video connections
[17:30:14] [CLEANUP] Removed 0 video views
[17:30:14] [CLEANUP] Removed 0 feed scroll views
[17:30:14] [CLEANUP] Removed 0 status labels
[17:30:14] [CLEANUP] Reset agent query state
[17:30:14] [CLEANUP] Updated page indicator
[17:30:14] [CLEANUP] Rebuilt video layout
[17:30:14] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:14] [CLEANUP] ========================================
[17:30:14] [SERVER] Starting reconnect polling (5s interval)
[17:30:15] Chosen timer = 0
[17:30:15] [MEDIA_SEND] ========== NEW UPLOAD ==========
[17:30:15] [MEDIA_SEND] onSend called
[17:30:15] [MEDIA_SEND] Source URL: /private/var/mobile/Containers/Data/Application/CC96E73B-1B8E-4E20-B20F-A6600A80CF22/tmp/paste_1768926609.jpg
[17:30:15] [MEDIA_SEND] Source file exists: true
[17:30:15] [MEDIA_SEND] Original filename: paste_1768926609.jpg
[17:30:15] [MEDIA_SEND] Random filename: 8c29dab4be6eb199.jpg
[17:30:15] [MEDIA_SEND] File extension: jpg
[17:30:15] [MEDIA_SEND] Local media path: /var/mobile/Containers/Data/Application/CC96E73B-1B8E-4E20-B20F-A6600A80CF22/Documents/MediaCache/8c29dab4be6eb199.jpg
[17:30:15] [MEDIA_SEND] Local thumbnail path: /var/mobile/Containers/Data/Application/CC96E73B-1B8E-4E20-B20F-A6600A80CF22/Documents/MediaCache/t_8c29dab4be6eb199.jpg
[17:30:15] [MEDIA_SEND] Source file size: 1407073 bytes (1.34 MB)
[17:30:15] [MEDIA_SEND] Copying file (<100MB)
[17:30:15] [MEDIA_SEND] File copied successfully
[17:30:15] [MEDIA_SEND] Destination file exists: true
[17:30:15] [MEDIA_SEND] Destination file size: 1407073 bytes
[17:30:15] [MEDIA_SEND] Creating thumbnail...
[17:30:15] [MEDIA_SEND] Thumbnail created in 0.01s
[17:30:15] [MEDIA_SEND] Thumbnail dimensions: (184.0, 400.0)
[17:30:15] [MEDIA_SEND] Thumbnail exists: true
[17:30:15] [MEDIA_SEND] Thumbnail file size: 16938 bytes
[17:30:15] [MEDIA_SEND] Sending message to server...
[17:30:15] [MEDIA_SEND] Caption: 'Mmmmmmm 🥰🥰🥰🥰🥰'
[17:30:15] [MEDIA_SEND] Timer: 0
[17:30:15] [MEDIA_SEND] Filename: 8c29dab4be6eb199.jpg
[17:30:15] [MEDIA_FLOW] ⚠️ Message sent BEFORE upload starts - if app dies now, file won't be uploaded!
[17:30:15] [SEND_MESSAGE] 📤 Sending message, currentMsgCount=50, isReloading=false
[17:30:15] [MEDIA_SEND] 📤 Creating media message: id=-8, file=8c29dab4be6eb199.jpg, isGiphy=false, upload_status=1 (pending)
[17:30:15] [MEDIA_SEND] 💾 Inserted to DB with upload_status=1
[17:30:15] [SEND_MESSAGE] ✅ Added optimistic message id=-8 to arrays, newMsgCount=51
[17:30:15] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=51, first5Ids=[-8, 18305, 18304, 18303, 18302]
[17:30:15] [CELL_UPLOAD] configure: msgId=-8, file=8c29dab4be6eb199.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=1
[17:30:15] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=1 → pending
[17:30:15] [CELL_UPLOAD] setUploadStatus(pending, progress=0.0) for file=8c29dab4be6eb199.jpg, overlayExists=true
[17:30:15] [CELL_UPLOAD] → pending: overlay.isHidden=false, alpha=1.0
[17:30:15] [CELL_UPLOAD] configure: msgId=-8, file=8c29dab4be6eb199.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=1
[17:30:15] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=1 → pending
[17:30:15] [CELL_UPLOAD] setUploadStatus(pending, progress=0.0) for file=8c29dab4be6eb199.jpg, overlayExists=true
[17:30:15] [CELL_UPLOAD] → pending: overlay.isHidden=false, alpha=1.0
[17:30:15] [REPLY_DEBUG] ❌ cancelReply called - clearing messageToReplyTo
[17:30:15] [REPLY_DEBUG] ⚠️ sendMessage HTTP BODY - No reply message captured
[17:30:15] [MEDIA_SEND] sendMessage API call completed
[17:30:15] [MEDIA_SEND] Starting THUMBNAIL upload: t_8c29dab4be6eb199.jpg
[17:30:15] [UPLOAD_ENQUEUE] 📥 ========== ENQUEUE UPLOAD ==========
[17:30:15] [UPLOAD_ENQUEUE] 📥 File: t_8c29dab4be6eb199.jpg
[17:30:15] [UPLOAD_ENQUEUE] 📥 Local path: /var/mobile/Containers/Data/Application/CC96E73B-1B8E-4E20-B20F-A6600A80CF22/Documents/MediaCache/t_8c29dab4be6eb199.jpg
[17:30:15] [UPLOAD_ENQUEUE] 📥 Session: ILUIWU
[17:30:15] [UPLOAD_ENQUEUE] 📥 File exists: true, size: 0.0 MB
[17:30:15] [GALLERY_DB] Loading ALL media messages for session: ILUIWU
[17:30:15] [UPLOAD_QUEUE] Enqueued upload id=605 for t_8c29dab4be6eb199.jpg
[17:30:15] [UPLOAD_DEBUG] ========== START UPLOAD ==========
[17:30:15] [GALLERY_DB] Raw datesent for msg -8: '2026-01-20 16:30:15'
[17:30:15] [UPLOAD_DEBUG] Item ID: 605
[17:30:15] [UPLOAD_DEBUG] Local URL: /var/mobile/Containers/Data/Application/CC96E73B-1B8E-4E20-B20F-A6600A80CF22/Documents/MediaCache/t_8c29dab4be6eb199.jpg
[17:30:15] [GALLERY_DB] Raw datesent for msg 18296: '2026-01-20 09:02:00'
[17:30:15] [UPLOAD_DEBUG] Random filename: t_8c29dab4be6eb199.jpg
[17:30:15] [UPLOAD_DEBUG] Session ID: ILUIWU
[17:30:15] [GALLERY_DB] Raw datesent for msg 18285: '2026-01-20 06:29:29'
[17:30:15] [UPLOAD_DEBUG] API Base: https://crivello.dyndns.org:443/WebRTC/chat/
[17:30:15] [UPLOAD_DEBUG] Retry count: 0
[17:30:15] [UPLOAD_NOTIFY] 📣 Posting notification: file=t_8c29dab4be6eb199.jpg, status=uploading (2), progress=0.0%
[17:30:15] [UPLOAD_DEBUG] File exists: true
[17:30:15] [UPLOAD_DEBUG] File size: 16938 bytes (0.0 MB)
[17:30:15] [UPLOAD_DEBUG] Chunked threshold: 104857600 bytes (100 MB)
[17:30:15] [UPLOAD_DEBUG] → Using STANDARD upload (file <= threshold)
[17:30:15] [UPLOAD_DEBUG] --- startStandardUpload ---
[17:30:15] [UPLOAD_DEBUG] Upload URL: https://crivello.dyndns.org:443/WebRTC/chat/upload_media.php
[17:30:15] [UPLOAD_DEBUG] File extension: jpg, MIME type: image/jpeg
[17:30:15] [UPLOAD_DEBUG] Temp file URL: /private/var/mobile/Containers/Data/Application/CC96E73B-1B8E-4E20-B20F-A6600A80CF22/tmp/C7DF0197-51A3-4FF7-A49A-A183D47FEFDF.upload
[17:30:15] [UPLOAD_DEBUG] File size: 16938 bytes, in-memory threshold: 10485760 bytes
[17:30:15] [UPLOAD_DEBUG] Creating multipart body (in-memory mode)...
[17:30:15] [UPLOAD_DEBUG] ✓ In-memory body written to temp file (17420 bytes)
[17:30:15] [UPLOAD_DEBUG] Creating background upload task...
[17:30:15] [UPLOAD_DEBUG] Task created with identifier: 1
[17:30:15] [UPLOAD_DEBUG] Added to activeUploads dictionary
[17:30:15] [UPLOAD_DEBUG] Updated DB status to 'uploading'
[17:30:15] [UPLOAD_LIFECYCLE] 🚀 STARTED | task=1 | file=t_8c29dab4be6eb199.jpg | size=0.0MB | retries=0
[17:30:15] [UPLOAD_DEBUG] ✓ Task resumed - upload should be in progress now
[17:30:15] [UPLOAD_DEBUG] ========== UPLOAD STARTED ==========
[17:30:15] [GALLERY_DB] ✅ Loaded 465 media messages
[17:30:15] [CHAT] receive_message.php HTTP 200: {"ok":true,"message_id":18306,"session_id":"ILUIWU","message_type":1,"file_name":"8c29dab4be6eb199.jpg","datesent_utc":"2026-01-20 16:30:15"}
[17:30:15] [CHAT] receive_message.php JSON: ["datesent_utc": 2026-01-20 16:30:15, "message_type": 1, "file_name": 8c29dab4be6eb199.jpg, "ok": 1, "message_id": 18306, "session_id": ILUIWU]
[17:30:15] [DB_UPGRADE] Upgrading message ID: -8 → 18306, preserveOriginalDate=false
[17:30:15] [DB_UPGRADE] ✅ Upgraded -8 → 18306 with send_status=0, 1 row(s) affected
[17:30:15] [UPLOAD_PROGRESS] t_8c29dab4be6eb199.jpg: 100% (0.0/0.0 MB) task=1
[17:30:15] [UPLOAD_NOTIFY] 📣 Posting notification: file=t_8c29dab4be6eb199.jpg, status=uploading (2), progress=100.0%
[17:30:15] [GALLERY] Filtered 465 -> 426 (only with local thumbnails)
[17:30:15] [GALLERY] First 5 after sort (newest first):
[17:30:15] [GALLERY]   0: id=-8, date=2026-01-20 16:30:15, file=8c29dab4be6eb199.jpg
[17:30:15] [GALLERY]   1: id=18296, date=2026-01-20 09:02:00, file=e27abe61119a26c3.mov
[17:30:15] [GALLERY]   2: id=18285, date=2026-01-20 06:29:29, file=37654be40c253c4f.jpg
[17:30:15] [GALLERY]   3: id=18282, date=2026-01-20 01:00:49, file=5b09a034a7f26203.png
[17:30:15] [GALLERY]   4: id=18276, date=2026-01-19 20:22:43, file=a9dc1013e9d5a3e6.jpg
[17:30:15] [UPLOAD_STATUS] 📬 Received notification: file=t_8c29dab4be6eb199.jpg, status=2 (uploading)
[17:30:15] [UPLOAD_STATUS] ⚠️ File not found in memory arrays: t_8c29dab4be6eb199.jpg
[17:30:15] [UPLOAD_STATUS] 💾 Updating DB: file=t_8c29dab4be6eb199.jpg, status=2 (uploading)
[17:30:15] [UPLOAD_STATUS] ⚠️ DB update: 0 rows affected - file=t_8c29dab4be6eb199.jpg not found in local_messages
[17:30:15] [CLIENT_SIG] Event received: type=0 messageId=18306
[17:30:15] [WS_EVENT] Received event: type=0, messageId=18306
[17:30:15] [WS_EVENT] 📨 New message notification (msgId=18306) - triggering incremental refresh, currentMsgCount=51
[17:30:15] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=51
[17:30:15] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 18306
[17:30:15] [SEND_UPGRADE] ✅ Updated chatMessages[0].id: -8 → 18306
[17:30:15] [SEND_UPGRADE] ✅ Updated allMessagesWithReadBy[0].id: -8 → 18306
[17:30:15] ReloadData 9
[17:30:15] [CELL_UPLOAD] configure: msgId=18306, file=8c29dab4be6eb199.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=1
[17:30:15] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=1 → pending
[17:30:15] [CELL_UPLOAD] setUploadStatus(pending, progress=0.0) for file=8c29dab4be6eb199.jpg, overlayExists=true
[17:30:15] [CELL_UPLOAD] → pending: overlay.isHidden=false, alpha=1.0
[17:30:15] [UPLOAD_STATUS] 📬 Received notification: file=t_8c29dab4be6eb199.jpg, status=2 (uploading)
[17:30:15] [UPLOAD_STATUS] ⚠️ File not found in memory arrays: t_8c29dab4be6eb199.jpg
[17:30:15] [UPLOAD_STATUS] 💾 Updating DB: file=t_8c29dab4be6eb199.jpg, status=2 (uploading)
[17:30:15] [UPLOAD_STATUS] ⚠️ DB update: 0 rows affected - file=t_8c29dab4be6eb199.jpg not found in local_messages
[17:30:15] [UPLOAD_RESPONSE] Started receiving response for task 1
[17:30:15] [UPLOAD_METRICS] Task 1 metrics:
[17:30:15] [UPLOAD_METRICS]   Total time: 0.22s
[17:30:15] [UPLOAD_METRICS]   Upload time: 0.00s
[17:30:15] [UPLOAD_METRICS]   Response time: 0.00s
[17:30:15] [UPLOAD_METRICS]   Network protocol: http/1.1
[17:30:15] [UPLOAD_METRICS]   Proxy: no
[17:30:15] [UPLOAD_METRICS]   Reused connection: no
[17:30:15] [UPLOAD_COMPLETE] ========== Task Completed ==========
[17:30:15] [UPLOAD_COMPLETE] Task ID: 1
[17:30:15] [UPLOAD_COMPLETE] Task state: 3 (0=running, 1=suspended, 2=canceling, 3=completed)
[17:30:15] [UPLOAD_COMPLETE] Filename: t_8c29dab4be6eb199.jpg
[17:30:15] [UPLOAD_COMPLETE] Local path: /var/mobile/Containers/Data/Application/CC96E73B-1B8E-4E20-B20F-A6600A80CF22/Documents/MediaCache/t_8c29dab4be6eb199.jpg
[17:30:15] [UPLOAD_COMPLETE] Retry count: 0
[17:30:15] [UPLOAD_COMPLETE] HTTP Status: 200
[17:30:15] [UPLOAD_COMPLETE] Response headers: [AnyHashable("Content-Length"): 217, AnyHashable("Content-Type"): application/json, AnyHashable("Keep-Alive"): timeout=5, max=100, AnyHashable("Connection"): Keep-Alive, AnyHashable("Date"): Tue, 20 Jan 2026 16:30:15 GMT, AnyHashable("Server"): Apache/2.4.65 (Debian)]
[17:30:15] [UPLOAD_COMPLETE] Response body (217 bytes): {"ok":true,"file_name":"t_8c29dab4be6eb199.jpg","orig_name":"t_8c29dab4be6eb199.jpg","size":16938,"env":{"file_uploads":"1","upload_max_filesize":"5G","post_max_size":"10G","upload_tmp_dir":"","content_length":17420}}
[17:30:15] [UPLOAD_COMPLETE] ✅ Server confirmed upload OK
[17:30:15] [UPLOAD_COMPLETE] Server filename: t_8c29dab4be6eb199.jpg
[17:30:15] [UPLOAD_VERIFY] Verifying file exists: t_8c29dab4be6eb199.jpg
[17:30:15] [INCREMENTAL_SYNC] ✅ No new messages
[17:30:15] [WS_EVENT] ✅ Incremental refresh complete, newMsgCount=51
[17:30:15] [UPLOAD_VERIFY] ✅ File verified: t_8c29dab4be6eb199.jpg (size: 16938)
[17:30:15] [UPLOAD_LIFECYCLE] ✅ COMPLETED | file=t_8c29dab4be6eb199.jpg | id=605 | retries=0
[17:30:15] [UPLOAD_COMPLETE] ✅ ========== UPLOAD COMPLETED ==========
[17:30:15] [UPLOAD_COMPLETE] ✅ File: t_8c29dab4be6eb199.jpg
[17:30:15] [UPLOAD_COMPLETE] ✅ Queue ID: 605
[17:30:15] [UPLOAD_COMPLETE] ✅ Session: ILUIWU
[17:30:15] [UPLOAD_COMPLETE] ✅ Server filename: t_8c29dab4be6eb199.jpg
[17:30:15] [UPLOAD_COMPLETE] ✅ Posting .complete status notification
[17:30:15] [UPLOAD_NOTIFY] 📣 Posting notification: file=t_8c29dab4be6eb199.jpg, status=complete (0), progress=0.0%
[17:30:15] [UPLOAD_STATUS] 📬 Received notification: file=t_8c29dab4be6eb199.jpg, status=0 (complete)
[17:30:15] [UPLOAD_STATUS] ⚠️ File not found in memory arrays: t_8c29dab4be6eb199.jpg
[17:30:15] [UPLOAD_STATUS] 💾 Updating DB: file=t_8c29dab4be6eb199.jpg, status=0 (complete)
[17:30:15] [UPLOAD_STATUS] ⚠️ DB update: 0 rows affected - file=t_8c29dab4be6eb199.jpg not found in local_messages
[17:30:15] [UPLOAD_COMPLETE] ✅ Upload queue DB updated to 'completed' for id=605
[17:30:15] [MEDIA_SEND] Thumbnail uploaded successfully in 0.35s
[17:30:15] [MEDIA_SEND] Thumbnail server filename: t_8c29dab4be6eb199.jpg
[17:30:15] [MEDIA_SEND] Starting MAIN FILE upload: 8c29dab4be6eb199.jpg
[17:30:15] [UPLOAD_ENQUEUE] 📥 ========== ENQUEUE UPLOAD ==========
[17:30:15] [UPLOAD_ENQUEUE] 📥 File: 8c29dab4be6eb199.jpg
[17:30:15] [UPLOAD_ENQUEUE] 📥 Local path: /var/mobile/Containers/Data/Application/CC96E73B-1B8E-4E20-B20F-A6600A80CF22/Documents/MediaCache/8c29dab4be6eb199.jpg
[17:30:15] [UPLOAD_ENQUEUE] 📥 Session: ILUIWU
[17:30:15] [UPLOAD_ENQUEUE] 📥 File exists: true, size: 1.3 MB
[17:30:15] [UPLOAD_QUEUE] Enqueued upload id=606 for 8c29dab4be6eb199.jpg
[17:30:15] [UPLOAD_DEBUG] ========== START UPLOAD ==========
[17:30:15] [UPLOAD_DEBUG] Item ID: 606
[17:30:15] [UPLOAD_DEBUG] Local URL: /var/mobile/Containers/Data/Application/CC96E73B-1B8E-4E20-B20F-A6600A80CF22/Documents/MediaCache/8c29dab4be6eb199.jpg
[17:30:15] [UPLOAD_DEBUG] Random filename: 8c29dab4be6eb199.jpg
[17:30:15] [UPLOAD_DEBUG] Session ID: ILUIWU
[17:30:15] [UPLOAD_DEBUG] API Base: https://crivello.dyndns.org:443/WebRTC/chat/
[17:30:15] [UPLOAD_DEBUG] Retry count: 0
[17:30:15] [UPLOAD_NOTIFY] 📣 Posting notification: file=8c29dab4be6eb199.jpg, status=uploading (2), progress=0.0%
[17:30:15] [UPLOAD_STATUS] 📬 Received notification: file=8c29dab4be6eb199.jpg, status=2 (uploading)
[17:30:15] [UPLOAD_STATUS] 📝 Updated allMessagesWithReadBy[0]: 1 → 2
[17:30:15] [UPLOAD_STATUS] 📝 Updated chatMessages[0]: status=2
[17:30:15] [UPLOAD_STATUS] 💾 Updating DB: file=8c29dab4be6eb199.jpg, status=2 (uploading)
[17:30:15] [UPLOAD_DEBUG] File exists: true
[17:30:15] [UPLOAD_DEBUG] File size: 1407073 bytes (1.3 MB)
[17:30:15] [UPLOAD_DEBUG] Chunked threshold: 104857600 bytes (100 MB)
[17:30:15] [UPLOAD_DEBUG] → Using STANDARD upload (file <= threshold)
[17:30:15] [UPLOAD_DEBUG] --- startStandardUpload ---
[17:30:15] [UPLOAD_DEBUG] Upload URL: https://crivello.dyndns.org:443/WebRTC/chat/upload_media.php
[17:30:15] [UPLOAD_DEBUG] File extension: jpg, MIME type: image/jpeg
[17:30:15] [UPLOAD_DEBUG] Temp file URL: /private/var/mobile/Containers/Data/Application/CC96E73B-1B8E-4E20-B20F-A6600A80CF22/tmp/987CB907-251E-4398-88A3-6A3C33653DF7.upload
[17:30:15] [UPLOAD_DEBUG] File size: 1407073 bytes, in-memory threshold: 10485760 bytes
[17:30:15] [UPLOAD_DEBUG] Creating multipart body (in-memory mode)...
[17:30:15] [UPLOAD_STATUS] ✅ DB updated: 1 row(s) affected for file=8c29dab4be6eb199.jpg
[17:30:15] [CELL_UPLOAD] setUploadStatus(uploading, progress=0.0) for file=8c29dab4be6eb199.jpg, overlayExists=true
[17:30:15] [CELL_UPLOAD] → uploading: circularProgress visible, overlay.isHidden=false
[17:30:15] [CELL_UPLOAD] setUploadStatus(uploading, progress=0.0) for file=8c29dab4be6eb199.jpg, overlayExists=true
[17:30:15] [CELL_UPLOAD] → uploading: circularProgress visible, overlay.isHidden=false
[17:30:15] [UPLOAD_DEBUG] ✓ In-memory body written to temp file (1407549 bytes)
[17:30:15] [UPLOAD_DEBUG] Creating background upload task...
[17:30:15] [UPLOAD_DEBUG] Task created with identifier: 2
[17:30:15] [UPLOAD_DEBUG] Added to activeUploads dictionary
[17:30:15] [UPLOAD_DEBUG] Updated DB status to 'uploading'
[17:30:15] [UPLOAD_LIFECYCLE] 🚀 STARTED | task=2 | file=8c29dab4be6eb199.jpg | size=1.3MB | retries=0
[17:30:15] [UPLOAD_DEBUG] ✓ Task resumed - upload should be in progress now
[17:30:15] [UPLOAD_DEBUG] ========== UPLOAD STARTED ==========
[17:30:15] [UPLOAD_NOTIFY] 📣 Posting notification: file=8c29dab4be6eb199.jpg, status=uploading (2), progress=74.5%
[17:30:15] [UPLOAD_STATUS] 📬 Received notification: file=8c29dab4be6eb199.jpg, status=2 (uploading)
[17:30:15] [UPLOAD_STATUS] 📝 Updated allMessagesWithReadBy[0]: 2 → 2
[17:30:15] [UPLOAD_STATUS] 📝 Updated chatMessages[0]: status=2
[17:30:15] [UPLOAD_STATUS] 💾 Updating DB: file=8c29dab4be6eb199.jpg, status=2 (uploading)
[17:30:15] [UPLOAD_STATUS] ✅ DB updated: 1 row(s) affected for file=8c29dab4be6eb199.jpg
[17:30:15] [MEDIA_SEND] Main upload progress: 74%
[17:30:15] [CELL_UPLOAD] setUploadStatus(uploading, progress=0.7449658946153918) for file=8c29dab4be6eb199.jpg, overlayExists=true
[17:30:15] [CELL_UPLOAD] → uploading: circularProgress visible, overlay.isHidden=false
[17:30:15] [CELL_UPLOAD] setUploadStatus(uploading, progress=0.7449658946153918) for file=8c29dab4be6eb199.jpg, overlayExists=true
[17:30:15] [CELL_UPLOAD] → uploading: circularProgress visible, overlay.isHidden=false
[17:30:15] [PROGRESS] Updated cell for 8c29dab4be6eb199.jpg: 74%
[17:30:16] [UPLOAD_PROGRESS] 8c29dab4be6eb199.jpg: 100% (1.3/1.3 MB) task=2
[17:30:16] [UPLOAD_NOTIFY] 📣 Posting notification: file=8c29dab4be6eb199.jpg, status=uploading (2), progress=100.0%
[17:30:16] [UPLOAD_STATUS] 📬 Received notification: file=8c29dab4be6eb199.jpg, status=2 (uploading)
[17:30:16] [UPLOAD_STATUS] 📝 Updated allMessagesWithReadBy[0]: 2 → 2
[17:30:16] [UPLOAD_STATUS] 📝 Updated chatMessages[0]: status=2
[17:30:16] [UPLOAD_STATUS] 💾 Updating DB: file=8c29dab4be6eb199.jpg, status=2 (uploading)
[17:30:16] [UPLOAD_STATUS] ✅ DB updated: 1 row(s) affected for file=8c29dab4be6eb199.jpg
[17:30:16] [MEDIA_SEND] Main upload progress: 100%
[17:30:16] [CELL_UPLOAD] setUploadStatus(uploading, progress=1.0) for file=8c29dab4be6eb199.jpg, overlayExists=true
[17:30:16] [CELL_UPLOAD] → uploading: circularProgress visible, overlay.isHidden=false
[17:30:16] [CELL_UPLOAD] setUploadStatus(uploading, progress=1.0) for file=8c29dab4be6eb199.jpg, overlayExists=true
[17:30:16] [CELL_UPLOAD] → uploading: circularProgress visible, overlay.isHidden=false
[17:30:16] [PROGRESS] Updated cell for 8c29dab4be6eb199.jpg: 100%
[17:30:16] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:16] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:30:16] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:16] HELLO → sent (cached token, role=query)
[17:30:16] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:30:16] [WS] Query connection failed - cleaning up all agent connections and views
[17:30:16] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:30:16] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:30:16] [CLEANUP] ========================================
[17:30:16] [CLEANUP] Cleaning up all agent connections and views
[17:30:16] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:16] [CLEANUP] Stopped and removed 0 video connections
[17:30:16] [CLEANUP] Removed 0 video views
[17:30:16] [CLEANUP] Removed 0 feed scroll views
[17:30:16] [CLEANUP] Removed 0 status labels
[17:30:16] [CLEANUP] Reset agent query state
[17:30:16] [CLEANUP] Updated page indicator
[17:30:16] [CLEANUP] Rebuilt video layout
[17:30:16] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:16] [CLEANUP] ========================================
[17:30:16] [SERVER] Starting reconnect polling (5s interval)
[17:30:16] [CLEANUP] ========================================
[17:30:16] [CLEANUP] Cleaning up all agent connections and views
[17:30:16] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:16] [CLEANUP] Stopped and removed 0 video connections
[17:30:16] [CLEANUP] Removed 0 video views
[17:30:16] [CLEANUP] Removed 0 feed scroll views
[17:30:16] [CLEANUP] Removed 0 status labels
[17:30:16] [CLEANUP] Reset agent query state
[17:30:16] [CLEANUP] Updated page indicator
[17:30:16] [CLEANUP] Rebuilt video layout
[17:30:16] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:16] [CLEANUP] ========================================
[17:30:16] [SERVER] Starting reconnect polling (5s interval)
[17:30:17] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:17] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:30:17] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:17] HELLO → sent (cached token, role=query)
[17:30:17] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:30:17] [WS] Query connection failed - cleaning up all agent connections and views
[17:30:17] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:30:17] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:30:17] [CLEANUP] ========================================
[17:30:17] [CLEANUP] Cleaning up all agent connections and views
[17:30:17] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:17] [CLEANUP] Stopped and removed 0 video connections
[17:30:17] [CLEANUP] Removed 0 video views
[17:30:17] [CLEANUP] Removed 0 feed scroll views
[17:30:17] [CLEANUP] Removed 0 status labels
[17:30:17] [CLEANUP] Reset agent query state
[17:30:17] [CLEANUP] Updated page indicator
[17:30:17] [CLEANUP] Rebuilt video layout
[17:30:17] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:17] [CLEANUP] ========================================
[17:30:17] [SERVER] Starting reconnect polling (5s interval)
[17:30:17] [CLEANUP] ========================================
[17:30:17] [CLEANUP] Cleaning up all agent connections and views
[17:30:17] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:17] [CLEANUP] Stopped and removed 0 video connections
[17:30:17] [CLEANUP] Removed 0 video views
[17:30:17] [CLEANUP] Removed 0 feed scroll views
[17:30:17] [CLEANUP] Removed 0 status labels
[17:30:17] [CLEANUP] Reset agent query state
[17:30:17] [CLEANUP] Updated page indicator
[17:30:17] [CLEANUP] Rebuilt video layout
[17:30:17] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:17] [CLEANUP] ========================================
[17:30:17] [SERVER] Starting reconnect polling (5s interval)
[17:30:18] [UPLOAD_RESPONSE] Started receiving response for task 2
[17:30:18] [UPLOAD_METRICS] Task 2 metrics:
[17:30:18] [UPLOAD_METRICS]   Total time: 2.66s
[17:30:18] [UPLOAD_METRICS]   Upload time: 0.70s
[17:30:18] [UPLOAD_METRICS]   Response time: 0.00s
[17:30:18] [UPLOAD_METRICS]   Network protocol: http/1.1
[17:30:18] [UPLOAD_METRICS]   Proxy: no
[17:30:18] [UPLOAD_METRICS]   Reused connection: yes
[17:30:18] [UPLOAD_COMPLETE] ========== Task Completed ==========
[17:30:18] [UPLOAD_COMPLETE] Task ID: 2
[17:30:18] [UPLOAD_COMPLETE] Task state: 3 (0=running, 1=suspended, 2=canceling, 3=completed)
[17:30:18] [UPLOAD_COMPLETE] Filename: 8c29dab4be6eb199.jpg
[17:30:18] [UPLOAD_COMPLETE] Local path: /var/mobile/Containers/Data/Application/CC96E73B-1B8E-4E20-B20F-A6600A80CF22/Documents/MediaCache/8c29dab4be6eb199.jpg
[17:30:18] [UPLOAD_COMPLETE] Retry count: 0
[17:30:18] [UPLOAD_COMPLETE] HTTP Status: 200
[17:30:18] [UPLOAD_COMPLETE] Response headers: [AnyHashable("Keep-Alive"): timeout=5, max=99, AnyHashable("Connection"): Keep-Alive, AnyHashable("Content-Type"): application/json, AnyHashable("Server"): Apache/2.4.65 (Debian), AnyHashable("Content-Length"): 217, AnyHashable("Date"): Tue, 20 Jan 2026 16:30:15 GMT]
[17:30:18] [UPLOAD_COMPLETE] Response body (217 bytes): {"ok":true,"file_name":"8c29dab4be6eb199.jpg","orig_name":"8c29dab4be6eb199.jpg","size":1407073,"env":{"file_uploads":"1","upload_max_filesize":"5G","post_max_size":"10G","upload_tmp_dir":"","content_length":1407549}}
[17:30:18] [UPLOAD_COMPLETE] ✅ Server confirmed upload OK
[17:30:18] [UPLOAD_COMPLETE] Server filename: 8c29dab4be6eb199.jpg
[17:30:18] [UPLOAD_VERIFY] Verifying file exists: 8c29dab4be6eb199.jpg
[17:30:18] [UPLOAD_VERIFY] ✅ File verified: 8c29dab4be6eb199.jpg (size: 1407073)
[17:30:18] [UPLOAD_LIFECYCLE] ✅ COMPLETED | file=8c29dab4be6eb199.jpg | id=606 | retries=0
[17:30:18] [UPLOAD_COMPLETE] ✅ ========== UPLOAD COMPLETED ==========
[17:30:18] [UPLOAD_COMPLETE] ✅ File: 8c29dab4be6eb199.jpg
[17:30:18] [UPLOAD_COMPLETE] ✅ Queue ID: 606
[17:30:18] [UPLOAD_COMPLETE] ✅ Session: ILUIWU
[17:30:18] [UPLOAD_COMPLETE] ✅ Server filename: 8c29dab4be6eb199.jpg
[17:30:18] [UPLOAD_COMPLETE] ✅ Posting .complete status notification
[17:30:18] [UPLOAD_NOTIFY] 📣 Posting notification: file=8c29dab4be6eb199.jpg, status=complete (0), progress=0.0%
[17:30:18] [UPLOAD_STATUS] 📬 Received notification: file=8c29dab4be6eb199.jpg, status=0 (complete)
[17:30:18] [UPLOAD_STATUS] 📝 Updated allMessagesWithReadBy[0]: 2 → 0
[17:30:18] [UPLOAD_STATUS] 📝 Updated chatMessages[0]: status=0
[17:30:18] [UPLOAD_STATUS] 💾 Updating DB: file=8c29dab4be6eb199.jpg, status=0 (complete)
[17:30:18] [UPLOAD_COMPLETE] ✅ Upload queue DB updated to 'completed' for id=606
[17:30:18] [UPLOAD_STATUS] ✅ DB updated: 1 row(s) affected for file=8c29dab4be6eb199.jpg
[17:30:18] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8c29dab4be6eb199.jpg, overlayExists=true
[17:30:18] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8c29dab4be6eb199.jpg, overlayExists=true
[17:30:18] [MEDIA_SEND] MAIN FILE UPLOADED SUCCESSFULLY
[17:30:18] [MEDIA_SEND] Server filename: 8c29dab4be6eb199.jpg
[17:30:18] [MEDIA_SEND] Main upload duration: 2.75s
[17:30:18] [MEDIA_SEND] Total upload duration: 3.10s
[17:30:18] [MEDIA_SEND] ========== UPLOAD COMPLETE ==========
[17:30:18] [PROGRESS] Updated cell for 8c29dab4be6eb199.jpg: 100%
[17:30:19] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:19] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:30:19] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:19] HELLO → sent (cached token, role=query)
[17:30:19] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:30:19] [WS] Query connection failed - cleaning up all agent connections and views
[17:30:19] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:30:19] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:30:19] [CLEANUP] ========================================
[17:30:19] [CLEANUP] Cleaning up all agent connections and views
[17:30:19] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:19] [CLEANUP] Stopped and removed 0 video connections
[17:30:19] [CLEANUP] Removed 0 video views
[17:30:19] [CLEANUP] Removed 0 feed scroll views
[17:30:19] [CLEANUP] Removed 0 status labels
[17:30:19] [CLEANUP] Reset agent query state
[17:30:19] [CLEANUP] Updated page indicator
[17:30:19] [CLEANUP] Rebuilt video layout
[17:30:19] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:19] [CLEANUP] ========================================
[17:30:19] [SERVER] Starting reconnect polling (5s interval)
[17:30:19] [CLEANUP] ========================================
[17:30:19] [CLEANUP] Cleaning up all agent connections and views
[17:30:19] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:19] [CLEANUP] Stopped and removed 0 video connections
[17:30:19] [CLEANUP] Removed 0 video views
[17:30:19] [CLEANUP] Removed 0 feed scroll views
[17:30:19] [CLEANUP] Removed 0 status labels
[17:30:19] [CLEANUP] Reset agent query state
[17:30:19] [CLEANUP] Updated page indicator
[17:30:19] [CLEANUP] Rebuilt video layout
[17:30:19] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:19] [CLEANUP] ========================================
[17:30:19] [SERVER] Starting reconnect polling (5s interval)
[17:30:21] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:21] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:30:21] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:21] HELLO → sent (cached token, role=query)
[17:30:21] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:30:21] [WS] Query connection failed - cleaning up all agent connections and views
[17:30:21] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:30:21] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:30:21] [CLEANUP] ========================================
[17:30:21] [CLEANUP] Cleaning up all agent connections and views
[17:30:21] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:21] [CLEANUP] Stopped and removed 0 video connections
[17:30:21] [CLEANUP] Removed 0 video views
[17:30:21] [CLEANUP] Removed 0 feed scroll views
[17:30:21] [CLEANUP] Removed 0 status labels
[17:30:21] [CLEANUP] Reset agent query state
[17:30:21] [CLEANUP] Updated page indicator
[17:30:21] [CLEANUP] Rebuilt video layout
[17:30:21] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:21] [CLEANUP] ========================================
[17:30:21] [SERVER] Starting reconnect polling (5s interval)
[17:30:21] [CLEANUP] ========================================
[17:30:21] [CLEANUP] Cleaning up all agent connections and views
[17:30:21] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:21] [CLEANUP] Stopped and removed 0 video connections
[17:30:21] [CLEANUP] Removed 0 video views
[17:30:21] [CLEANUP] Removed 0 feed scroll views
[17:30:21] [CLEANUP] Removed 0 status labels
[17:30:21] [CLEANUP] Reset agent query state
[17:30:21] [CLEANUP] Updated page indicator
[17:30:21] [CLEANUP] Rebuilt video layout
[17:30:21] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:21] [CLEANUP] ========================================
[17:30:21] [SERVER] Starting reconnect polling (5s interval)
[17:30:22] [LOCK] Lock button tapped - locking app immediately
[17:30:22] [LOCK] Received lock app notification
[17:30:22] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:22] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:30:22] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:22] HELLO → sent (cached token, role=query)
[17:30:22] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:30:22] [WS] Query connection failed - cleaning up all agent connections and views
[17:30:22] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:30:22] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:30:22] [CLEANUP] ========================================
[17:30:22] [CLEANUP] Cleaning up all agent connections and views
[17:30:22] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:22] [CLEANUP] Stopped and removed 0 video connections
[17:30:22] [CLEANUP] Removed 0 video views
[17:30:22] [CLEANUP] Removed 0 feed scroll views
[17:30:22] [CLEANUP] Removed 0 status labels
[17:30:22] [CLEANUP] Reset agent query state
[17:30:22] [CLEANUP] Updated page indicator
[17:30:22] [CLEANUP] Rebuilt video layout
[17:30:22] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:22] [CLEANUP] ========================================
[17:30:22] [SERVER] Starting reconnect polling (5s interval)
[17:30:22] [CLEANUP] ========================================
[17:30:22] [CLEANUP] Cleaning up all agent connections and views
[17:30:22] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:22] [CLEANUP] Stopped and removed 0 video connections
[17:30:22] [CLEANUP] Removed 0 video views
[17:30:22] [CLEANUP] Removed 0 feed scroll views
[17:30:22] [CLEANUP] Removed 0 status labels
[17:30:22] [CLEANUP] Reset agent query state
[17:30:22] [CLEANUP] Updated page indicator
[17:30:22] [CLEANUP] Rebuilt video layout
[17:30:22] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:22] [CLEANUP] ========================================
[17:30:22] [SERVER] Starting reconnect polling (5s interval)
[17:30:23] [LIFECYCLE] App resigning active - cleared crash flag
[17:30:23] [SECURITY] sceneDidEnterBackground - isAuthenticated=false
[17:30:23] [SECURITY] ⚠️ NOT saving timestamp - isAuthenticated is false
[17:30:23] [LIFECYCLE] App entering background - cleared crash flag
[17:30:23] [CLIENT_SIG] Disconnecting
[17:30:23] [LIFECYCLE] App entering background - disconnecting connections and stopping audio
[17:30:23] [WS] stopSignalingAndPeer called - isQueryOnly=true, connectionStr=iosILUIWU, wsState=3
[17:30:23] [WS] Canceling WebSocket for query connection to iosILUIWU
[17:30:23] In cleanupPeer
[17:30:23] In cleanupPeer
[17:30:23] [LIFECYCLE] WebRTC audio disabled
[17:30:23] [LIFECYCLE] AVAudioSession deactivated
[17:30:23] [LIFECYCLE] All connections stopped
[17:30:23] [CLIENT_SIG] WebSocket closed with code 1001
[17:30:23] [CLIENT_SIG] Reconnecting in 2.0s (attempt 1)
[17:30:23] [CLIENT_SIG] Receive error: Error Domain=NSPOSIXErrorDomain Code=57 "Socket is not connected" UserInfo={NSErrorFailingURLStringKey=http://crivello.dyndns.org:8081/, NSErrorFailingURLKey=http://crivello.dyndns.org:8081/}
[17:30:23] [CLIENT_SIG] Reconnecting in 4.0s (attempt 2)
[17:30:23] [SERVER] Stopped reconnect polling
[17:30:23] [WS] URLSession invalidated successfully
[17:30:23] Will request stop of video 0
[17:30:23] Will request stop of video 0
[17:30:23] [PIP] Removing 0 tracks from PiP for connection 0
[17:30:23] [PIP] ✅ All tracks removed for connection 0
[17:30:23] [PIP] Removing 0 tracks from PiP for connection 0
[17:30:23] [PIP] ✅ All tracks removed for connection 0
[17:30:41] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:41] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:30:41] [CLIENT_SIG] Connecting to session ILUIWU as Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF)
[17:30:41] [CLIENT_SIG] WebSocket opened
[17:30:41] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:41] HELLO → sent (cached token, role=query)
[17:30:41] [CLIENT_SIG] HELLO sent as client for session ILUIWU
[17:30:41] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:30:41] [WS] Query connection failed - cleaning up all agent connections and views
[17:30:41] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:30:41] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:30:41] [CLEANUP] ========================================
[17:30:41] [CLEANUP] Cleaning up all agent connections and views
[17:30:41] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:41] [CLEANUP] Stopped and removed 0 video connections
[17:30:41] [CLEANUP] Removed 0 video views
[17:30:41] [CLEANUP] Removed 0 feed scroll views
[17:30:41] [CLEANUP] Removed 0 status labels
[17:30:41] [CLEANUP] Reset agent query state
[17:30:41] [CLEANUP] Updated page indicator
[17:30:41] [CLEANUP] Rebuilt video layout
[17:30:41] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:41] [CLEANUP] ========================================
[17:30:41] [SERVER] Skipping reconnect polling - app is in background
[17:30:41] [CLEANUP] ========================================
[17:30:41] [CLEANUP] Cleaning up all agent connections and views
[17:30:41] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:41] [CLEANUP] Stopped and removed 0 video connections
[17:30:41] [CLEANUP] Removed 0 video views
[17:30:41] [CLEANUP] Removed 0 feed scroll views
[17:30:41] [CLEANUP] Removed 0 status labels
[17:30:41] [CLEANUP] Reset agent query state
[17:30:41] [CLEANUP] Updated page indicator
[17:30:41] [CLEANUP] Rebuilt video layout
[17:30:41] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:41] [CLEANUP] ========================================
[17:30:41] [SERVER] Skipping reconnect polling - app is in background
[17:30:41] [CLIENT_SIG] Connected! clientId=2FHhVLFY7Inx3Tme
[17:30:41] [CLIENT_SIG] Received 1 clients for session 'ILUIWU' (my session: 'ILUIWU')
[17:30:41] [CLIENT_SIG]   - Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF)
[17:30:41] [CLIENT_SIG] Receive error: Error Domain=NSPOSIXErrorDomain Code=53 "Software caused connection abort" UserInfo={NSDescription=Software caused connection abort}
[17:30:41] [CLIENT_SIG] Reconnecting in 2.0s (attempt 1)
[17:30:41] [CLIENT_SIG] Task completed with error: Error Domain=NSPOSIXErrorDomain Code=53 "Software caused connection abort" UserInfo={NSDescription=Software caused connection abort, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    "LocalWebSocketTask <159D8E25-085A-4648-A6BB-D85BA7C1A111>.<1>"
), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <159D8E25-085A-4648-A6BB-D85BA7C1A111>.<1>}
[17:30:41] [CLIENT_SIG] Reconnecting in 4.0s (attempt 2)
[17:30:42] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:42] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:30:42] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:30:42] HELLO → sent (cached token, role=query)
[17:30:42] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:30:42] [WS] Query connection failed - cleaning up all agent connections and views
[17:30:42] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:30:42] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:30:42] [CLEANUP] ========================================
[17:30:42] [CLEANUP] Cleaning up all agent connections and views
[17:30:42] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:42] [CLEANUP] Stopped and removed 0 video connections
[17:30:42] [CLEANUP] Removed 0 video views
[17:30:42] [CLEANUP] Removed 0 feed scroll views
[17:30:42] [CLEANUP] Removed 0 status labels
[17:30:42] [CLEANUP] Reset agent query state
[17:30:42] [CLEANUP] Updated page indicator
[17:30:42] [CLEANUP] Rebuilt video layout
[17:30:42] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:42] [CLEANUP] ========================================
[17:30:42] [SERVER] Skipping reconnect polling - app is in background
[17:30:42] [CLEANUP] ========================================
[17:30:42] [CLEANUP] Cleaning up all agent connections and views
[17:30:42] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:30:42] [CLEANUP] Stopped and removed 0 video connections
[17:30:42] [CLEANUP] Removed 0 video views
[17:30:42] [CLEANUP] Removed 0 feed scroll views
[17:30:42] [CLEANUP] Removed 0 status labels
[17:30:42] [CLEANUP] Reset agent query state
[17:30:42] [CLEANUP] Updated page indicator
[17:30:42] [CLEANUP] Rebuilt video layout
[17:30:42] [CLEANUP] ✅ All agent connections and views cleaned up
[17:30:42] [CLEANUP] ========================================
[17:30:42] [SERVER] Skipping reconnect polling - app is in background
[17:34:32] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:34:32] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:34:32] [CLIENT_SIG] Connecting to session ILUIWU as Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF)
[17:34:32] [NETWORK] Status changed: connected
[17:34:32] [NETWORK] Status changed: connected
[17:34:33] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:34:33] HELLO → sent (cached token, role=query)
[17:34:33] [CLIENT_SIG] WebSocket opened
[17:34:33] [CLIENT_SIG] HELLO sent as client for session ILUIWU
[17:34:33] [CLIENT_SIG] Connected! clientId=Le0h_EGrq-3Ca2wX
[17:34:33] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:34:33] [WS] Query connection failed - cleaning up all agent connections and views
[17:34:33] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:34:33] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:34:33] [CLEANUP] ========================================
[17:34:33] [CLEANUP] Cleaning up all agent connections and views
[17:34:33] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:33] [CLEANUP] Stopped and removed 0 video connections
[17:34:33] [CLEANUP] Removed 0 video views
[17:34:33] [CLEANUP] Removed 0 feed scroll views
[17:34:33] [CLEANUP] Removed 0 status labels
[17:34:33] [CLEANUP] Reset agent query state
[17:34:33] [CLEANUP] Updated page indicator
[17:34:33] [CLEANUP] Rebuilt video layout
[17:34:33] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:33] [CLEANUP] ========================================
[17:34:33] [SERVER] Skipping reconnect polling - app is in background
[17:34:33] [CLEANUP] ========================================
[17:34:33] [CLEANUP] Cleaning up all agent connections and views
[17:34:33] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:33] [CLEANUP] Stopped and removed 0 video connections
[17:34:33] [CLEANUP] Removed 0 video views
[17:34:33] [CLEANUP] Removed 0 feed scroll views
[17:34:33] [CLEANUP] Removed 0 status labels
[17:34:33] [CLEANUP] Reset agent query state
[17:34:33] [CLEANUP] Updated page indicator
[17:34:33] [CLEANUP] Rebuilt video layout
[17:34:33] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:33] [CLEANUP] ========================================
[17:34:33] [SERVER] Skipping reconnect polling - app is in background
[17:34:33] [CLIENT_SIG] Receive error: Error Domain=NSPOSIXErrorDomain Code=53 "Software caused connection abort" UserInfo={NSDescription=Software caused connection abort}
[17:34:33] [CLIENT_SIG] Reconnecting in 2.0s (attempt 1)
[17:34:33] [CLIENT_SIG] Task completed with error: Error Domain=NSPOSIXErrorDomain Code=53 "Software caused connection abort" UserInfo={NSDescription=Software caused connection abort, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    "LocalWebSocketTask <7BE800ED-85B5-498F-A1FF-CB1C26A804A5>.<1>"
), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <7BE800ED-85B5-498F-A1FF-CB1C26A804A5>.<1>}
[17:34:33] [CLIENT_SIG] Reconnecting in 4.0s (attempt 2)
[17:34:33] [CLIENT_SIG] Reconnecting on foreground for session: ILUIWU
[17:34:33] [CLIENT_SIG] Connecting to session ILUIWU as Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF)
[17:34:33] [LIFECYCLE] App entering foreground - restoring connections
[17:34:33] [LIFECYCLE] Away > 2 minutes (249s) - will scroll to bottom
[17:34:33] [UPLOAD_RETRY] No pending uploads to retry
[17:34:33] [LIFECYCLE] Merged 843 reactions from local DB
[17:34:33] [LIFECYCLE] WebRTC audio re-enabled
[17:34:33] [AUDIO] ✅ Chat mode - audio will be managed by WebRTCViewer (no microphone)
[17:34:33] [CLIENT_SIG] Setting up client signaling for session: ILUIWU
[17:34:33] [CLIENT_SIG] Already connected/connecting to session ILUIWU
[17:34:33] [VIEWER] Reconnecting after background - querying agents
[17:34:33] [UNSENT_RETRY] Checking for unsent messages...
[17:34:33] [PENDING_UPLOAD] Total pending upload messages: 0
[17:34:33] [UNSENT_RETRY] No unsent messages found
[17:34:33] [CLIENT_SIG] WebSocket opened
[17:34:33] [CLIENT_SIG] HELLO sent as client for session ILUIWU
[17:34:33] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=51, first5Ids=[18306, 18305, 18304, 18303, 18302]
[17:34:33] [CELL_UPLOAD] configure: msgId=18306, file=8c29dab4be6eb199.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[17:34:33] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[17:34:33] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8c29dab4be6eb199.jpg, overlayExists=true
[17:34:33] [CLIENT_SIG] Connected! clientId=LC8H0MAfMH90XngR
[17:34:33] [CLIENT_SIG] Received 1 clients for session 'ILUIWU' (my session: 'ILUIWU')
[17:34:33] [CLIENT_SIG]   - Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF)
[17:34:34] [SECURITY] sceneDidBecomeActive - isAuthenticated=false, didEnterBackground=false
[17:34:34] [PUSH_DEBUG] 🟢 App became ACTIVE - resetting badges and triggering pollEventsNow
[17:34:34] [PUSH] handlePollEventsNotification userInfo: [:]
[17:34:34] [PUSH] No message_id in userInfo
[17:34:34] [PUSH] No operation_type in userInfo
[17:34:34] [FAST_REFRESH] Evolution disabled - performing incremental sync
[17:34:34] [FAST_REFRESH] Already have 51 messages - skipping local DB load
[17:34:34] [FAST_REFRESH] About to call reloadMessagesForCurrentTab(), isMainThread=true, viewLoaded=true
[17:34:34] [FAST_REFRESH] reloadMessagesForCurrentTab() called successfully
[17:34:34] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=51
[17:34:34] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 18306
[17:34:34] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=51, first5Ids=[18306, 18305, 18304, 18303, 18302]
[17:34:34] [INCREMENTAL_SYNC] ✅ No new messages
[17:34:34] [CELL_UPLOAD] configure: msgId=18306, file=8c29dab4be6eb199.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[17:34:34] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[17:34:34] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8c29dab4be6eb199.jpg, overlayExists=true
[17:34:34] [FAST_REFRESH] Incremental sync complete - 51 messages
[17:34:34] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:34:34] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:34:34] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:34:34] HELLO → sent (cached token, role=query)
[17:34:34] [COMBINED_FETCH] Loaded 7073 read receipts, 849 messages with reactions
[17:34:34] [FOREGROUND] Enriched 44 messages with readBy data from server
[17:34:34] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:34:34] [WS] Query connection failed - cleaning up all agent connections and views
[17:34:34] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:34:34] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:34:34] [CLEANUP] ========================================
[17:34:34] [CLEANUP] Cleaning up all agent connections and views
[17:34:34] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:34] [CLEANUP] Stopped and removed 0 video connections
[17:34:34] [CLEANUP] Removed 0 video views
[17:34:34] [CLEANUP] Removed 0 feed scroll views
[17:34:34] [CLEANUP] Removed 0 status labels
[17:34:34] [CLEANUP] Reset agent query state
[17:34:34] [CLEANUP] Updated page indicator
[17:34:34] [CLEANUP] Rebuilt video layout
[17:34:34] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:34] [CLEANUP] ========================================
[17:34:34] [SERVER] Starting reconnect polling (5s interval)
[17:34:34] [CLEANUP] ========================================
[17:34:34] [CLEANUP] Cleaning up all agent connections and views
[17:34:34] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:34] [CLEANUP] Stopped and removed 0 video connections
[17:34:34] [CLEANUP] Removed 0 video views
[17:34:34] [CLEANUP] Removed 0 feed scroll views
[17:34:34] [CLEANUP] Removed 0 status labels
[17:34:34] [CLEANUP] Reset agent query state
[17:34:34] [CLEANUP] Updated page indicator
[17:34:34] [CLEANUP] Rebuilt video layout
[17:34:34] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:34] [CLEANUP] ========================================
[17:34:34] [SERVER] Starting reconnect polling (5s interval)
[17:34:34] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=51, first5Ids=[18306, 18305, 18304, 18303, 18302]
[17:34:34] [CELL_UPLOAD] configure: msgId=18306, file=8c29dab4be6eb199.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[17:34:34] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[17:34:34] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8c29dab4be6eb199.jpg, overlayExists=true
[17:34:35] [COMBINED_FETCH] Loaded 7073 read receipts, 849 messages with reactions
[17:34:35] [FAST_REFRESH] Enriched 51 messages with readBy data
[17:34:35] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=51, first5Ids=[18306, 18305, 18304, 18303, 18302]
[17:34:35] [CELL_UPLOAD] configure: msgId=18306, file=8c29dab4be6eb199.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[17:34:35] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[17:34:35] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8c29dab4be6eb199.jpg, overlayExists=true
[17:34:35] [PIN_AUTH] Correct PIN
[17:34:35] [SECURITY] Restored real session: ILUIWU
[17:34:35] [SECURITY] Restored real session: ILUIWU
[17:34:35] [LOCK] ✅ PIN auth callback - setting isAuthenticated = true
[17:34:35] [AUTH] Authentication completed - updating UI only (data already fetched in foreground handler)
[17:34:35] [AUTH] UI update complete
[17:34:35] [FAKE MODE] Exiting fake mode, restoring real session
[17:34:35] [SECURITY] Restored real session: ILUIWU
[17:34:35] [SECURITY] Saved real session: ILUIWU
[17:34:35] [FAKE MODE] ✅ Restored real session: ILUIWU
[17:34:35] [FAKE MODE] Loaded 50 messages (limited to page size)
[17:34:35] [PUSH] register_device.php HTTP 200: {"status":"ok","session_id":"ILUIWU","token":"6c0571d5e4b29f63eac8424c26f3737968330e20febf8cd9a320b0952fc80c1c","role":"viewer","muted":0,"removed_from_other_channels":0}
[17:34:35] [USER] Registering user: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, name: Laurent
[17:34:35] [CELL_UPLOAD] configure: msgId=18306, file=8c29dab4be6eb199.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[17:34:35] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[17:34:35] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8c29dab4be6eb199.jpg, overlayExists=true
[17:34:35] [USER] ✅ User registered successfully
[17:34:35] [PUSH] User registration after token update: success
[17:34:35] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[18257, 18258, 18259, 18260, 18261]
[17:34:35] [CELL_UPLOAD] configure: msgId=18306, file=8c29dab4be6eb199.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[17:34:35] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[17:34:35] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8c29dab4be6eb199.jpg, overlayExists=true
[17:34:36] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:34:36] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:34:36] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:34:36] HELLO → sent (cached token, role=query)
[17:34:36] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:34:36] [WS] Query connection failed - cleaning up all agent connections and views
[17:34:36] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:34:36] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:34:36] [CLEANUP] ========================================
[17:34:36] [CLEANUP] Cleaning up all agent connections and views
[17:34:36] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:36] [CLEANUP] Stopped and removed 0 video connections
[17:34:36] [CLEANUP] Removed 0 video views
[17:34:36] [CLEANUP] Removed 0 feed scroll views
[17:34:36] [CLEANUP] Removed 0 status labels
[17:34:36] [CLEANUP] Reset agent query state
[17:34:36] [CLEANUP] Updated page indicator
[17:34:36] [CLEANUP] Rebuilt video layout
[17:34:36] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:36] [CLEANUP] ========================================
[17:34:36] [SERVER] Starting reconnect polling (5s interval)
[17:34:36] [CLEANUP] ========================================
[17:34:36] [CLEANUP] Cleaning up all agent connections and views
[17:34:36] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:36] [CLEANUP] Stopped and removed 0 video connections
[17:34:36] [CLEANUP] Removed 0 video views
[17:34:36] [CLEANUP] Removed 0 feed scroll views
[17:34:36] [CLEANUP] Removed 0 status labels
[17:34:36] [CLEANUP] Reset agent query state
[17:34:36] [CLEANUP] Updated page indicator
[17:34:36] [CLEANUP] Rebuilt video layout
[17:34:36] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:36] [CLEANUP] ========================================
[17:34:36] [SERVER] Starting reconnect polling (5s interval)
[17:34:37] [CLIENT_SIG] Already connected/connecting to session ILUIWU
[17:34:37] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:34:37] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:34:38] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:34:38] HELLO → sent (cached token, role=query)
[17:34:38] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:34:38] [WS] Query connection failed - cleaning up all agent connections and views
[17:34:38] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:34:38] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:34:38] [CLEANUP] ========================================
[17:34:38] [CLEANUP] Cleaning up all agent connections and views
[17:34:38] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:38] [CLEANUP] Stopped and removed 0 video connections
[17:34:38] [CLEANUP] Removed 0 video views
[17:34:38] [CLEANUP] Removed 0 feed scroll views
[17:34:38] [CLEANUP] Removed 0 status labels
[17:34:38] [CLEANUP] Reset agent query state
[17:34:38] [CLEANUP] Updated page indicator
[17:34:38] [CLEANUP] Rebuilt video layout
[17:34:38] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:38] [CLEANUP] ========================================
[17:34:38] [SERVER] Starting reconnect polling (5s interval)
[17:34:38] [CLEANUP] ========================================
[17:34:38] [CLEANUP] Cleaning up all agent connections and views
[17:34:38] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:38] [CLEANUP] Stopped and removed 0 video connections
[17:34:38] [CLEANUP] Removed 0 video views
[17:34:38] [CLEANUP] Removed 0 feed scroll views
[17:34:38] [CLEANUP] Removed 0 status labels
[17:34:38] [CLEANUP] Reset agent query state
[17:34:38] [CLEANUP] Updated page indicator
[17:34:38] [CLEANUP] Rebuilt video layout
[17:34:38] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:38] [CLEANUP] ========================================
[17:34:38] [SERVER] Starting reconnect polling (5s interval)
[17:34:39] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:34:39] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:34:39] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:34:39] HELLO → sent (cached token, role=query)
[17:34:39] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:34:39] [WS] Query connection failed - cleaning up all agent connections and views
[17:34:39] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:34:39] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:34:39] [CLEANUP] ========================================
[17:34:39] [CLEANUP] Cleaning up all agent connections and views
[17:34:39] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:39] [CLEANUP] Stopped and removed 0 video connections
[17:34:39] [CLEANUP] Removed 0 video views
[17:34:39] [CLEANUP] Removed 0 feed scroll views
[17:34:39] [CLEANUP] Removed 0 status labels
[17:34:39] [CLEANUP] Reset agent query state
[17:34:39] [CLEANUP] Updated page indicator
[17:34:39] [CLEANUP] Rebuilt video layout
[17:34:39] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:39] [CLEANUP] ========================================
[17:34:39] [SERVER] Starting reconnect polling (5s interval)
[17:34:39] [CLEANUP] ========================================
[17:34:39] [CLEANUP] Cleaning up all agent connections and views
[17:34:39] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:39] [CLEANUP] Stopped and removed 0 video connections
[17:34:39] [CLEANUP] Removed 0 video views
[17:34:39] [CLEANUP] Removed 0 feed scroll views
[17:34:39] [CLEANUP] Removed 0 status labels
[17:34:39] [CLEANUP] Reset agent query state
[17:34:39] [CLEANUP] Updated page indicator
[17:34:39] [CLEANUP] Rebuilt video layout
[17:34:39] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:39] [CLEANUP] ========================================
[17:34:39] [SERVER] Starting reconnect polling (5s interval)
[17:34:41] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:34:41] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:34:41] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:34:41] HELLO → sent (cached token, role=query)
[17:34:41] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:34:41] [WS] Query connection failed - cleaning up all agent connections and views
[17:34:41] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:34:41] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:34:41] [CLEANUP] ========================================
[17:34:41] [CLEANUP] Cleaning up all agent connections and views
[17:34:41] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:41] [CLEANUP] Stopped and removed 0 video connections
[17:34:41] [CLEANUP] Removed 0 video views
[17:34:41] [CLEANUP] Removed 0 feed scroll views
[17:34:41] [CLEANUP] Removed 0 status labels
[17:34:41] [CLEANUP] Reset agent query state
[17:34:41] [CLEANUP] Updated page indicator
[17:34:41] [CLEANUP] Rebuilt video layout
[17:34:41] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:41] [CLEANUP] ========================================
[17:34:41] [SERVER] Starting reconnect polling (5s interval)
[17:34:41] [CLEANUP] ========================================
[17:34:41] [CLEANUP] Cleaning up all agent connections and views
[17:34:41] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:41] [CLEANUP] Stopped and removed 0 video connections
[17:34:41] [CLEANUP] Removed 0 video views
[17:34:41] [CLEANUP] Removed 0 feed scroll views
[17:34:41] [CLEANUP] Removed 0 status labels
[17:34:41] [CLEANUP] Reset agent query state
[17:34:41] [CLEANUP] Updated page indicator
[17:34:41] [CLEANUP] Rebuilt video layout
[17:34:41] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:41] [CLEANUP] ========================================
[17:34:41] [SERVER] Starting reconnect polling (5s interval)
[17:34:43] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:34:43] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:34:43] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:34:43] HELLO → sent (cached token, role=query)
[17:34:43] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:34:43] [WS] Query connection failed - cleaning up all agent connections and views
[17:34:43] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:34:43] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:34:43] [CLEANUP] ========================================
[17:34:43] [CLEANUP] Cleaning up all agent connections and views
[17:34:43] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:43] [CLEANUP] Stopped and removed 0 video connections
[17:34:43] [CLEANUP] Removed 0 video views
[17:34:43] [CLEANUP] Removed 0 feed scroll views
[17:34:43] [CLEANUP] Removed 0 status labels
[17:34:43] [CLEANUP] Reset agent query state
[17:34:43] [CLEANUP] Updated page indicator
[17:34:43] [CLEANUP] Rebuilt video layout
[17:34:43] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:43] [CLEANUP] ========================================
[17:34:43] [SERVER] Starting reconnect polling (5s interval)
[17:34:43] [CLEANUP] ========================================
[17:34:43] [CLEANUP] Cleaning up all agent connections and views
[17:34:43] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:43] [CLEANUP] Stopped and removed 0 video connections
[17:34:43] [CLEANUP] Removed 0 video views
[17:34:43] [CLEANUP] Removed 0 feed scroll views
[17:34:43] [CLEANUP] Removed 0 status labels
[17:34:43] [CLEANUP] Reset agent query state
[17:34:43] [CLEANUP] Updated page indicator
[17:34:43] [CLEANUP] Rebuilt video layout
[17:34:43] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:43] [CLEANUP] ========================================
[17:34:43] [SERVER] Starting reconnect polling (5s interval)
[17:34:45] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:34:45] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:34:45] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:34:45] HELLO → sent (cached token, role=query)
[17:34:45] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:34:45] [WS] Query connection failed - cleaning up all agent connections and views
[17:34:45] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:34:45] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:34:45] [CLEANUP] ========================================
[17:34:45] [CLEANUP] Cleaning up all agent connections and views
[17:34:45] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:45] [CLEANUP] Stopped and removed 0 video connections
[17:34:45] [CLEANUP] Removed 0 video views
[17:34:45] [CLEANUP] Removed 0 feed scroll views
[17:34:45] [CLEANUP] Removed 0 status labels
[17:34:45] [CLEANUP] Reset agent query state
[17:34:45] [CLEANUP] Updated page indicator
[17:34:45] [CLEANUP] Rebuilt video layout
[17:34:45] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:45] [CLEANUP] ========================================
[17:34:45] [SERVER] Starting reconnect polling (5s interval)
[17:34:45] [CLEANUP] ========================================
[17:34:45] [CLEANUP] Cleaning up all agent connections and views
[17:34:45] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:45] [CLEANUP] Stopped and removed 0 video connections
[17:34:45] [CLEANUP] Removed 0 video views
[17:34:45] [CLEANUP] Removed 0 feed scroll views
[17:34:45] [CLEANUP] Removed 0 status labels
[17:34:45] [CLEANUP] Reset agent query state
[17:34:45] [CLEANUP] Updated page indicator
[17:34:45] [CLEANUP] Rebuilt video layout
[17:34:45] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:45] [CLEANUP] ========================================
[17:34:45] [SERVER] Starting reconnect polling (5s interval)
[17:34:46] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:34:46] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:34:46] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:34:46] HELLO → sent (cached token, role=query)
[17:34:46] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:34:46] [WS] Query connection failed - cleaning up all agent connections and views
[17:34:46] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:34:46] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:34:46] [CLEANUP] ========================================
[17:34:46] [CLEANUP] Cleaning up all agent connections and views
[17:34:46] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:46] [CLEANUP] Stopped and removed 0 video connections
[17:34:46] [CLEANUP] Removed 0 video views
[17:34:46] [CLEANUP] Removed 0 feed scroll views
[17:34:46] [CLEANUP] Removed 0 status labels
[17:34:46] [CLEANUP] Reset agent query state
[17:34:46] [CLEANUP] Updated page indicator
[17:34:46] [CLEANUP] Rebuilt video layout
[17:34:46] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:46] [CLEANUP] ========================================
[17:34:46] [SERVER] Starting reconnect polling (5s interval)
[17:34:46] [CLEANUP] ========================================
[17:34:46] [CLEANUP] Cleaning up all agent connections and views
[17:34:46] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:46] [CLEANUP] Stopped and removed 0 video connections
[17:34:46] [CLEANUP] Removed 0 video views
[17:34:46] [CLEANUP] Removed 0 feed scroll views
[17:34:46] [CLEANUP] Removed 0 status labels
[17:34:46] [CLEANUP] Reset agent query state
[17:34:46] [CLEANUP] Updated page indicator
[17:34:46] [CLEANUP] Rebuilt video layout
[17:34:46] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:46] [CLEANUP] ========================================
[17:34:46] [SERVER] Starting reconnect polling (5s interval)
[17:34:48] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:34:48] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:34:48] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:34:48] HELLO → sent (cached token, role=query)
[17:34:48] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:34:48] [WS] Query connection failed - cleaning up all agent connections and views
[17:34:48] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:34:48] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:34:48] [CLEANUP] ========================================
[17:34:48] [CLEANUP] Cleaning up all agent connections and views
[17:34:48] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:48] [CLEANUP] Stopped and removed 0 video connections
[17:34:48] [CLEANUP] Removed 0 video views
[17:34:48] [CLEANUP] Removed 0 feed scroll views
[17:34:48] [CLEANUP] Removed 0 status labels
[17:34:48] [CLEANUP] Reset agent query state
[17:34:48] [CLEANUP] Updated page indicator
[17:34:48] [CLEANUP] Rebuilt video layout
[17:34:48] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:48] [CLEANUP] ========================================
[17:34:48] [SERVER] Starting reconnect polling (5s interval)
[17:34:48] [CLEANUP] ========================================
[17:34:48] [CLEANUP] Cleaning up all agent connections and views
[17:34:48] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:48] [CLEANUP] Stopped and removed 0 video connections
[17:34:48] [CLEANUP] Removed 0 video views
[17:34:48] [CLEANUP] Removed 0 feed scroll views
[17:34:48] [CLEANUP] Removed 0 status labels
[17:34:48] [CLEANUP] Reset agent query state
[17:34:48] [CLEANUP] Updated page indicator
[17:34:48] [CLEANUP] Rebuilt video layout
[17:34:48] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:48] [CLEANUP] ========================================
[17:34:48] [SERVER] Starting reconnect polling (5s interval)
[17:34:49] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:34:49] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:34:49] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:34:49] HELLO → sent (cached token, role=query)
[17:34:50] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:34:50] [WS] Query connection failed - cleaning up all agent connections and views
[17:34:50] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:34:50] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:34:50] [CLEANUP] ========================================
[17:34:50] [CLEANUP] Cleaning up all agent connections and views
[17:34:50] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:50] [CLEANUP] Stopped and removed 0 video connections
[17:34:50] [CLEANUP] Removed 0 video views
[17:34:50] [CLEANUP] Removed 0 feed scroll views
[17:34:50] [CLEANUP] Removed 0 status labels
[17:34:50] [CLEANUP] Reset agent query state
[17:34:50] [CLEANUP] Updated page indicator
[17:34:50] [CLEANUP] Rebuilt video layout
[17:34:50] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:50] [CLEANUP] ========================================
[17:34:50] [SERVER] Starting reconnect polling (5s interval)
[17:34:50] [CLEANUP] ========================================
[17:34:50] [CLEANUP] Cleaning up all agent connections and views
[17:34:50] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:50] [CLEANUP] Stopped and removed 0 video connections
[17:34:50] [CLEANUP] Removed 0 video views
[17:34:50] [CLEANUP] Removed 0 feed scroll views
[17:34:50] [CLEANUP] Removed 0 status labels
[17:34:50] [CLEANUP] Reset agent query state
[17:34:50] [CLEANUP] Updated page indicator
[17:34:50] [CLEANUP] Rebuilt video layout
[17:34:50] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:50] [CLEANUP] ========================================
[17:34:50] [SERVER] Starting reconnect polling (5s interval)
[17:34:51] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:34:51] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:34:51] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:34:51] HELLO → sent (cached token, role=query)
[17:34:51] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:34:51] [WS] Query connection failed - cleaning up all agent connections and views
[17:34:51] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:34:51] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:34:51] [CLEANUP] ========================================
[17:34:51] [CLEANUP] Cleaning up all agent connections and views
[17:34:51] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:51] [CLEANUP] Stopped and removed 0 video connections
[17:34:51] [CLEANUP] Removed 0 video views
[17:34:51] [CLEANUP] Removed 0 feed scroll views
[17:34:51] [CLEANUP] Removed 0 status labels
[17:34:51] [CLEANUP] Reset agent query state
[17:34:51] [CLEANUP] Updated page indicator
[17:34:51] [CLEANUP] Rebuilt video layout
[17:34:51] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:51] [CLEANUP] ========================================
[17:34:51] [SERVER] Starting reconnect polling (5s interval)
[17:34:51] [CLEANUP] ========================================
[17:34:51] [CLEANUP] Cleaning up all agent connections and views
[17:34:51] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:51] [CLEANUP] Stopped and removed 0 video connections
[17:34:51] [CLEANUP] Removed 0 video views
[17:34:51] [CLEANUP] Removed 0 feed scroll views
[17:34:51] [CLEANUP] Removed 0 status labels
[17:34:51] [CLEANUP] Reset agent query state
[17:34:51] [CLEANUP] Updated page indicator
[17:34:51] [CLEANUP] Rebuilt video layout
[17:34:51] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:51] [CLEANUP] ========================================
[17:34:51] [SERVER] Starting reconnect polling (5s interval)
[17:34:52] [REPLY_DEBUG] 📤 didTapSend - Sending message WITHOUT reply
[17:34:52] [SEND_MESSAGE] 📤 Sending message, currentMsgCount=50, isReloading=false
[17:34:52] [SEND_MESSAGE] ✅ Added optimistic message id=-9 to arrays, newMsgCount=51
[17:34:52] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=51, first5Ids=[-9, 18306, 18305, 18304, 18303]
[17:34:52] [CELL_UPLOAD] configure: msgId=18306, file=8c29dab4be6eb199.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[17:34:52] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[17:34:52] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8c29dab4be6eb199.jpg, overlayExists=true
[17:34:52] [REPLY_DEBUG] ❌ cancelReply called - clearing messageToReplyTo
[17:34:52] [REPLY_DEBUG] ⚠️ sendMessage HTTP BODY - No reply message captured
[17:34:53] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:34:53] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:34:53] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[17:34:53] HELLO → sent (cached token, role=query)
[17:34:53] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[17:34:53] [WS] Query connection failed - cleaning up all agent connections and views
[17:34:53] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[17:34:53] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[17:34:53] [CLEANUP] ========================================
[17:34:53] [CLEANUP] Cleaning up all agent connections and views
[17:34:53] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:53] [CLEANUP] Stopped and removed 0 video connections
[17:34:53] [CLEANUP] Removed 0 video views
[17:34:53] [CLEANUP] Removed 0 feed scroll views
[17:34:53] [CLEANUP] Removed 0 status labels
[17:34:53] [CLEANUP] Reset agent query state
[17:34:53] [CLEANUP] Updated page indicator
[17:34:53] [CLEANUP] Rebuilt video layout
[17:34:53] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:53] [CLEANUP] ========================================
[17:34:53] [SERVER] Starting reconnect polling (5s interval)
[17:34:53] [CLEANUP] ========================================
[17:34:53] [CLEANUP] Cleaning up all agent connections and views
[17:34:53] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:53] [CLEANUP] Stopped and removed 0 video connections
[17:34:53] [CLEANUP] Removed 0 video views
[17:34:53] [CLEANUP] Removed 0 feed scroll views
[17:34:53] [CLEANUP] Removed 0 status labels
[17:34:53] [CLEANUP] Reset agent query state
[17:34:53] [CLEANUP] Updated page indicator
[17:34:53] [CLEANUP] Rebuilt video layout
[17:34:53] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:53] [CLEANUP] ========================================
[17:34:53] [SERVER] Starting reconnect polling (5s interval)
[17:34:54] [LIFECYCLE] App resigning active - cleared crash flag
[17:34:54] [CLIENT_SIG] Event received: type=0 messageId=18307
[17:34:54] [WS_EVENT] Received event: type=0, messageId=18307
[17:34:54] [WS_EVENT] 📨 New message notification (msgId=18307) - triggering incremental refresh, currentMsgCount=51
[17:34:54] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=51
[17:34:54] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 18306
[17:34:54] [CHAT] receive_message.php HTTP 200: {"ok":true,"message_id":18307,"session_id":"ILUIWU","message_type":0,"file_name":"","datesent_utc":"2026-01-20 16:34:52"}
[17:34:54] [CHAT] receive_message.php JSON: ["message_type": 0, "session_id": ILUIWU, "file_name": , "ok": 1, "message_id": 18307, "datesent_utc": 2026-01-20 16:34:52]
[17:34:54] [DB_UPGRADE] Upgrading message ID: -9 → 18307, preserveOriginalDate=false
[17:34:54] [DB_UPGRADE] ✅ Upgraded -9 → 18307 with send_status=0, 1 row(s) affected
[17:34:54] [SEND_UPGRADE] ✅ Updated chatMessages[0].id: -9 → 18307
[17:34:54] [SEND_UPGRADE] ✅ Updated allMessagesWithReadBy[0].id: -9 → 18307
[17:34:54] ReloadData 9
[17:34:54] [CELL_UPLOAD] configure: msgId=18306, file=8c29dab4be6eb199.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[17:34:54] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[17:34:54] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8c29dab4be6eb199.jpg, overlayExists=true
[17:34:54] [INCREMENTAL_SYNC] ✅ Found 1 new messages
[17:34:54] [BLACKOUT_DEBUG] blackoutView=nil, newMessages.count=1
[17:34:54] [WS_EVENT] ✅ Incremental refresh complete, newMsgCount=51
[17:34:54] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=51, first5Ids=[18257, 18258, 18259, 18260, 18261]
[17:34:54] [CELL_UPLOAD] configure: msgId=18306, file=8c29dab4be6eb199.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[17:34:54] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[17:34:54] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8c29dab4be6eb199.jpg, overlayExists=true
[17:34:54] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[17:34:54] [WS] Opening session at ws://crivello.dyndns.org:8081/
[17:34:54] [SECURITY] sceneDidEnterBackground - isAuthenticated=true
[17:34:54] [SECURITY] Saved background timestamp
[17:34:54] [LIFECYCLE] App entering background - cleared crash flag
[17:34:54] [CLIENT_SIG] Disconnecting
[17:34:54] [LIFECYCLE] App entering background - disconnecting connections and stopping audio
[17:34:54] [WS] stopSignalingAndPeer called - isQueryOnly=true, connectionStr=iosILUIWU, wsState=0
[17:34:54] [WS] Canceling WebSocket for query connection to iosILUIWU
[17:34:54] In cleanupPeer
[17:34:54] In cleanupPeer
[17:34:54] [LIFECYCLE] WebRTC audio disabled
[17:34:54] [LIFECYCLE] AVAudioSession deactivated
[17:34:54] [LIFECYCLE] All connections stopped
[17:34:55] [CLIENT_SIG] WebSocket closed with code 1001
[17:34:55] [CLIENT_SIG] Reconnecting in 2.0s (attempt 1)
[17:34:55] [SERVER] Stopped reconnect polling
[17:34:55] Will request stop of video 0
[17:34:55] Will request stop of video 0
[17:34:55] [WS] WebSocket task completed with error - isQueryOnly=true: cancelled
[17:34:55] [WS] Query connection error - cleaning up all agent connections and views
[17:34:55] [WS] Connection failed: cancelled
[17:34:55] [WS] Query connection failed - cleaning up all agent connections and views
[17:34:55] [CLIENT_SIG] Receive error: Error Domain=NSPOSIXErrorDomain Code=57 "Socket is not connected" UserInfo={NSErrorFailingURLStringKey=http://crivello.dyndns.org:8081/, NSErrorFailingURLKey=http://crivello.dyndns.org:8081/}
[17:34:55] [CLIENT_SIG] Reconnecting in 4.0s (attempt 2)
[17:34:55] [PIP] Removing 0 tracks from PiP for connection 0
[17:34:55] [PIP] ✅ All tracks removed for connection 0
[17:34:55] [PIP] Removing 0 tracks from PiP for connection 0
[17:34:55] [PIP] ✅ All tracks removed for connection 0
[17:34:55] [CLEANUP] ========================================
[17:34:55] [CLEANUP] Cleaning up all agent connections and views
[17:34:55] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:55] [CLEANUP] Stopped and removed 0 video connections
[17:34:55] [CLEANUP] Removed 0 video views
[17:34:55] [CLEANUP] Removed 0 feed scroll views
[17:34:55] [CLEANUP] Removed 0 status labels
[17:34:55] [CLEANUP] Reset agent query state
[17:34:55] [CLEANUP] Updated page indicator
[17:34:55] [CLEANUP] Rebuilt video layout
[17:34:55] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:55] [CLEANUP] ========================================
[17:34:55] [SERVER] Skipping reconnect polling - app is in background
[17:34:55] [WS] URLSession invalidated successfully
[17:34:55] [CLEANUP] ========================================
[17:34:55] [CLEANUP] Cleaning up all agent connections and views
[17:34:55] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[17:34:55] [CLEANUP] Stopped and removed 0 video connections
[17:34:55] [CLEANUP] Removed 0 video views
[17:34:55] [CLEANUP] Removed 0 feed scroll views
[17:34:55] [CLEANUP] Removed 0 status labels
[17:34:55] [CLEANUP] Reset agent query state
[17:34:55] [CLEANUP] Updated page indicator
[17:34:55] [CLEANUP] Rebuilt video layout
[17:34:55] [CLEANUP] ✅ All agent connections and views cleaned up
[17:34:55] [CLEANUP] ========================================
[17:34:55] [SERVER] Skipping reconnect polling - app is in background
[18:22:29] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:29] [WS] Opening session at ws://crivello.dyndns.org:8081/
[18:22:29] [CLIENT_SIG] Connecting to session ILUIWU as Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF)
[18:22:29] [SECURITY] Timeout check: elapsed=2854.510468006134s, timeout=300.0s
[18:22:29] [SECURITY] sceneWillEnterForeground - timeout exceeded, showing lock screen immediately
[18:22:29] [NETWORK] Status changed: connected
[18:22:29] [AUTH] ✅ All guards passed, showing privacy cover
[18:22:29] [LIFECYCLE] App entering foreground - restoring connections
[18:22:29] [LIFECYCLE] Away > 2 minutes (2854s) - will scroll to bottom
[18:22:29] [UPLOAD_RETRY] No pending uploads to retry
[18:22:29] [LIFECYCLE] Merged 843 reactions from local DB
[18:22:29] [LIFECYCLE] WebRTC audio re-enabled
[18:22:29] [AUDIO] ✅ Chat mode - audio will be managed by WebRTCViewer (no microphone)
[18:22:29] [CLIENT_SIG] Setting up client signaling for session: ILUIWU
[18:22:29] [CLIENT_SIG] Already connected/connecting to session ILUIWU
[18:22:29] [VIEWER] Reconnecting after background - querying agents
[18:22:29] [UNSENT_RETRY] Checking for unsent messages...
[18:22:29] [PENDING_UPLOAD] Total pending upload messages: 0
[18:22:29] [UNSENT_RETRY] No unsent messages found
[18:22:29] [SECURITY] sceneDidBecomeActive - isAuthenticated=false, didEnterBackground=false
[18:22:29] [PUSH_DEBUG] 🟢 App became ACTIVE - resetting badges and triggering pollEventsNow
[18:22:29] [PUSH] handlePollEventsNotification userInfo: [:]
[18:22:29] [PUSH] No message_id in userInfo
[18:22:29] [PUSH] No operation_type in userInfo
[18:22:29] [FAST_REFRESH] Evolution disabled - performing incremental sync
[18:22:29] [FAST_REFRESH] Already have 51 messages - skipping local DB load
[18:22:29] [FAST_REFRESH] About to call reloadMessagesForCurrentTab(), isMainThread=true, viewLoaded=true
[18:22:29] [RELOAD_TAB] ⏳ Already pending, waiting for debounce
[18:22:29] [FAST_REFRESH] reloadMessagesForCurrentTab() called successfully
[18:22:29] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=51
[18:22:29] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 18307
[18:22:29] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:29] HELLO → sent (cached token, role=query)
[18:22:29] [CLIENT_SIG] WebSocket opened
[18:22:29] [CLIENT_SIG] HELLO sent as client for session ILUIWU
[18:22:29] [CLIENT_SIG] Connected! clientId=SBZSD7x5DsLc52US
[18:22:29] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[18:22:29] [WS] Query connection failed - cleaning up all agent connections and views
[18:22:29] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[18:22:29] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[18:22:29] [CLEANUP] ========================================
[18:22:29] [CLEANUP] Cleaning up all agent connections and views
[18:22:29] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:29] [CLEANUP] Stopped and removed 0 video connections
[18:22:29] [CLEANUP] Removed 0 video views
[18:22:29] [CLEANUP] Removed 0 feed scroll views
[18:22:29] [CLEANUP] Removed 0 status labels
[18:22:29] [CLEANUP] Reset agent query state
[18:22:29] [CLEANUP] Updated page indicator
[18:22:29] [CLEANUP] Rebuilt video layout
[18:22:29] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:29] [CLEANUP] ========================================
[18:22:29] [SERVER] Starting reconnect polling (5s interval)
[18:22:29] [CLEANUP] ========================================
[18:22:29] [CLEANUP] Cleaning up all agent connections and views
[18:22:29] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:29] [CLEANUP] Stopped and removed 0 video connections
[18:22:29] [CLEANUP] Removed 0 video views
[18:22:29] [CLEANUP] Removed 0 feed scroll views
[18:22:29] [CLEANUP] Removed 0 status labels
[18:22:29] [CLEANUP] Reset agent query state
[18:22:29] [CLEANUP] Updated page indicator
[18:22:29] [CLEANUP] Rebuilt video layout
[18:22:29] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:29] [CLEANUP] ========================================
[18:22:29] [SERVER] Starting reconnect polling (5s interval)
[18:22:29] [CLIENT_SIG] Received 1 clients for session 'ILUIWU' (my session: 'ILUIWU')
[18:22:29] [CLIENT_SIG]   - Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF)
[18:22:29] [INCREMENTAL_SYNC] ✅ Found 3 new messages
[18:22:29] [BLACKOUT_DEBUG] blackoutView=nil, newMessages.count=3
[18:22:29] [RELOAD_TAB] ⏳ Already pending, waiting for debounce
[18:22:29] [FAST_REFRESH] Incremental sync complete - 54 messages
[18:22:29] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=54, first5Ids=[18257, 18258, 18259, 18260, 18261]
[18:22:30] [CELL_UPLOAD] configure: msgId=18306, file=8c29dab4be6eb199.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[18:22:30] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[18:22:30] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8c29dab4be6eb199.jpg, overlayExists=true
[18:22:30] [EVOLUTION_FILTER] 📝 Updated lastSeenMessageId after marking as read: 18307 → 18308
[18:22:30] [EVOLUTION_FILTER] 📝 Updated lastSeenMessageId after marking as read: 18308 → 18309
[18:22:30] [COMBINED_FETCH] Loaded 7077 read receipts, 852 messages with reactions
[18:22:30] [FOREGROUND] Enriched 51 messages with readBy data from server
[18:22:30] [EVOLUTION_FILTER] 📝 Updated lastSeenMessageId after marking as read: 18309 → 18310
[18:22:30] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=54, first5Ids=[18257, 18258, 18259, 18260, 18261]
[18:22:30] [CELL_UPLOAD] configure: msgId=18306, file=8c29dab4be6eb199.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[18:22:30] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[18:22:30] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8c29dab4be6eb199.jpg, overlayExists=true
[18:22:30] [COMBINED_FETCH] Loaded 7077 read receipts, 852 messages with reactions
[18:22:30] [FAST_REFRESH] Enriched 54 messages with readBy data
[18:22:30] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=54, first5Ids=[18257, 18258, 18259, 18260, 18261]
[18:22:30] [CELL_UPLOAD] configure: msgId=18306, file=8c29dab4be6eb199.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[18:22:30] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[18:22:30] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8c29dab4be6eb199.jpg, overlayExists=true
[18:22:30] [PIN_AUTH] Correct PIN
[18:22:30] [SECURITY] Restored real session: ILUIWU
[18:22:30] [SECURITY] Restored real session: ILUIWU
[18:22:31] [AUTH] Authentication completed - updating UI only (data already fetched in foreground handler)
[18:22:31] [AUTH] UI update complete
[18:22:31] [CLIENT_SIG] Reconnecting on foreground for session: ILUIWU
[18:22:31] [CLIENT_SIG] Already connected/connecting to session ILUIWU
[18:22:31] [FAKE MODE] Exiting fake mode, restoring real session
[18:22:31] [SECURITY] Restored real session: ILUIWU
[18:22:31] [SECURITY] Saved real session: ILUIWU
[18:22:31] [FAKE MODE] ✅ Restored real session: ILUIWU
[18:22:31] [FAKE MODE] Loaded 50 messages (limited to page size)
[18:22:31] [PUSH] register_device.php HTTP 200: {"status":"ok","session_id":"ILUIWU","token":"6c0571d5e4b29f63eac8424c26f3737968330e20febf8cd9a320b0952fc80c1c","role":"viewer","muted":0,"removed_from_other_channels":0}
[18:22:31] [USER] Registering user: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, name: Laurent
[18:22:31] [USER] ✅ User registered successfully
[18:22:31] [PUSH] User registration after token update: success
[18:22:31] [CELL_UPLOAD] configure: msgId=18306, file=8c29dab4be6eb199.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[18:22:31] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[18:22:31] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8c29dab4be6eb199.jpg, overlayExists=true
[18:22:31] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[18261, 18262, 18263, 18264, 18265]
[18:22:31] [CELL_UPLOAD] configure: msgId=18306, file=8c29dab4be6eb199.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[18:22:31] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[18:22:31] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8c29dab4be6eb199.jpg, overlayExists=true
[18:22:31] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:31] [WS] Opening session at ws://crivello.dyndns.org:8081/
[18:22:31] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:31] HELLO → sent (cached token, role=query)
[18:22:31] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[18:22:31] [WS] Query connection failed - cleaning up all agent connections and views
[18:22:31] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[18:22:31] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[18:22:31] [CLEANUP] ========================================
[18:22:31] [CLEANUP] Cleaning up all agent connections and views
[18:22:31] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:31] [CLEANUP] Stopped and removed 0 video connections
[18:22:31] [CLEANUP] Removed 0 video views
[18:22:31] [CLEANUP] Removed 0 feed scroll views
[18:22:31] [CLEANUP] Removed 0 status labels
[18:22:31] [CLEANUP] Reset agent query state
[18:22:31] [CLEANUP] Updated page indicator
[18:22:31] [CLEANUP] Rebuilt video layout
[18:22:31] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:31] [CLEANUP] ========================================
[18:22:31] [SERVER] Starting reconnect polling (5s interval)
[18:22:31] [CLEANUP] ========================================
[18:22:31] [CLEANUP] Cleaning up all agent connections and views
[18:22:31] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:31] [CLEANUP] Stopped and removed 0 video connections
[18:22:31] [CLEANUP] Removed 0 video views
[18:22:31] [CLEANUP] Removed 0 feed scroll views
[18:22:31] [CLEANUP] Removed 0 status labels
[18:22:31] [CLEANUP] Reset agent query state
[18:22:31] [CLEANUP] Updated page indicator
[18:22:31] [CLEANUP] Rebuilt video layout
[18:22:31] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:31] [CLEANUP] ========================================
[18:22:31] [SERVER] Starting reconnect polling (5s interval)
[18:22:31] [PUSH] Silent push received
[18:22:31] [PUSH_EMBED] 📩 Received embedded message: id=18310, type=0, sender=Esra
[18:22:31] [PUSH_EMBED] ✅ Saved message 18310 to local DB (sync)
[18:22:31] [PUSH_EMBED] Created new cache with embedded message 18310
[18:22:31] [PUSH_EMBED] Fetching evolution data for message 18310 in background
[18:22:31] [PUSH_EMBED] ✅ Fully processed message 18310
[18:22:31] [PUSH] Embedded message handled instantly from silent push
[18:22:31] [PUSH_UI] 🔔 handlePushMessageReceived CALLED
[18:22:31] [PUSH_UI_BLACKOUT] blackoutView=false, senderId=EDAD55A1-003F-415D-AA60-672B34B504FE, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, type=0
[18:22:31] [PUSH_UI] Message 18310 already in memory - skipping insert
[18:22:31] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("message_id"): 18310, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): {
    datesent = "2026-01-20 17:09:27";
    "file_name" = "";
    message = "I miss you\U2665\Ufe0f";
    "message_id" = 18310;
    "message_type" = 0;
    "prev_session_message_id" = 18309;
    "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE";
    "sender_name" = Esra;
    "session_id" = ILUIWU;
    timer = 0;
}, AnyHashable("operation_type"): 0, AnyHashable("aps"): {
    alert =     {
        body = "New message received";
        title = Eye;
    };
    badge = 3;
    "content-available" = 1;
    sound = default;
}]
[18:22:31] [PUSH_EMBED_VC] Message 18310 already in memory - skipping
[18:22:31] [PUSH] ⚡ Embedded message handled directly in ViewController
[18:22:31] [PUSH] Parsed message_id: 18310
[18:22:31] [PUSH] Parsed operation_type: 0
[18:22:31] [PUSH] Taking direct action: opType=0, messageId=18310
[18:22:31] [PUSH] TakeActionFromPush called: OperationType=0, MessageIds=18310
[18:22:31] [PUSH] ⚡ Message 18310 already in memory - skipping duplicate notification entirely
[18:22:31] [PUSH_EMBED] Got evolution data for message 18310, saving to local DB
[18:22:31] [PUSH_EMBED] Saved evolution data for message 18310
[18:22:32] [PUSH] Silent push received
[18:22:32] [PUSH_EMBED] No embedded message_data in notification
[18:22:32] [PUSH] No embedded data, pre-loading messages from server
[18:22:32] [PUSH_PRELOAD] Fetching messages for instant display cache
[18:22:32] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display
[18:22:32] [PUSH] Silent push received
[18:22:32] [PUSH_EMBED] No embedded message_data in notification
[18:22:32] [PUSH] No embedded data, pre-loading messages from server
[18:22:32] [PUSH_PRELOAD] Fetching messages for instant display cache
[18:22:32] [PUSH_PRELOAD] ⚡ Pre-cached 50 messages for instant display (preserved 0 from push)
[18:22:32] [PUSH] Silent push received
[18:22:32] [PUSH_EMBED] No embedded message_data in notification
[18:22:32] [PUSH] No embedded data, pre-loading messages from server
[18:22:32] [PUSH_PRELOAD] Fetching messages for instant display cache
[18:22:32] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails
[18:22:32] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("aps"): {
    "content-available" = 1;
}, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18308, AnyHashable("session_id"): ILUIWU]
[18:22:32] [PUSH] Parsed message_id: 18308
[18:22:32] [PUSH] Parsed operation_type: 3
[18:22:32] [PUSH] Taking direct action: opType=3, messageId=18308
[18:22:32] [PUSH] TakeActionFromPush called: OperationType=3, MessageIds=18308
[18:22:32] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display
[18:22:32] [PUSH_PRELOAD] ⚡ Pre-cached 50 messages for instant display (preserved 0 from push)
[18:22:32] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails
[18:22:32] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18309, AnyHashable("operation_type"): 3, AnyHashable("aps"): {
    "content-available" = 1;
}]
[18:22:32] [PUSH] Parsed message_id: 18309
[18:22:32] [PUSH] Parsed operation_type: 3
[18:22:32] [PUSH] Taking direct action: opType=3, messageId=18309
[18:22:32] [PUSH] TakeActionFromPush called: OperationType=3, MessageIds=18309
[18:22:32] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display
[18:22:32] [PUSH_PRELOAD] ⚡ Pre-cached 50 messages for instant display (preserved 0 from push)
[18:22:32] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails
[18:22:32] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("aps"): {
    "content-available" = 1;
}, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18310, AnyHashable("session_id"): ILUIWU]
[18:22:32] [PUSH] Parsed message_id: 18310
[18:22:32] [PUSH] Parsed operation_type: 3
[18:22:32] [PUSH] Taking direct action: opType=3, messageId=18310
[18:22:32] [PUSH] TakeActionFromPush called: OperationType=3, MessageIds=18310
[18:22:33] [CLIENT_SIG] Event received: type=3 messageId=18308
[18:22:33] [WS_EVENT] Received event: type=3, messageId=18308
[18:22:33] [WS_EVENT] Read receipt for message 18308 by Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF)
[18:22:33] [CLIENT_SIG] Event received: type=3 messageId=18310
[18:22:33] [WS_EVENT] Received event: type=3, messageId=18310
[18:22:33] [WS_EVENT] Read receipt for message 18310 by Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF)
[18:22:33] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:33] [WS] Opening session at ws://crivello.dyndns.org:8081/
[18:22:33] [CLIENT_SIG] Event received: type=3 messageId=18309
[18:22:33] [WS_EVENT] Received event: type=3, messageId=18309
[18:22:33] [WS_EVENT] Read receipt for message 18309 by Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF)
[18:22:33] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:33] HELLO → sent (cached token, role=query)
[18:22:33] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[18:22:33] [WS] Query connection failed - cleaning up all agent connections and views
[18:22:33] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[18:22:33] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[18:22:33] [CLEANUP] ========================================
[18:22:33] [CLEANUP] Cleaning up all agent connections and views
[18:22:33] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:33] [CLEANUP] Stopped and removed 0 video connections
[18:22:33] [CLEANUP] Removed 0 video views
[18:22:33] [CLEANUP] Removed 0 feed scroll views
[18:22:33] [CLEANUP] Removed 0 status labels
[18:22:33] [CLEANUP] Reset agent query state
[18:22:33] [CLEANUP] Updated page indicator
[18:22:33] [CLEANUP] Rebuilt video layout
[18:22:33] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:33] [CLEANUP] ========================================
[18:22:33] [SERVER] Starting reconnect polling (5s interval)
[18:22:33] [CLEANUP] ========================================
[18:22:33] [CLEANUP] Cleaning up all agent connections and views
[18:22:33] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:33] [CLEANUP] Stopped and removed 0 video connections
[18:22:33] [CLEANUP] Removed 0 video views
[18:22:33] [CLEANUP] Removed 0 feed scroll views
[18:22:33] [CLEANUP] Removed 0 status labels
[18:22:33] [CLEANUP] Reset agent query state
[18:22:33] [CLEANUP] Updated page indicator
[18:22:33] [CLEANUP] Rebuilt video layout
[18:22:33] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:33] [CLEANUP] ========================================
[18:22:33] [SERVER] Starting reconnect polling (5s interval)
[18:22:35] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:35] [WS] Opening session at ws://crivello.dyndns.org:8081/
[18:22:35] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:35] HELLO → sent (cached token, role=query)
[18:22:35] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[18:22:35] [WS] Query connection failed - cleaning up all agent connections and views
[18:22:35] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[18:22:35] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[18:22:35] [CLEANUP] ========================================
[18:22:35] [CLEANUP] Cleaning up all agent connections and views
[18:22:35] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:35] [CLEANUP] Stopped and removed 0 video connections
[18:22:35] [CLEANUP] Removed 0 video views
[18:22:35] [CLEANUP] Removed 0 feed scroll views
[18:22:35] [CLEANUP] Removed 0 status labels
[18:22:35] [CLEANUP] Reset agent query state
[18:22:35] [CLEANUP] Updated page indicator
[18:22:35] [CLEANUP] Rebuilt video layout
[18:22:35] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:35] [CLEANUP] ========================================
[18:22:35] [SERVER] Starting reconnect polling (5s interval)
[18:22:35] [CLEANUP] ========================================
[18:22:35] [CLEANUP] Cleaning up all agent connections and views
[18:22:35] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:35] [CLEANUP] Stopped and removed 0 video connections
[18:22:35] [CLEANUP] Removed 0 video views
[18:22:35] [CLEANUP] Removed 0 feed scroll views
[18:22:35] [CLEANUP] Removed 0 status labels
[18:22:35] [CLEANUP] Reset agent query state
[18:22:35] [CLEANUP] Updated page indicator
[18:22:35] [CLEANUP] Rebuilt video layout
[18:22:35] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:35] [CLEANUP] ========================================
[18:22:35] [SERVER] Starting reconnect polling (5s interval)
[18:22:36] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:36] [WS] Opening session at ws://crivello.dyndns.org:8081/
[18:22:37] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:37] HELLO → sent (cached token, role=query)
[18:22:37] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[18:22:37] [WS] Query connection failed - cleaning up all agent connections and views
[18:22:37] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[18:22:37] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[18:22:37] [CLEANUP] ========================================
[18:22:37] [CLEANUP] Cleaning up all agent connections and views
[18:22:37] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:37] [CLEANUP] Stopped and removed 0 video connections
[18:22:37] [CLEANUP] Removed 0 video views
[18:22:37] [CLEANUP] Removed 0 feed scroll views
[18:22:37] [CLEANUP] Removed 0 status labels
[18:22:37] [CLEANUP] Reset agent query state
[18:22:37] [CLEANUP] Updated page indicator
[18:22:37] [CLEANUP] Rebuilt video layout
[18:22:37] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:37] [CLEANUP] ========================================
[18:22:37] [SERVER] Starting reconnect polling (5s interval)
[18:22:37] [CLEANUP] ========================================
[18:22:37] [CLEANUP] Cleaning up all agent connections and views
[18:22:37] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:37] [CLEANUP] Stopped and removed 0 video connections
[18:22:37] [CLEANUP] Removed 0 video views
[18:22:37] [CLEANUP] Removed 0 feed scroll views
[18:22:37] [CLEANUP] Removed 0 status labels
[18:22:37] [CLEANUP] Reset agent query state
[18:22:37] [CLEANUP] Updated page indicator
[18:22:37] [CLEANUP] Rebuilt video layout
[18:22:37] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:37] [CLEANUP] ========================================
[18:22:37] [SERVER] Starting reconnect polling (5s interval)
[18:22:38] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:38] [WS] Opening session at ws://crivello.dyndns.org:8081/
[18:22:39] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:39] HELLO → sent (cached token, role=query)
[18:22:39] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[18:22:39] [WS] Query connection failed - cleaning up all agent connections and views
[18:22:39] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[18:22:39] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[18:22:39] [CLEANUP] ========================================
[18:22:39] [CLEANUP] Cleaning up all agent connections and views
[18:22:39] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:39] [CLEANUP] Stopped and removed 0 video connections
[18:22:39] [CLEANUP] Removed 0 video views
[18:22:39] [CLEANUP] Removed 0 feed scroll views
[18:22:39] [CLEANUP] Removed 0 status labels
[18:22:39] [CLEANUP] Reset agent query state
[18:22:39] [CLEANUP] Updated page indicator
[18:22:39] [CLEANUP] Rebuilt video layout
[18:22:39] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:39] [CLEANUP] ========================================
[18:22:39] [SERVER] Starting reconnect polling (5s interval)
[18:22:39] [CLEANUP] ========================================
[18:22:39] [CLEANUP] Cleaning up all agent connections and views
[18:22:39] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:39] [CLEANUP] Stopped and removed 0 video connections
[18:22:39] [CLEANUP] Removed 0 video views
[18:22:39] [CLEANUP] Removed 0 feed scroll views
[18:22:39] [CLEANUP] Removed 0 status labels
[18:22:39] [CLEANUP] Reset agent query state
[18:22:39] [CLEANUP] Updated page indicator
[18:22:39] [CLEANUP] Rebuilt video layout
[18:22:39] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:39] [CLEANUP] ========================================
[18:22:39] [SERVER] Starting reconnect polling (5s interval)
[18:22:40] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:40] [WS] Opening session at ws://crivello.dyndns.org:8081/
[18:22:40] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:40] HELLO → sent (cached token, role=query)
[18:22:40] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[18:22:40] [WS] Query connection failed - cleaning up all agent connections and views
[18:22:40] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[18:22:40] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[18:22:40] [CLEANUP] ========================================
[18:22:40] [CLEANUP] Cleaning up all agent connections and views
[18:22:40] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:40] [CLEANUP] Stopped and removed 0 video connections
[18:22:40] [CLEANUP] Removed 0 video views
[18:22:40] [CLEANUP] Removed 0 feed scroll views
[18:22:40] [CLEANUP] Removed 0 status labels
[18:22:40] [CLEANUP] Reset agent query state
[18:22:40] [CLEANUP] Updated page indicator
[18:22:40] [CLEANUP] Rebuilt video layout
[18:22:40] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:40] [CLEANUP] ========================================
[18:22:40] [SERVER] Starting reconnect polling (5s interval)
[18:22:40] [CLEANUP] ========================================
[18:22:40] [CLEANUP] Cleaning up all agent connections and views
[18:22:40] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:40] [CLEANUP] Stopped and removed 0 video connections
[18:22:40] [CLEANUP] Removed 0 video views
[18:22:40] [CLEANUP] Removed 0 feed scroll views
[18:22:40] [CLEANUP] Removed 0 status labels
[18:22:40] [CLEANUP] Reset agent query state
[18:22:40] [CLEANUP] Updated page indicator
[18:22:40] [CLEANUP] Rebuilt video layout
[18:22:40] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:40] [CLEANUP] ========================================
[18:22:40] [SERVER] Starting reconnect polling (5s interval)
[18:22:42] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:42] [WS] Opening session at ws://crivello.dyndns.org:8081/
[18:22:42] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:42] HELLO → sent (cached token, role=query)
[18:22:42] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[18:22:42] [WS] Query connection failed - cleaning up all agent connections and views
[18:22:42] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[18:22:42] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[18:22:42] [CLEANUP] ========================================
[18:22:42] [CLEANUP] Cleaning up all agent connections and views
[18:22:42] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:42] [CLEANUP] Stopped and removed 0 video connections
[18:22:42] [CLEANUP] Removed 0 video views
[18:22:42] [CLEANUP] Removed 0 feed scroll views
[18:22:42] [CLEANUP] Removed 0 status labels
[18:22:42] [CLEANUP] Reset agent query state
[18:22:42] [CLEANUP] Updated page indicator
[18:22:42] [CLEANUP] Rebuilt video layout
[18:22:42] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:42] [CLEANUP] ========================================
[18:22:42] [SERVER] Starting reconnect polling (5s interval)
[18:22:42] [CLEANUP] ========================================
[18:22:42] [CLEANUP] Cleaning up all agent connections and views
[18:22:42] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:42] [CLEANUP] Stopped and removed 0 video connections
[18:22:42] [CLEANUP] Removed 0 video views
[18:22:42] [CLEANUP] Removed 0 feed scroll views
[18:22:42] [CLEANUP] Removed 0 status labels
[18:22:42] [CLEANUP] Reset agent query state
[18:22:42] [CLEANUP] Updated page indicator
[18:22:42] [CLEANUP] Rebuilt video layout
[18:22:42] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:42] [CLEANUP] ========================================
[18:22:42] [SERVER] Starting reconnect polling (5s interval)
[18:22:44] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:44] [WS] Opening session at ws://crivello.dyndns.org:8081/
[18:22:44] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:44] HELLO → sent (cached token, role=query)
[18:22:44] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[18:22:44] [WS] Query connection failed - cleaning up all agent connections and views
[18:22:44] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[18:22:44] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[18:22:44] [CLEANUP] ========================================
[18:22:44] [CLEANUP] Cleaning up all agent connections and views
[18:22:44] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:44] [CLEANUP] Stopped and removed 0 video connections
[18:22:44] [CLEANUP] Removed 0 video views
[18:22:44] [CLEANUP] Removed 0 feed scroll views
[18:22:44] [CLEANUP] Removed 0 status labels
[18:22:44] [CLEANUP] Reset agent query state
[18:22:44] [CLEANUP] Updated page indicator
[18:22:44] [CLEANUP] Rebuilt video layout
[18:22:44] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:44] [CLEANUP] ========================================
[18:22:44] [SERVER] Starting reconnect polling (5s interval)
[18:22:44] [CLEANUP] ========================================
[18:22:44] [CLEANUP] Cleaning up all agent connections and views
[18:22:44] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:44] [CLEANUP] Stopped and removed 0 video connections
[18:22:44] [CLEANUP] Removed 0 video views
[18:22:44] [CLEANUP] Removed 0 feed scroll views
[18:22:44] [CLEANUP] Removed 0 status labels
[18:22:44] [CLEANUP] Reset agent query state
[18:22:44] [CLEANUP] Updated page indicator
[18:22:44] [CLEANUP] Rebuilt video layout
[18:22:44] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:44] [CLEANUP] ========================================
[18:22:44] [SERVER] Starting reconnect polling (5s interval)
[18:22:45] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:45] [WS] Opening session at ws://crivello.dyndns.org:8081/
[18:22:46] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:46] HELLO → sent (cached token, role=query)
[18:22:46] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[18:22:46] [WS] Query connection failed - cleaning up all agent connections and views
[18:22:46] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[18:22:46] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[18:22:46] [CLEANUP] ========================================
[18:22:46] [CLEANUP] Cleaning up all agent connections and views
[18:22:46] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:46] [CLEANUP] Stopped and removed 0 video connections
[18:22:46] [CLEANUP] Removed 0 video views
[18:22:46] [CLEANUP] Removed 0 feed scroll views
[18:22:46] [CLEANUP] Removed 0 status labels
[18:22:46] [CLEANUP] Reset agent query state
[18:22:46] [CLEANUP] Updated page indicator
[18:22:46] [CLEANUP] Rebuilt video layout
[18:22:46] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:46] [CLEANUP] ========================================
[18:22:46] [SERVER] Starting reconnect polling (5s interval)
[18:22:46] [CLEANUP] ========================================
[18:22:46] [CLEANUP] Cleaning up all agent connections and views
[18:22:46] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:46] [CLEANUP] Stopped and removed 0 video connections
[18:22:46] [CLEANUP] Removed 0 video views
[18:22:46] [CLEANUP] Removed 0 feed scroll views
[18:22:46] [CLEANUP] Removed 0 status labels
[18:22:46] [CLEANUP] Reset agent query state
[18:22:46] [CLEANUP] Updated page indicator
[18:22:46] [CLEANUP] Rebuilt video layout
[18:22:46] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:46] [CLEANUP] ========================================
[18:22:46] [SERVER] Starting reconnect polling (5s interval)
[18:22:47] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:47] [WS] Opening session at ws://crivello.dyndns.org:8081/
[18:22:48] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:48] HELLO → sent (cached token, role=query)
[18:22:48] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[18:22:48] [WS] Query connection failed - cleaning up all agent connections and views
[18:22:48] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[18:22:48] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[18:22:48] [CLEANUP] ========================================
[18:22:48] [CLEANUP] Cleaning up all agent connections and views
[18:22:48] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:48] [CLEANUP] Stopped and removed 0 video connections
[18:22:48] [CLEANUP] Removed 0 video views
[18:22:48] [CLEANUP] Removed 0 feed scroll views
[18:22:48] [CLEANUP] Removed 0 status labels
[18:22:48] [CLEANUP] Reset agent query state
[18:22:48] [CLEANUP] Updated page indicator
[18:22:48] [CLEANUP] Rebuilt video layout
[18:22:48] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:48] [CLEANUP] ========================================
[18:22:48] [SERVER] Starting reconnect polling (5s interval)
[18:22:48] [CLEANUP] ========================================
[18:22:48] [CLEANUP] Cleaning up all agent connections and views
[18:22:48] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:48] [CLEANUP] Stopped and removed 0 video connections
[18:22:48] [CLEANUP] Removed 0 video views
[18:22:48] [CLEANUP] Removed 0 feed scroll views
[18:22:48] [CLEANUP] Removed 0 status labels
[18:22:48] [CLEANUP] Reset agent query state
[18:22:48] [CLEANUP] Updated page indicator
[18:22:48] [CLEANUP] Rebuilt video layout
[18:22:48] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:48] [CLEANUP] ========================================
[18:22:48] [SERVER] Starting reconnect polling (5s interval)
[18:22:49] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:49] [WS] Opening session at ws://crivello.dyndns.org:8081/
[18:22:49] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:49] HELLO → sent (cached token, role=query)
[18:22:49] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[18:22:49] [WS] Query connection failed - cleaning up all agent connections and views
[18:22:49] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[18:22:49] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[18:22:49] [CLEANUP] ========================================
[18:22:49] [CLEANUP] Cleaning up all agent connections and views
[18:22:49] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:49] [CLEANUP] Stopped and removed 0 video connections
[18:22:49] [CLEANUP] Removed 0 video views
[18:22:49] [CLEANUP] Removed 0 feed scroll views
[18:22:49] [CLEANUP] Removed 0 status labels
[18:22:49] [CLEANUP] Reset agent query state
[18:22:49] [CLEANUP] Updated page indicator
[18:22:49] [CLEANUP] Rebuilt video layout
[18:22:49] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:49] [CLEANUP] ========================================
[18:22:49] [SERVER] Starting reconnect polling (5s interval)
[18:22:49] [CLEANUP] ========================================
[18:22:49] [CLEANUP] Cleaning up all agent connections and views
[18:22:49] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:49] [CLEANUP] Stopped and removed 0 video connections
[18:22:49] [CLEANUP] Removed 0 video views
[18:22:49] [CLEANUP] Removed 0 feed scroll views
[18:22:49] [CLEANUP] Removed 0 status labels
[18:22:49] [CLEANUP] Reset agent query state
[18:22:49] [CLEANUP] Updated page indicator
[18:22:49] [CLEANUP] Rebuilt video layout
[18:22:49] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:49] [CLEANUP] ========================================
[18:22:49] [SERVER] Starting reconnect polling (5s interval)
[18:22:51] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:51] [WS] Opening session at ws://crivello.dyndns.org:8081/
[18:22:51] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:51] HELLO → sent (cached token, role=query)
[18:22:51] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[18:22:51] [WS] Query connection failed - cleaning up all agent connections and views
[18:22:51] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[18:22:51] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[18:22:51] [CLEANUP] ========================================
[18:22:51] [CLEANUP] Cleaning up all agent connections and views
[18:22:51] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:51] [CLEANUP] Stopped and removed 0 video connections
[18:22:51] [CLEANUP] Removed 0 video views
[18:22:51] [CLEANUP] Removed 0 feed scroll views
[18:22:51] [CLEANUP] Removed 0 status labels
[18:22:51] [CLEANUP] Reset agent query state
[18:22:51] [CLEANUP] Updated page indicator
[18:22:51] [CLEANUP] Rebuilt video layout
[18:22:51] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:51] [CLEANUP] ========================================
[18:22:51] [SERVER] Starting reconnect polling (5s interval)
[18:22:51] [CLEANUP] ========================================
[18:22:51] [CLEANUP] Cleaning up all agent connections and views
[18:22:51] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:51] [CLEANUP] Stopped and removed 0 video connections
[18:22:51] [CLEANUP] Removed 0 video views
[18:22:51] [CLEANUP] Removed 0 feed scroll views
[18:22:51] [CLEANUP] Removed 0 status labels
[18:22:51] [CLEANUP] Reset agent query state
[18:22:51] [CLEANUP] Updated page indicator
[18:22:51] [CLEANUP] Rebuilt video layout
[18:22:51] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:51] [CLEANUP] ========================================
[18:22:51] [SERVER] Starting reconnect polling (5s interval)
[18:22:53] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:53] [WS] Opening session at ws://crivello.dyndns.org:8081/
[18:22:53] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:53] HELLO → sent (cached token, role=query)
[18:22:53] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[18:22:53] [WS] Query connection failed - cleaning up all agent connections and views
[18:22:53] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[18:22:53] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[18:22:53] [CLEANUP] ========================================
[18:22:53] [CLEANUP] Cleaning up all agent connections and views
[18:22:53] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:53] [CLEANUP] Stopped and removed 0 video connections
[18:22:53] [CLEANUP] Removed 0 video views
[18:22:53] [CLEANUP] Removed 0 feed scroll views
[18:22:53] [CLEANUP] Removed 0 status labels
[18:22:53] [CLEANUP] Reset agent query state
[18:22:53] [CLEANUP] Updated page indicator
[18:22:53] [CLEANUP] Rebuilt video layout
[18:22:53] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:53] [CLEANUP] ========================================
[18:22:53] [SERVER] Starting reconnect polling (5s interval)
[18:22:53] [CLEANUP] ========================================
[18:22:53] [CLEANUP] Cleaning up all agent connections and views
[18:22:53] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:53] [CLEANUP] Stopped and removed 0 video connections
[18:22:53] [CLEANUP] Removed 0 video views
[18:22:53] [CLEANUP] Removed 0 feed scroll views
[18:22:53] [CLEANUP] Removed 0 status labels
[18:22:53] [CLEANUP] Reset agent query state
[18:22:53] [CLEANUP] Updated page indicator
[18:22:53] [CLEANUP] Rebuilt video layout
[18:22:53] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:53] [CLEANUP] ========================================
[18:22:53] [SERVER] Starting reconnect polling (5s interval)
[18:22:53] [REPLY_DEBUG] 📤 didTapSend - Sending message WITHOUT reply
[18:22:53] [SEND_MESSAGE] 📤 Sending message, currentMsgCount=50, isReloading=false
[18:22:53] [SEND_MESSAGE] ✅ Added optimistic message id=-10 to arrays, newMsgCount=51
[18:22:53] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=51, first5Ids=[-10, 18310, 18309, 18308, 18307]
[18:22:53] [CELL_UPLOAD] configure: msgId=18306, file=8c29dab4be6eb199.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[18:22:53] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[18:22:53] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8c29dab4be6eb199.jpg, overlayExists=true
[18:22:53] [REPLY_DEBUG] ❌ cancelReply called - clearing messageToReplyTo
[18:22:53] [REPLY_DEBUG] ⚠️ sendMessage HTTP BODY - No reply message captured
[18:22:55] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:55] [WS] Opening session at ws://crivello.dyndns.org:8081/
[18:22:55] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:55] HELLO → sent (cached token, role=query)
[18:22:55] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[18:22:55] [WS] Query connection failed - cleaning up all agent connections and views
[18:22:55] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[18:22:55] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[18:22:55] [CLEANUP] ========================================
[18:22:55] [CLEANUP] Cleaning up all agent connections and views
[18:22:55] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:55] [CLEANUP] Stopped and removed 0 video connections
[18:22:55] [CLEANUP] Removed 0 video views
[18:22:55] [CLEANUP] Removed 0 feed scroll views
[18:22:55] [CLEANUP] Removed 0 status labels
[18:22:55] [CLEANUP] Reset agent query state
[18:22:55] [CLEANUP] Updated page indicator
[18:22:55] [CLEANUP] Rebuilt video layout
[18:22:55] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:55] [CLEANUP] ========================================
[18:22:55] [SERVER] Starting reconnect polling (5s interval)
[18:22:55] [CLEANUP] ========================================
[18:22:55] [CLEANUP] Cleaning up all agent connections and views
[18:22:55] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:55] [CLEANUP] Stopped and removed 0 video connections
[18:22:55] [CLEANUP] Removed 0 video views
[18:22:55] [CLEANUP] Removed 0 feed scroll views
[18:22:55] [CLEANUP] Removed 0 status labels
[18:22:55] [CLEANUP] Reset agent query state
[18:22:55] [CLEANUP] Updated page indicator
[18:22:55] [CLEANUP] Rebuilt video layout
[18:22:55] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:55] [CLEANUP] ========================================
[18:22:55] [SERVER] Starting reconnect polling (5s interval)
[18:22:55] [MENU] dismissAnyExistingMenu called
[18:22:55] [MENU] dismissAnyExistingMenu completed
[18:22:55] [CLIENT_SIG] Event received: type=0 messageId=18311
[18:22:55] [CHAT] receive_message.php HTTP 200: {"ok":true,"message_id":18311,"session_id":"ILUIWU","message_type":0,"file_name":"","datesent_utc":"2026-01-20 17:22:53"}
[18:22:55] [WS_EVENT] Received event: type=0, messageId=18311
[18:22:55] [WS_EVENT] 📨 New message notification (msgId=18311) - triggering incremental refresh, currentMsgCount=51
[18:22:55] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=51
[18:22:55] [CHAT] receive_message.php JSON: ["ok": 1, "session_id": ILUIWU, "datesent_utc": 2026-01-20 17:22:53, "message_id": 18311, "file_name": , "message_type": 0]
[18:22:55] [DB_UPGRADE] Upgrading message ID: -10 → 18311, preserveOriginalDate=false
[18:22:55] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 18310
[18:22:55] [DB_UPGRADE] ✅ Upgraded -10 → 18311 with send_status=0, 1 row(s) affected
[18:22:55] [SEND_UPGRADE] ✅ Updated chatMessages[0].id: -10 → 18311
[18:22:55] [SEND_UPGRADE] ✅ Updated allMessagesWithReadBy[0].id: -10 → 18311
[18:22:55] ReloadData 9
[18:22:55] [INCREMENTAL_SYNC] ✅ Found 1 new messages
[18:22:55] [CELL_UPLOAD] configure: msgId=18306, file=8c29dab4be6eb199.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[18:22:55] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[18:22:55] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8c29dab4be6eb199.jpg, overlayExists=true
[18:22:55] [BLACKOUT_DEBUG] blackoutView=nil, newMessages.count=1
[18:22:55] [WS_EVENT] ✅ Incremental refresh complete, newMsgCount=51
[18:22:56] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=51, first5Ids=[18261, 18262, 18263, 18264, 18265]
[18:22:56] [CELL_UPLOAD] configure: msgId=18306, file=8c29dab4be6eb199.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[18:22:56] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[18:22:56] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8c29dab4be6eb199.jpg, overlayExists=true
[18:22:56] [MENU] dismissAnyExistingMenu called
[18:22:56] [MENU] dismissAnyExistingMenu completed
[18:22:57] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:57] [WS] Opening session at ws://crivello.dyndns.org:8081/
[18:22:57] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:57] HELLO → sent (cached token, role=query)
[18:22:57] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[18:22:57] [WS] Query connection failed - cleaning up all agent connections and views
[18:22:57] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[18:22:57] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[18:22:57] [CLEANUP] ========================================
[18:22:57] [CLEANUP] Cleaning up all agent connections and views
[18:22:57] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:57] [CLEANUP] Stopped and removed 0 video connections
[18:22:57] [CLEANUP] Removed 0 video views
[18:22:57] [CLEANUP] Removed 0 feed scroll views
[18:22:57] [CLEANUP] Removed 0 status labels
[18:22:57] [CLEANUP] Reset agent query state
[18:22:57] [CLEANUP] Updated page indicator
[18:22:57] [CLEANUP] Rebuilt video layout
[18:22:57] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:57] [CLEANUP] ========================================
[18:22:57] [SERVER] Starting reconnect polling (5s interval)
[18:22:57] [CLEANUP] ========================================
[18:22:57] [CLEANUP] Cleaning up all agent connections and views
[18:22:57] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:57] [CLEANUP] Stopped and removed 0 video connections
[18:22:57] [CLEANUP] Removed 0 video views
[18:22:57] [CLEANUP] Removed 0 feed scroll views
[18:22:57] [CLEANUP] Removed 0 status labels
[18:22:57] [CLEANUP] Reset agent query state
[18:22:57] [CLEANUP] Updated page indicator
[18:22:57] [CLEANUP] Rebuilt video layout
[18:22:57] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:57] [CLEANUP] ========================================
[18:22:57] [SERVER] Starting reconnect polling (5s interval)
[18:22:57] [SCROLL_BTN] Showing button - 381pt from bottom > half 379pt
[18:22:58] [MENU] dismissAnyExistingMenu called
[18:22:58] [MENU] dismissAnyExistingMenu completed
[18:22:58] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:58] [WS] Opening session at ws://crivello.dyndns.org:8081/
[18:22:59] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[18:22:59] HELLO → sent (cached token, role=query)
[18:22:59] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[18:22:59] [WS] Query connection failed - cleaning up all agent connections and views
[18:22:59] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[18:22:59] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[18:22:59] [CLEANUP] ========================================
[18:22:59] [CLEANUP] Cleaning up all agent connections and views
[18:22:59] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:59] [CLEANUP] Stopped and removed 0 video connections
[18:22:59] [CLEANUP] Removed 0 video views
[18:22:59] [CLEANUP] Removed 0 feed scroll views
[18:22:59] [CLEANUP] Removed 0 status labels
[18:22:59] [CLEANUP] Reset agent query state
[18:22:59] [CLEANUP] Updated page indicator
[18:22:59] [CLEANUP] Rebuilt video layout
[18:22:59] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:59] [CLEANUP] ========================================
[18:22:59] [SERVER] Starting reconnect polling (5s interval)
[18:22:59] [CLEANUP] ========================================
[18:22:59] [CLEANUP] Cleaning up all agent connections and views
[18:22:59] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:22:59] [CLEANUP] Stopped and removed 0 video connections
[18:22:59] [CLEANUP] Removed 0 video views
[18:22:59] [CLEANUP] Removed 0 feed scroll views
[18:22:59] [CLEANUP] Removed 0 status labels
[18:22:59] [CLEANUP] Reset agent query state
[18:22:59] [CLEANUP] Updated page indicator
[18:22:59] [CLEANUP] Rebuilt video layout
[18:22:59] [CLEANUP] ✅ All agent connections and views cleaned up
[18:22:59] [CLEANUP] ========================================
[18:22:59] [SERVER] Starting reconnect polling (5s interval)
[18:23:00] [MENU] dismissAnyExistingMenu called
[18:23:00] [MENU] dismissAnyExistingMenu completed
[18:23:00] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[18:23:00] [WS] Opening session at ws://crivello.dyndns.org:8081/
[18:23:01] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[18:23:01] HELLO → sent (cached token, role=query)
[18:23:01] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[18:23:01] [WS] Query connection failed - cleaning up all agent connections and views
[18:23:01] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[18:23:01] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[18:23:01] [CLEANUP] ========================================
[18:23:01] [CLEANUP] Cleaning up all agent connections and views
[18:23:01] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:23:01] [CLEANUP] Stopped and removed 0 video connections
[18:23:01] [CLEANUP] Removed 0 video views
[18:23:01] [CLEANUP] Removed 0 feed scroll views
[18:23:01] [CLEANUP] Removed 0 status labels
[18:23:01] [CLEANUP] Reset agent query state
[18:23:01] [CLEANUP] Updated page indicator
[18:23:01] [CLEANUP] Rebuilt video layout
[18:23:01] [CLEANUP] ✅ All agent connections and views cleaned up
[18:23:01] [CLEANUP] ========================================
[18:23:01] [SERVER] Starting reconnect polling (5s interval)
[18:23:01] [CLEANUP] ========================================
[18:23:01] [CLEANUP] Cleaning up all agent connections and views
[18:23:01] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:23:01] [CLEANUP] Stopped and removed 0 video connections
[18:23:01] [CLEANUP] Removed 0 video views
[18:23:01] [CLEANUP] Removed 0 feed scroll views
[18:23:01] [CLEANUP] Removed 0 status labels
[18:23:01] [CLEANUP] Reset agent query state
[18:23:01] [CLEANUP] Updated page indicator
[18:23:01] [CLEANUP] Rebuilt video layout
[18:23:01] [CLEANUP] ✅ All agent connections and views cleaned up
[18:23:01] [CLEANUP] ========================================
[18:23:01] [SERVER] Starting reconnect polling (5s interval)
[18:23:02] [SCROLL_BTN] Showing button - 388pt from bottom > half 379pt
[18:23:02] [CELL_UPLOAD] configure: msgId=18296, file=e27abe61119a26c3.mov, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[18:23:02] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[18:23:02] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=e27abe61119a26c3.mov, overlayExists=true
[18:23:02] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[18:23:02] [WS] Opening session at ws://crivello.dyndns.org:8081/
[18:23:02] [MENU] dismissAnyExistingMenu called
[18:23:02] [MENU] dismissAnyExistingMenu completed
[18:23:02] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[18:23:02] HELLO → sent (cached token, role=query)
[18:23:02] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[18:23:02] [WS] Query connection failed - cleaning up all agent connections and views
[18:23:02] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[18:23:02] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[18:23:02] [CLEANUP] ========================================
[18:23:02] [CLEANUP] Cleaning up all agent connections and views
[18:23:02] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:23:02] [CLEANUP] Stopped and removed 0 video connections
[18:23:02] [CLEANUP] Removed 0 video views
[18:23:02] [CLEANUP] Removed 0 feed scroll views
[18:23:02] [CLEANUP] Removed 0 status labels
[18:23:02] [CLEANUP] Reset agent query state
[18:23:02] [CLEANUP] Updated page indicator
[18:23:02] [CLEANUP] Rebuilt video layout
[18:23:02] [CLEANUP] ✅ All agent connections and views cleaned up
[18:23:02] [CLEANUP] ========================================
[18:23:02] [SERVER] Starting reconnect polling (5s interval)
[18:23:02] [CLEANUP] ========================================
[18:23:02] [CLEANUP] Cleaning up all agent connections and views
[18:23:02] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:23:02] [CLEANUP] Stopped and removed 0 video connections
[18:23:02] [CLEANUP] Removed 0 video views
[18:23:02] [CLEANUP] Removed 0 feed scroll views
[18:23:02] [CLEANUP] Removed 0 status labels
[18:23:02] [CLEANUP] Reset agent query state
[18:23:02] [CLEANUP] Updated page indicator
[18:23:02] [CLEANUP] Rebuilt video layout
[18:23:02] [CLEANUP] ✅ All agent connections and views cleaned up
[18:23:02] [CLEANUP] ========================================
[18:23:02] [SERVER] Starting reconnect polling (5s interval)
[18:23:04] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[18:23:04] [WS] Opening session at ws://crivello.dyndns.org:8081/
[18:23:04] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[18:23:04] HELLO → sent (cached token, role=query)
[18:23:04] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[18:23:04] [WS] Query connection failed - cleaning up all agent connections and views
[18:23:04] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[18:23:04] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[18:23:04] [CLEANUP] ========================================
[18:23:04] [CLEANUP] Cleaning up all agent connections and views
[18:23:04] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:23:04] [CLEANUP] Stopped and removed 0 video connections
[18:23:04] [CLEANUP] Removed 0 video views
[18:23:04] [CLEANUP] Removed 0 feed scroll views
[18:23:04] [CLEANUP] Removed 0 status labels
[18:23:04] [CLEANUP] Reset agent query state
[18:23:04] [CLEANUP] Updated page indicator
[18:23:04] [CLEANUP] Rebuilt video layout
[18:23:04] [CLEANUP] ✅ All agent connections and views cleaned up
[18:23:04] [CLEANUP] ========================================
[18:23:04] [SERVER] Starting reconnect polling (5s interval)
[18:23:04] [CLEANUP] ========================================
[18:23:04] [CLEANUP] Cleaning up all agent connections and views
[18:23:04] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:23:04] [CLEANUP] Stopped and removed 0 video connections
[18:23:04] [CLEANUP] Removed 0 video views
[18:23:04] [CLEANUP] Removed 0 feed scroll views
[18:23:04] [CLEANUP] Removed 0 status labels
[18:23:04] [CLEANUP] Reset agent query state
[18:23:04] [CLEANUP] Updated page indicator
[18:23:04] [CLEANUP] Rebuilt video layout
[18:23:04] [CLEANUP] ✅ All agent connections and views cleaned up
[18:23:04] [CLEANUP] ========================================
[18:23:04] [SERVER] Starting reconnect polling (5s interval)
[18:23:06] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[18:23:06] [WS] Opening session at ws://crivello.dyndns.org:8081/
[18:23:06] [LOG] Long press on chat icon detected! Triggering log upload...
[18:23:06] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[18:23:06] HELLO → sent (cached token, role=query)
[18:23:06] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[18:23:06] [WS] Query connection failed - cleaning up all agent connections and views
[18:23:06] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[18:23:06] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[18:23:06] [CLEANUP] ========================================
[18:23:06] [CLEANUP] Cleaning up all agent connections and views
[18:23:06] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:23:06] [CLEANUP] Stopped and removed 0 video connections
[18:23:06] [CLEANUP] Removed 0 video views
[18:23:06] [CLEANUP] Removed 0 feed scroll views
[18:23:06] [CLEANUP] Removed 0 status labels
[18:23:06] [CLEANUP] Reset agent query state
[18:23:06] [CLEANUP] Updated page indicator
[18:23:06] [CLEANUP] Rebuilt video layout
[18:23:06] [CLEANUP] ✅ All agent connections and views cleaned up
[18:23:06] [CLEANUP] ========================================
[18:23:06] [SERVER] Starting reconnect polling (5s interval)
[18:23:06] [CLEANUP] ========================================
[18:23:06] [CLEANUP] Cleaning up all agent connections and views
[18:23:06] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:23:06] [CLEANUP] Stopped and removed 0 video connections
[18:23:06] [CLEANUP] Removed 0 video views
[18:23:06] [CLEANUP] Removed 0 feed scroll views
[18:23:06] [CLEANUP] Removed 0 status labels
[18:23:06] [CLEANUP] Reset agent query state
[18:23:06] [CLEANUP] Updated page indicator
[18:23:06] [CLEANUP] Rebuilt video layout
[18:23:06] [CLEANUP] ✅ All agent connections and views cleaned up
[18:23:06] [CLEANUP] ========================================
[18:23:06] [SERVER] Starting reconnect polling (5s interval)
[18:23:06] [CELL_UPLOAD] configure: msgId=18306, file=8c29dab4be6eb199.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0
[18:23:06] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete
[18:23:06] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8c29dab4be6eb199.jpg, overlayExists=true
[18:23:08] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[18:23:08] [WS] Opening session at ws://crivello.dyndns.org:8081/
[18:23:08] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[18:23:08] HELLO → sent (cached token, role=query)
[18:23:08] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[18:23:08] [WS] Query connection failed - cleaning up all agent connections and views
[18:23:08] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[18:23:08] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[18:23:08] [CLEANUP] ========================================
[18:23:08] [CLEANUP] Cleaning up all agent connections and views
[18:23:08] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:23:08] [CLEANUP] Stopped and removed 0 video connections
[18:23:08] [CLEANUP] Removed 0 video views
[18:23:08] [CLEANUP] Removed 0 feed scroll views
[18:23:08] [CLEANUP] Removed 0 status labels
[18:23:08] [CLEANUP] Reset agent query state
[18:23:08] [CLEANUP] Updated page indicator
[18:23:08] [CLEANUP] Rebuilt video layout
[18:23:08] [CLEANUP] ✅ All agent connections and views cleaned up
[18:23:08] [CLEANUP] ========================================
[18:23:08] [SERVER] Starting reconnect polling (5s interval)
[18:23:08] [CLEANUP] ========================================
[18:23:08] [CLEANUP] Cleaning up all agent connections and views
[18:23:08] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:23:08] [CLEANUP] Stopped and removed 0 video connections
[18:23:08] [CLEANUP] Removed 0 video views
[18:23:08] [CLEANUP] Removed 0 feed scroll views
[18:23:08] [CLEANUP] Removed 0 status labels
[18:23:08] [CLEANUP] Reset agent query state
[18:23:08] [CLEANUP] Updated page indicator
[18:23:08] [CLEANUP] Rebuilt video layout
[18:23:08] [CLEANUP] ✅ All agent connections and views cleaned up
[18:23:08] [CLEANUP] ========================================
[18:23:08] [SERVER] Starting reconnect polling (5s interval)
[18:23:09] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[18:23:09] [WS] Opening session at ws://crivello.dyndns.org:8081/
[18:23:10] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[18:23:10] HELLO → sent (cached token, role=query)
[18:23:10] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[18:23:10] [WS] Query connection failed - cleaning up all agent connections and views
[18:23:10] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[18:23:10] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[18:23:10] [CLEANUP] ========================================
[18:23:10] [CLEANUP] Cleaning up all agent connections and views
[18:23:10] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:23:10] [CLEANUP] Stopped and removed 0 video connections
[18:23:10] [CLEANUP] Removed 0 video views
[18:23:10] [CLEANUP] Removed 0 feed scroll views
[18:23:10] [CLEANUP] Removed 0 status labels
[18:23:10] [CLEANUP] Reset agent query state
[18:23:10] [CLEANUP] Updated page indicator
[18:23:10] [CLEANUP] Rebuilt video layout
[18:23:10] [CLEANUP] ✅ All agent connections and views cleaned up
[18:23:10] [CLEANUP] ========================================
[18:23:10] [SERVER] Starting reconnect polling (5s interval)
[18:23:10] [CLEANUP] ========================================
[18:23:10] [CLEANUP] Cleaning up all agent connections and views
[18:23:10] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:23:10] [CLEANUP] Stopped and removed 0 video connections
[18:23:10] [CLEANUP] Removed 0 video views
[18:23:10] [CLEANUP] Removed 0 feed scroll views
[18:23:10] [CLEANUP] Removed 0 status labels
[18:23:10] [CLEANUP] Reset agent query state
[18:23:10] [CLEANUP] Updated page indicator
[18:23:10] [CLEANUP] Rebuilt video layout
[18:23:10] [CLEANUP] ✅ All agent connections and views cleaned up
[18:23:10] [CLEANUP] ========================================
[18:23:10] [SERVER] Starting reconnect polling (5s interval)
[18:23:11] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[18:23:11] [WS] Opening session at ws://crivello.dyndns.org:8081/
[18:23:12] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[18:23:12] HELLO → sent (cached token, role=query)
[18:23:12] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[18:23:12] [WS] Query connection failed - cleaning up all agent connections and views
[18:23:12] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[18:23:12] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[18:23:12] [CLEANUP] ========================================
[18:23:12] [CLEANUP] Cleaning up all agent connections and views
[18:23:12] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:23:12] [CLEANUP] Stopped and removed 0 video connections
[18:23:12] [CLEANUP] Removed 0 video views
[18:23:12] [CLEANUP] Removed 0 feed scroll views
[18:23:12] [CLEANUP] Removed 0 status labels
[18:23:12] [CLEANUP] Reset agent query state
[18:23:12] [CLEANUP] Updated page indicator
[18:23:12] [CLEANUP] Rebuilt video layout
[18:23:12] [CLEANUP] ✅ All agent connections and views cleaned up
[18:23:12] [CLEANUP] ========================================
[18:23:12] [SERVER] Starting reconnect polling (5s interval)
[18:23:12] [CLEANUP] ========================================
[18:23:12] [CLEANUP] Cleaning up all agent connections and views
[18:23:12] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:23:12] [CLEANUP] Stopped and removed 0 video connections
[18:23:12] [CLEANUP] Removed 0 video views
[18:23:12] [CLEANUP] Removed 0 feed scroll views
[18:23:12] [CLEANUP] Removed 0 status labels
[18:23:12] [CLEANUP] Reset agent query state
[18:23:12] [CLEANUP] Updated page indicator
[18:23:12] [CLEANUP] Rebuilt video layout
[18:23:12] [CLEANUP] ✅ All agent connections and views cleaned up
[18:23:12] [CLEANUP] ========================================
[18:23:12] [SERVER] Starting reconnect polling (5s interval)
[18:23:13] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU
[18:23:13] [WS] Opening session at ws://crivello.dyndns.org:8081/
[18:23:13] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[18:23:13] HELLO → sent (cached token, role=query)
[18:23:13] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected
[18:23:13] [WS] Query connection failed - cleaning up all agent connections and views
[18:23:13] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU, closeCode=1000
[18:23:13] [WS] Query connection to iosILUIWU closed - cleaning up all agent connections and views
[18:23:13] [CLEANUP] ========================================
[18:23:13] [CLEANUP] Cleaning up all agent connections and views
[18:23:13] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:23:13] [CLEANUP] Stopped and removed 0 video connections
[18:23:13] [CLEANUP] Removed 0 video views
[18:23:13] [CLEANUP] Removed 0 feed scroll views
[18:23:13] [CLEANUP] Removed 0 status labels
[18:23:13] [CLEANUP] Reset agent query state
[18:23:13] [CLEANUP] Updated page indicator
[18:23:13] [CLEANUP] Rebuilt video layout
[18:23:13] [CLEANUP] ✅ All agent connections and views cleaned up
[18:23:13] [CLEANUP] ========================================
[18:23:13] [SERVER] Starting reconnect polling (5s interval)
[18:23:13] [CLEANUP] ========================================
[18:23:13] [CLEANUP] Cleaning up all agent connections and views
[18:23:13] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0
[18:23:13] [CLEANUP] Stopped and removed 0 video connections
[18:23:13] [CLEANUP] Removed 0 video views
[18:23:13] [CLEANUP] Removed 0 feed scroll views
[18:23:13] [CLEANUP] Removed 0 status labels
[18:23:13] [CLEANUP] Reset agent query state
[18:23:13] [CLEANUP] Updated page indicator
[18:23:13] [CLEANUP] Rebuilt video layout
[18:23:13] [CLEANUP] ✅ All agent connections and views cleaned up
[18:23:13] [CLEANUP] ========================================
[18:23:13] [SERVER] Starting reconnect polling (5s interval)