=== Eye Viewer Log Cleared at 2025-12-08 12:17:26 +0000 ===
[15:17:26] [FONT] Roboto fonts loaded successfully: Roboto-Regular
[15:17:26] [FONT] ChatFont.regular(18) returns: Roboto-Regular, family: Roboto
[15:17:26] [GIPHY] SDK not available - using REST API fallback
[15:17:26] [BACKGROUND] Background fetch enabled
[15:17:26] [PRELOAD] ⚡ Starting message pre-load during authentication...
[15:17:26] [AUTH] Starting PIN authentication
[15:17:26] [CLIENT_SIG] Reconnecting on foreground for session: ILUIWU
[15:17:26] [CLIENT_SIG] Connecting to session ILUIWU as Esra (EDAD55A1-003F-415D-AA60-672B34B504FE)
[15:17:26] [LIFECYCLE] ViewController deallocated
[15:17:26] [PUSH] APNs token: ea74d1b23419aba9c7f42f122ceaac51082c3477711ef6cb1bbd1988f213ab7f
[15:17:26] [CLIENT_SIG] WebSocket opened
[15:17:26] [CLIENT_SIG] HELLO sent as client for session ILUIWU
[15:17:27] [CLIENT_SIG] Connected! clientId=mzadYcjdlXotUdhD
[15:17:27] [SECURITY] sceneDidBecomeActive - isAuthenticated=false, didEnterBackground=false
[15:17:27] [SECURITY] ⚠️ Skipping timeout check - conditions not met
[15:17:27] [PUSH_DEBUG] 🟢 App became ACTIVE - resetting badges and triggering pollEventsNow
[15:17:27] [CLIENT_SIG] Received 1 clients for session 'ILUIWU' (my session: 'ILUIWU')
[15:17:27] [CLIENT_SIG] - Esra (EDAD55A1-003F-415D-AA60-672B34B504FE)
[15:17:27] [PUSH] register_device.php HTTP 200: {"status":"ok","session_id":"ILUIWU","token":"ea74d1b23419aba9c7f42f122ceaac51082c3477711ef6cb1bbd1988f213ab7f","role":"viewer","muted":0,"removed_from_other_channels":0}
[15:17:28] [PRELOAD] Fetched 3151 messages
[15:17:28] [PIN_AUTH] Correct PIN
[15:17:28] [SECURITY] Restored real session: ILUIWU
[15:17:28] [SECURITY] Restored real session: ILUIWU
[15:17:28] [SECURITY] Saved real session: ILUIWU
[15:17:28] [SCENE] Launched directly to chat view with sessionId: ILUIWU
[15:17:28] [AUDIO] ✅ Chat mode - audio will be managed by WebRTCViewer (no microphone)
[15:17:28] Documents Directory: /var/mobile/Containers/Data/Application/73A51F1F-6C18-48C1-B23C-E07B9AFCC523/Documents
[15:17:28] [THEME] Applying current theme
[15:17:28] [CHAT] Applied day theme (mode: day)
[15:17:28] [SECURITY] Saved real session: ILUIWU
[15:17:28] [CLIENT_SIG] Setting up client signaling for session: ILUIWU
[15:17:28] [CLIENT_SIG] Already connected/connecting to session ILUIWU
[15:17:28] [SUMMARY] Already triggered summary today (2025-12-08)
[15:17:28] Did transition
[15:17:28] [MODE] 🔍 updateModeUI called - currentTabIndex=0, sessionId=ILUIWU
[15:17:28] [VIEWER] Screen lock enabled - normal idle behavior
[15:17:28] [QUERY] 🔍 Creating query connection for iOS slave: iosILUIWU
[15:17:28] [DATA AUDIO] ========== setupWebRTC() START ==========
[15:17:28] [DATA AUDIO] Using data channel for audio - bypassing WebRTC audio device
[15:17:28] [DATA AUDIO] Creating encoder/decoder factories...
[15:17:28] [CODEC] Viewer - Available video codecs: H264, H264, VP8, VP9, AV1
[15:17:28] [CODEC] Viewer selected encoder: AV1 (best quality)
[15:17:28] [DATA AUDIO] Creating RTCPeerConnectionFactory...
[15:17:28] [DATA AUDIO] ✅ Factory created
[15:17:28] [DATA AUDIO] RTCAudioSession locked
[15:17:28] [DATA AUDIO] Set useManualAudio=true, isAudioEnabled=false
[15:17:28] [DATA AUDIO] RTCAudioSession unlocked
[15:17:28] [DATA AUDIO] Setting AVAudioSession to .playback for data channel with mixWithOthers...
[15:17:28] [DATA AUDIO] ✅ AVAudioSession set to .playback with .mixWithOthers
[15:17:28] [WS] Creating new WebSocket - isQueryOnly=false, connectionStr=iosILUIWU
[15:17:28] [WS] Opening session at ws://crivello.dyndns.org:8081/
[15:17:28] [QUERY] ✅ tempQueryConnection created for iosILUIWU
[15:17:28] [VIEWER_INIT] Already have 50 messages - just filtering for tab
[15:17:28] [EMOJI] ✅ Loaded 451 emoji-to-GIF mappings
[15:17:28] [EVENT_POLL] Event polling disabled - using WebSocket events instead
[15:17:28] [ORIENTATION] Updated pagingScrollView height to 247.5 for width 440.0
[15:17:28] [SUMMARY] Already triggered summary today (2025-12-08)
[15:17:28] Did transition
[15:17:28] [USER] Registering user: EDAD55A1-003F-415D-AA60-672B34B504FE, name: Esra
[15:17:28] [CHUNK] Merged 379 reactions synchronously
[15:17:28] [PRELOAD] ⚡ Cached 3151 messages for instant display
[15:17:28] [GALLERY_DB] Loading ALL media messages for session: ILUIWU
[15:17:28] [MIGRATION] No messages need sender_name backfill
[15:17:28] [GALLERY_DB] Raw datesent for msg 4253: '2025-12-08 11:59:28'
[15:17:28] [GALLERY_DB] Raw datesent for msg 4227: '2025-12-08 08:35:52'
[15:17:28] [GALLERY_DB] Raw datesent for msg 4225: '2025-12-08 06:51:17'
[15:17:28] [GALLERY_DB] ✅ Loaded 205 media messages
[15:17:28] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 4253
[15:17:28] [GALLERY] Filtered 205 -> 188 (only with local thumbnails)
[15:17:28] [GALLERY] First 5 after sort (newest first):
[15:17:28] [GALLERY] 0: id=4253, date=2025-12-08 11:59:28, file=10dabda8d04dc725.jpg
[15:17:28] [GALLERY] 1: id=4227, date=2025-12-08 08:35:52, file=5abfa51ac84672ca.jpg
[15:17:28] [GALLERY] 2: id=4225, date=2025-12-08 06:51:17, file=a59f6ea5b913297d.jpg
[15:17:28] [GALLERY] 3: id=4187, date=2025-12-07 14:31:41, file=8e8e62ba6f7fd7ed.jpg
[15:17:28] [GALLERY] 4: id=4140, date=2025-12-07 13:49:09, file=9dca2c72076394b7.jpg
[15:17:28] [USER] ✅ User registered successfully
[15:17:28] [USER] User registration successful
[15:17:28] [CELL_UPLOAD] configure: msgId=4253, file=10dabda8d04dc725.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=EDAD55A1-003F-415D-AA60-672B34B504FE, isMyMessage=false, hasFilename=true, uploadStatus=0
[15:17:28] [CELL_UPLOAD] → not my message, setting complete
[15:17:28] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=10dabda8d04dc725.jpg, overlayExists=true
[15:17:28] [SERVER] Starting reconnect polling (5s interval)
[15:17:28] [ICONS] Screen width: 440.0, Tab spacing: 75.5
[15:17:28] [ICONS] Offset applied: -14.6
[15:17:28] [ICONS] New left margin: 11.2, New right margin: 11.3
[15:17:28] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU
[15:17:28] Trying API base: https://crivello.dyndns.org:443/WebRTC/public/
[15:17:28] Trying API base: https://crivello.dyndns.org:443/WebRTC/public/
[15:17:28] Token POST → https://crivello.dyndns.org:443/WebRTC/public/new_session.php?sid=iosILUIWU
[15:17:29] [ICONS] Chat center: (31.2, 87.0)
[15:17:29] [ICONS] Gallery center: (106.7, 87.0), deltaX: 75.5
[15:17:29] [ICONS] Camera center: (182.2, 87.0), deltaX: 75.5
[15:17:29] [ICONS] Settings center: (257.7, 87.0), deltaX: 75.5
[15:17:29] [ICONS] Lock centerX: 333.2, deltaX from Settings: 75.5
[15:17:29] [ICONS] Bell centerX: 408.7, deltaX from Lock: 75.5
[15:17:29] [ICONS] LEFT MARGIN (screen left to Chat left): 11.2
[15:17:29] [ICONS] RIGHT MARGIN (Bell right to screen right): 11.3
[15:17:29] [ICONS] Screen width: 440.0
[15:17:29] new_session POST ok: token len=157
[15:17:29] HELLO → sent (fetched token, role=query)
[15:17:29] [SIG] hello_ok received for query connection - ready to query agents
[15:17:29] [SIG] get_agents request sent for sessionId=ILUIWU
[15:17:29] [SIG] get_agents request sent for sessionId=iosILUIWU
[15:17:29] [SERVER] Stopped reconnect polling
[15:17:29] [INCREMENTAL_SYNC] ✅ No new messages
[15:17:29] [PURGE] ⚠️ Media cache purge DISABLED for debugging
[15:17:29] [UPLOAD_RECOVERY] Checking for missing uploads...
[15:17:29] [UPLOAD_RECOVERY] Checking 15 media files on server...
[15:17:29] [UPLOAD_QUEUE] Found 16 pending uploads to resume
[15:17:29] [SIG] agents_list received: []
[15:17:29] [SIG] agents_list received: []
[15:17:29] [UPLOAD_RECOVERY] ❌ Missing on server, local exists: 65b3c13d384997a5.mov
[15:17:29] [UPLOAD_RECOVERY] ❌ Missing on server, local exists: fb94b5fb89c4a48d.mov
[15:17:29] [UPLOAD_RECOVERY] 🔄 Re-uploading 2 missing files...
[15:17:29] [UPLOAD_QUEUE] Enqueued upload id=508 for 65b3c13d384997a5.mov
[15:17:29] [UPLOAD_DEBUG] ========== START UPLOAD ==========
[15:17:29] [UPLOAD_DEBUG] Item ID: 508
[15:17:29] [UPLOAD_DEBUG] Local URL: /var/mobile/Containers/Data/Application/73A51F1F-6C18-48C1-B23C-E07B9AFCC523/Documents/MediaCache/65b3c13d384997a5.mov
[15:17:29] [UPLOAD_DEBUG] Random filename: 65b3c13d384997a5.mov
[15:17:29] [UPLOAD_DEBUG] Session ID: ILUIWU
[15:17:29] [UPLOAD_DEBUG] API Base: https://crivello.dyndns.org:443/WebRTC/chat/
[15:17:29] [UPLOAD_DEBUG] Retry count: 0
[15:17:29] [UPLOAD_DEBUG] File exists: true
[15:17:29] [UPLOAD_STATUS] Updated status=2 for file: 65b3c13d384997a5.mov
[15:17:29] [UPLOAD_DEBUG] File size: 959895378 bytes (915.4 MB)
[15:17:29] [UPLOAD_DEBUG] Chunked threshold: 104857600 bytes (100 MB)
[15:17:29] [UPLOAD_DEBUG] → Using CHUNKED upload (file > threshold)
[15:17:29] [UPLOAD_DEBUG] --- startChunkedUpload ---
[15:17:29] [UPLOAD_DEBUG] Chunked upload URL: https://crivello.dyndns.org:443/WebRTC/chat/upload_chunked.php
[15:17:29] [UPLOAD_DEBUG] File size: 959895378 bytes (915.4 MB)
[15:17:29] [UPLOAD_DEBUG] Chunk size: 104857600 bytes (100 MB)
[15:17:29] [UPLOAD_DEBUG] Total chunks: 10
[15:17:29] [UPLOAD_DEBUG] Updated DB status to 'uploading_chunked'
[15:17:29] [UPLOAD_DEBUG] Starting chunk upload sequence from chunk 0...
[15:17:29] [UPLOAD_QUEUE] Enqueued upload id=509 for fb94b5fb89c4a48d.mov
[15:17:29] [UPLOAD_DEBUG] ========== START UPLOAD ==========
[15:17:29] [UPLOAD_DEBUG] Item ID: 509
[15:17:29] [UPLOAD_DEBUG] Local URL: /var/mobile/Containers/Data/Application/73A51F1F-6C18-48C1-B23C-E07B9AFCC523/Documents/MediaCache/fb94b5fb89c4a48d.mov
[15:17:29] [UPLOAD_DEBUG] Random filename: fb94b5fb89c4a48d.mov
[15:17:29] [UPLOAD_DEBUG] Session ID: ILUIWU
[15:17:29] [UPLOAD_DEBUG] API Base: https://crivello.dyndns.org:443/WebRTC/chat/
[15:17:29] [UPLOAD_DEBUG] Retry count: 0
[15:17:29] [UPLOAD_DEBUG] File exists: true
[15:17:29] [UPLOAD_STATUS] Updated status=2 for file: fb94b5fb89c4a48d.mov
[15:17:29] [UPLOAD_DEBUG] File size: 1267972117 bytes (1209.2 MB)
[15:17:29] [UPLOAD_DEBUG] Chunked threshold: 104857600 bytes (100 MB)
[15:17:29] [UPLOAD_DEBUG] → Using CHUNKED upload (file > threshold)
[15:17:29] [UPLOAD_DEBUG] --- startChunkedUpload ---
[15:17:29] [UPLOAD_DEBUG] Chunked upload URL: https://crivello.dyndns.org:443/WebRTC/chat/upload_chunked.php
[15:17:29] [UPLOAD_DEBUG] File size: 1267972117 bytes (1209.2 MB)
[15:17:29] [UPLOAD_DEBUG] Chunk size: 104857600 bytes (100 MB)
[15:17:29] [UPLOAD_DEBUG] Total chunks: 13
[15:17:29] [UPLOAD_DEBUG] Updated DB status to 'uploading_chunked'
[15:17:29] [UPLOAD_DEBUG] Starting chunk upload sequence from chunk 0...
[15:17:29] [UPLOAD_RECOVERY] ⏭️ Thumbnail already on server: t_65b3c13d384997a5.jpg
[15:17:29] [UPLOAD_RECOVERY] ⏭️ Thumbnail already on server: t_fb94b5fb89c4a48d.jpg
[15:17:30] [CHUNKED_RESUME] Saved chunk info: totalChunks=10, fileSize=959895378
[15:17:30] [CHUNKED_RESUME] Saved chunk info: totalChunks=13, fileSize=1267972117
[15:17:30] [COMBINED_FETCH] Loaded 3151 read receipts, 378 messages with reactions
[15:17:30] [READBY_ENRICH] Enriched 45 messages with readBy data
[15:17:30] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=10dabda8d04dc725.jpg, overlayExists=true
[15:17:30] [CELL_UPLOAD] configure: msgId=4253, file=10dabda8d04dc725.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=EDAD55A1-003F-415D-AA60-672B34B504FE, isMyMessage=false, hasFilename=true, uploadStatus=0
[15:17:30] [CELL_UPLOAD] → not my message, setting complete
[15:17:30] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=10dabda8d04dc725.jpg, overlayExists=true