2025-10-01T09:13:35.369246118Z [migrations] started 2025-10-01T09:13:35.369316970Z [migrations] no migrations found 2025-10-01T09:13:35.395728378Z usermod: no changes 2025-10-01T09:13:35.404228563Z ─────────────────────────────────────── 2025-10-01T09:13:35.404251609Z 2025-10-01T09:13:35.404257171Z ██╗ ███████╗██╗ ██████╗ 2025-10-01T09:13:35.404261570Z ██║ ██╔════╝██║██╔═══██╗ 2025-10-01T09:13:35.404265618Z ██║ ███████╗██║██║ ██║ 2025-10-01T09:13:35.404269305Z ██║ ╚════██║██║██║ ██║ 2025-10-01T09:13:35.404272983Z ███████╗███████║██║╚██████╔╝ 2025-10-01T09:13:35.404276760Z ╚══════╝╚══════╝╚═╝ ╚═════╝ 2025-10-01T09:13:35.404280748Z 2025-10-01T09:13:35.404284606Z Brought to you by linuxserver.io 2025-10-01T09:13:35.404288624Z ─────────────────────────────────────── 2025-10-01T09:13:35.404490821Z 2025-10-01T09:13:35.404499949Z To support LSIO projects visit: 2025-10-01T09:13:35.404504048Z https://www.linuxserver.io/donate/ 2025-10-01T09:13:35.404507885Z 2025-10-01T09:13:35.404511633Z ─────────────────────────────────────── 2025-10-01T09:13:35.404516272Z GID/UID 2025-10-01T09:13:35.404520040Z ─────────────────────────────────────── 2025-10-01T09:13:35.410008771Z 2025-10-01T09:13:35.410017689Z User UID: 911 2025-10-01T09:13:35.410021487Z User GID: 911 2025-10-01T09:13:35.410025224Z ─────────────────────────────────────── 2025-10-01T09:13:35.411759205Z Linuxserver.io version: 143.0.3-1-ls94 2025-10-01T09:13:35.414074908Z Build-date: 2025-10-01T09:05:18+00:00 2025-10-01T09:13:35.414085770Z ─────────────────────────────────────── 2025-10-01T09:13:35.414090169Z 2025-10-01T09:13:35.463576146Z ....+++++++++++++++++++++++++++++++++++++++*.+...........+......+...+..........+......+....................+....+...+..+.+..............+...+...+.+.....+.+.........+...+......+.........+..+...............+...+++++++++++++++++++++++++++++++++++++++*.............+....................+..........+.....+.+.....+....+.....+.+.....+......+.............+...+..+...+.............+..+..........++++++ 2025-10-01T09:13:35.490838337Z ........+..........+......+...+..+............+......+.+......+...+..+...+.......+..+...+.......+........+++++++++++++++++++++++++++++++++++++++*....+++++++++++++++++++++++++++++++++++++++*.......+.+......+.....+.......+.....+......+....+.................+....+..+.............+.....+.+...+...+..+...+...+.+.......................+.+......+...+.................+.+.....+...+......+...+...+.......+.....+.+......+.........+......+......+...+............+...+..+...+.........+.......+......+..............+...+............+..........+...+........+.......+...+..............+.+.......................+.+...+..+.+.....+.......+......++++++ 2025-10-01T09:13:35.494293374Z ----- 2025-10-01T09:13:35.624829281Z [custom-init] No custom files found, skipping... 2025-10-01T09:13:35.642564369Z xsettingsd: Loaded 1 setting from /config/.xsettingsd 2025-10-01T09:13:35.642930246Z xsettingsd: Unable to open connection to X server 2025-10-01T09:13:35.644270895Z _XSERVTransmkdir: ERROR: euid != 0,directory /tmp/.X11-unix will not be created. 2025-10-01T09:13:35.644288811Z [ls.io-init] done. 2025-10-01T09:13:35.644763026Z screen 0 shmid 0 2025-10-01T09:13:36.154677281Z 17 2025-10-01T09:13:36.170203562Z 18 2025-10-01T09:13:36.314913649Z INFO:data_websocket:pcmflux library found. Audio capture is available. 2025-10-01T09:13:36.346549546Z INFO:data_websocket:pixelflux library found. Striped encoding modes available. 2025-10-01T09:13:36.396113380Z INFO:root:Expected C js_config_t size (from ctypes): 1354 bytes 2025-10-01T09:13:36.452756858Z INFO:main:Upload directory ensured: /config/Desktop 2025-10-01T09:13:36.453212586Z INFO:main:Starting Selkies (WebSocket Mode) with settings: {'audio_enabled': (True, False), 'microphone_enabled': (True, False), 'gamepad_enabled': (True, False), 'clipboard_enabled': (True, False), 'command_enabled': (True, False), 'file_transfers': ['upload', 'download'], 'encoder': 'x264enc', 'framerate': (8, 120), 'h264_crf': (5, 50), 'jpeg_quality': (1, 100), 'h264_fullcolor': (False, False), 'h264_streaming_mode': (False, False), 'use_cpu': (False, False), 'use_paint_over_quality': (True, False), 'paint_over_jpeg_quality': (1, 100), 'h264_paintover_crf': (5, 50), 'h264_paintover_burst_frames': (1, 30), 'second_screen': (True, False), 'audio_bitrate': '320000', 'is_manual_resolution_mode': (False, False), 'manual_width': 0, 'manual_height': 0, 'scaling_dpi': '96', 'enable_binary_clipboard': (False, False), 'use_browser_cursors': (False, False), 'use_css_scaling': (False, False), 'ui_title': 'Selkies', 'ui_show_logo': (True, False), 'ui_show_core_buttons': (True, False), 'ui_show_sidebar': (True, False), 'ui_sidebar_show_video_settings': (True, False), 'ui_sidebar_show_screen_settings': (True, False), 'ui_sidebar_show_audio_settings': (True, False), 'ui_sidebar_show_stats': (True, False), 'ui_sidebar_show_clipboard': (True, False), 'ui_sidebar_show_files': (True, False), 'ui_sidebar_show_apps': (True, False), 'ui_sidebar_show_sharing': (True, False), 'ui_sidebar_show_gamepads': (True, False), 'ui_sidebar_show_fullscreen': (True, False), 'ui_sidebar_show_gaming_mode': (True, False), 'ui_sidebar_show_trackpad': (True, False), 'ui_sidebar_show_keyboard_button': (True, False), 'ui_sidebar_show_soft_buttons': (True, False), 'port': 8082, 'dri_node': '', 'audio_device_name': 'output.monitor', 'watermark_path': '', 'watermark_location': -1, 'debug': (False, False), 'enable_sharing': (True, False), 'enable_collab': (True, False), 'enable_shared': (True, False), 'enable_player2': (True, False), 'enable_player3': (True, False), 'enable_player4': (True, False)} 2025-10-01T09:13:36.453284120Z INFO:main:Initial Encoder: x264enc, Framerate: 60 2025-10-01T09:13:36.453295914Z INFO:main:SelkiesStreamingApp initialized: encoder=x264enc, display=1024x768 2025-10-01T09:13:36.453305944Z INFO:main:All main components initialized. Running server... 2025-10-01T09:13:36.456056692Z INFO:webrtc_input:System DPI detected as ~96. Cursor size cap set to 32x32px. 2025-10-01T09:13:36.458415472Z INFO:webrtc_input:Resetting keyboard modifiers. 2025-10-01T09:13:36.459605388Z INFO:webrtc_input:Clipboard monitor running (binary mode: False) 2025-10-01T09:13:36.460412162Z INFO:webrtc_input:Found XFIXES version 4.0 2025-10-01T09:13:36.460429768Z INFO:webrtc_input:starting cursor monitor 2025-10-01T09:13:36.460438515Z INFO:webrtc_input:watching for cursor changes 2025-10-01T09:13:36.467379600Z WARNING:data_websocket:Cannot broadcast cursor data: no clients connected or server not ready. 2025-10-01T09:13:36.467878796Z INFO:data_websocket:Data WebSocket Server listening on port 8082 2025-10-01T09:13:36.596649569Z INFO:webrtc_input:Initializing 4 persistent gamepad instances... 2025-10-01T09:13:36.597005846Z INFO:root:Packed js_config payload for 'Microsoft X-Box 360 pad' (js0): len=1360 bytes. Name='Microsoft X-Box 360 pad', Vendor=0x045e, Product=0x028e, Version=0x0100, Reported Buttons=11 (Array capacity: 512), Reported Axes=8 (Array capacity: 64) 2025-10-01T09:13:36.597043312Z INFO:selkies_gamepad:Gamepad configured. JS socket: /tmp/selkies_js0.sock, EVDEV socket: /tmp/selkies_event1000.sock. Using fixed config: Microsoft X-Box 360 pad 2025-10-01T09:13:36.597057089Z INFO:webrtc_input:Initialized and started persistent gamepad instance for index 0 (Name: 'Microsoft X-Box 360 pad', JS: /tmp/selkies_js0.sock, EVDEV: /tmp/selkies_event1000.sock). 2025-10-01T09:13:36.597113733Z INFO:root:Packed js_config payload for 'Microsoft X-Box 360 pad' (js1): len=1360 bytes. Name='Microsoft X-Box 360 pad', Vendor=0x045e, Product=0x028e, Version=0x0100, Reported Buttons=11 (Array capacity: 512), Reported Axes=8 (Array capacity: 64) 2025-10-01T09:13:36.597125417Z INFO:selkies_gamepad:Gamepad configured. JS socket: /tmp/selkies_js1.sock, EVDEV socket: /tmp/selkies_event1001.sock. Using fixed config: Microsoft X-Box 360 pad 2025-10-01T09:13:36.597135227Z INFO:webrtc_input:Initialized and started persistent gamepad instance for index 1 (Name: 'Microsoft X-Box 360 pad', JS: /tmp/selkies_js1.sock, EVDEV: /tmp/selkies_event1001.sock). 2025-10-01T09:13:36.597202683Z INFO:root:Packed js_config payload for 'Microsoft X-Box 360 pad' (js2): len=1360 bytes. Name='Microsoft X-Box 360 pad', Vendor=0x045e, Product=0x028e, Version=0x0100, Reported Buttons=11 (Array capacity: 512), Reported Axes=8 (Array capacity: 64) 2025-10-01T09:13:36.597227032Z INFO:selkies_gamepad:Gamepad configured. JS socket: /tmp/selkies_js2.sock, EVDEV socket: /tmp/selkies_event1002.sock. Using fixed config: Microsoft X-Box 360 pad 2025-10-01T09:13:36.597238294Z INFO:webrtc_input:Initialized and started persistent gamepad instance for index 2 (Name: 'Microsoft X-Box 360 pad', JS: /tmp/selkies_js2.sock, EVDEV: /tmp/selkies_event1002.sock). 2025-10-01T09:13:36.597282022Z INFO:root:Packed js_config payload for 'Microsoft X-Box 360 pad' (js3): len=1360 bytes. Name='Microsoft X-Box 360 pad', Vendor=0x045e, Product=0x028e, Version=0x0100, Reported Buttons=11 (Array capacity: 512), Reported Axes=8 (Array capacity: 64) 2025-10-01T09:13:36.597321422Z INFO:selkies_gamepad:Gamepad configured. JS socket: /tmp/selkies_js3.sock, EVDEV socket: /tmp/selkies_event1003.sock. Using fixed config: Microsoft X-Box 360 pad 2025-10-01T09:13:36.597331021Z INFO:webrtc_input:Initialized and started persistent gamepad instance for index 3 (Name: 'Microsoft X-Box 360 pad', JS: /tmp/selkies_js3.sock, EVDEV: /tmp/selkies_event1003.sock). 2025-10-01T09:13:36.597770836Z INFO:selkies_gamepad:Gamepad /tmp/selkies_js0.sock: Event processor started. 2025-10-01T09:13:36.597797210Z INFO:selkies_gamepad:JS interposer server listening on /tmp/selkies_js0.sock 2025-10-01T09:13:36.597917281Z INFO:selkies_gamepad:Gamepad /tmp/selkies_js1.sock: Event processor started. 2025-10-01T09:13:36.597932151Z INFO:selkies_gamepad:JS interposer server listening on /tmp/selkies_js1.sock 2025-10-01T09:13:36.598058526Z INFO:selkies_gamepad:Gamepad /tmp/selkies_js2.sock: Event processor started. 2025-10-01T09:13:36.598089919Z INFO:selkies_gamepad:JS interposer server listening on /tmp/selkies_js2.sock 2025-10-01T09:13:36.598172305Z INFO:selkies_gamepad:Gamepad /tmp/selkies_js3.sock: Event processor started. 2025-10-01T09:13:36.598183938Z INFO:selkies_gamepad:JS interposer server listening on /tmp/selkies_js3.sock 2025-10-01T09:13:36.598322407Z INFO:selkies_gamepad:EVDEV interposer server listening on /tmp/selkies_event1000.sock 2025-10-01T09:13:36.598338239Z INFO:selkies_gamepad:EVDEV interposer server listening on /tmp/selkies_event1001.sock 2025-10-01T09:13:36.598359311Z INFO:selkies_gamepad:EVDEV interposer server listening on /tmp/selkies_event1002.sock 2025-10-01T09:13:36.598386175Z INFO:selkies_gamepad:EVDEV interposer server listening on /tmp/selkies_event1003.sock 2025-10-01T09:13:36.658291211Z xsettingsd: Loaded 1 setting from /config/.xsettingsd 2025-10-01T09:13:36.659006401Z xsettingsd: Created window 0x1200001 on screen 0 with timestamp 1216568755 2025-10-01T09:13:36.659055840Z xsettingsd: Selection _XSETTINGS_S0 is owned by 0x0 2025-10-01T09:13:36.659065279Z xsettingsd: Took ownership of selection _XSETTINGS_S0 2025-10-01T09:13:37.135059198Z dbus-daemon[238]: [system] Activating service name='org.freedesktop.login1' requested by ':1.15' (uid=911 pid=410 comm="librewolf") (using servicehelper) 2025-10-01T09:13:37.135611880Z dbus-daemon[238]: [system] Activating service name='org.freedesktop.timedate1' requested by ':1.15' (uid=911 pid=410 comm="librewolf") (using servicehelper) 2025-10-01T09:13:37.137700726Z dbus-daemon[238]: [system] Activated service 'org.freedesktop.timedate1' failed: Failed to execute program org.freedesktop.timedate1: Permission denied 2025-10-01T09:13:38.133406146Z WARNING:data_websocket:Cannot broadcast cursor data: no clients connected or server not ready. 2025-10-01T09:15:11.510712776Z INFO:data_websocket:Data WebSocket connected from ('127.0.0.1', 53822) 2025-10-01T09:15:11.510767186Z INFO:data_websocket:Sending last known cursor to new client ('127.0.0.1', 53822) 2025-10-01T09:15:11.511513819Z INFO:data_websocket:Attempting to establish PulseAudio connection... 2025-10-01T09:15:11.513136757Z INFO:data_websocket:PulseAudio connection established. 2025-10-01T09:15:11.527908017Z INFO:data_websocket:Registering new client for display: primary 2025-10-01T09:15:11.527919971Z INFO:data_websocket:Applying and sanitizing client settings for 'primary' (initial=True) 2025-10-01T09:15:11.528017408Z INFO:data_websocket:DPI changed from None to 96. Applying system-level change. 2025-10-01T09:15:11.528620362Z INFO:gst_app_resize:Openbox detected. Applying xrdb for DPI 96. 2025-10-01T09:15:11.529251893Z INFO:gst_app_resize:Wrote 'Xft.dpi: 96' to /config/.Xresources. 2025-10-01T09:15:11.557346801Z INFO:gst_app_resize:Successfully loaded /config/.Xresources using xrdb. 2025-10-01T09:15:11.557496162Z INFO:gst_app_resize:Wrote font and DPI settings to /config/.xsettingsd. 2025-10-01T09:15:11.576014788Z INFO:gst_app_resize:Found xsettingsd process with PID: 400. 2025-10-01T09:15:11.577979103Z xsettingsd: Reloading configuration 2025-10-01T09:15:11.578045527Z xsettingsd: Loaded 5 settings from /config/.xsettingsd 2025-10-01T09:15:11.578418718Z INFO:gst_app_resize:Sent SIGHUP to xsettingsd process 400 to reload config. 2025-10-01T09:15:11.598741437Z WARNING:data_websocket:Pipeline is inactive for the initial client. Forcing a start. 2025-10-01T09:15:11.598757890Z INFO:data_websocket:Client settings for 'primary' or resolution changed, triggering full display reconfiguration. 2025-10-01T09:15:11.598867190Z INFO:data_websocket:Calculating new extended desktop layout from ALL clients... 2025-10-01T09:15:11.598885938Z INFO:data_websocket:Layout calculated: Total Size=1920x992. Layouts: {'primary': {'x': 0, 'y': 0, 'w': 1920, 'h': 992}} 2025-10-01T09:15:11.610583881Z INFO:data_websocket:Mode 1920x992 not found. Creating it. 2025-10-01T09:15:11.623890874Z INFO:data_websocket:Defining logical monitors for the window manager... 2025-10-01T09:15:11.635935044Z INFO:data_websocket:Starting separate capture instances for each ACTIVE display region... 2025-10-01T09:15:11.635984003Z INFO:data_websocket:Client 'primary' is active. Starting its capture. 2025-10-01T09:15:11.635996498Z INFO:data_websocket:Preparing to start capture for display='primary': Res=1920x992, Offset=0x0 2025-10-01T09:15:11.637778766Z INFO:data_websocket:Video chunk sender started for display 'primary'. 2025-10-01T09:15:11.638206638Z INFO:data_websocket:SUCCESS: Capture started for 'primary'. 2025-10-01T09:15:11.638223462Z INFO:data_websocket:New frame backpressure task started for display 'primary'. 2025-10-01T09:15:11.638253322Z INFO:data_websocket:Broadcasting primary stream resolution to all clients: {"type": "stream_resolution", "width": 1920, "height": 992} 2025-10-01T09:15:11.638343584Z INFO:data_websocket:Broadcasting display config update: DISPLAY_CONFIG_UPDATE,{"type": "display_config_update", "displays": ["primary"]} 2025-10-01T09:15:11.638407312Z INFO:data_websocket:Initial client settings message processed by ws_handler. 2025-10-01T09:15:11.638456731Z INFO:data_websocket:Initial setup: Primary client connected, audio not active, attempting start. 2025-10-01T09:15:11.638481652Z INFO:data_websocket:Starting pcmflux audio pipeline... 2025-10-01T09:15:11.638507474Z INFO:data_websocket:pcmflux settings: device='output.monitor', bitrate=320000, channels=2 2025-10-01T09:15:11.638534889Z INFO:data_websocket:Frame-based backpressure logic task started for display 'primary'. 2025-10-01T09:15:11.638543716Z INFO:data_websocket:Client settings received, proceeding with backpressure loop for 'primary'. 2025-10-01T09:15:11.638782157Z INFO:data_websocket:pcmflux audio capture started successfully. 2025-10-01T09:15:11.638988101Z [pcmflux] Attempting to connect to PulseAudio device: output.monitor... 2025-10-01T09:15:11.639444510Z INFO:data_websocket:pcmflux audio chunk broadcasting task started. 2025-10-01T09:15:11.641773610Z X Shared Memory Extension available. 2025-10-01T09:15:11.641800414Z XShm setup complete for 1920x992. 2025-10-01T09:15:11.641848671Z CPU cores available: 64 2025-10-01T09:15:11.641998072Z Stream settings active -> Res: 1920x992 | FPS: 60.0 | Stripes: 1 | Mode: H264 (CPU) FullFrame | CRF: 25 | PaintOver CRF: 18 (Burst: 5f) | Colorspace: I420 (Limited Range) | Damage Thresh: 10f | Damage Dur: 20f 2025-10-01T09:15:11.643329433Z [pcmflux] SUCCESS: Connected to PulseAudio. 2025-10-01T09:15:11.644080565Z INFO:data_websocket:Received START_VIDEO for 'primary'. Starting stream without reconfiguring layout. 2025-10-01T09:15:11.644101968Z WARNING:data_websocket:Capture instance for 'primary' already exists. Skipping start. 2025-10-01T09:15:11.644125565Z INFO:data_websocket:Backpressure logic task for 'primary' cancelled. 2025-10-01T09:15:11.644135736Z INFO:data_websocket:Backpressure logic task for 'primary' finished. 2025-10-01T09:15:11.644156187Z INFO:data_websocket:Backpressure task for 'primary' was stopped. Resetting its frame IDs. 2025-10-01T09:15:11.644169013Z INFO:data_websocket:Resetting frame IDs for display 'primary'. 2025-10-01T09:15:11.644184574Z INFO:data_websocket:Broadcasting primary pipeline reset to all 1 clients: PIPELINE_RESETTING primary 2025-10-01T09:15:11.644227972Z INFO:data_websocket:New frame backpressure task started for display 'primary'. 2025-10-01T09:15:11.644302371Z INFO:data_websocket:Received START_AUDIO command from client for server-to-client audio. 2025-10-01T09:15:11.644318564Z [pcmflux] SUCCESS: Opus encoder created. 2025-10-01T09:15:11.644328765Z [pcmflux] Capture loop started. Device: output.monitor, Rate: 48000, Channels: 2, Bitrate: 320 kbps, VBR: On, Silence Gate: Off, Debug Logging: Off, PCM Chunk: 3840 bytes 2025-10-01T09:15:11.644322582Z INFO:data_websocket:START_AUDIO: pcmflux audio pipeline already active. 2025-10-01T09:15:11.644423826Z INFO:data_websocket:Client is taking over existing display 'primary'. Updating state for new connection. 2025-10-01T09:15:11.644439047Z INFO:data_websocket:Applying and sanitizing client settings for 'primary' (initial=False) 2025-10-01T09:15:11.644490791Z INFO:data_websocket:Restarting audio pipeline due to settings update. 2025-10-01T09:15:11.644497865Z INFO:data_websocket:Stopping pcmflux audio pipeline... 2025-10-01T09:15:11.644520400Z INFO:data_websocket:Frame-based backpressure logic task started for display 'primary'. 2025-10-01T09:15:11.644529629Z INFO:data_websocket:Client settings received, proceeding with backpressure loop for 'primary'. 2025-10-01T09:15:11.644568137Z INFO:data_websocket:pcmflux audio chunk broadcasting task cancelled. 2025-10-01T09:15:11.644575571Z INFO:data_websocket:pcmflux audio chunk broadcasting task finished. 2025-10-01T09:15:13.644454598Z [pcmflux] First non-silent audio chunk detected! Encoding... 2025-10-01T09:15:13.644959846Z [pcmflux] Stop requested. Cleaning up capture loop... 2025-10-01T09:15:13.645529783Z [pcmflux] Audio capture loop finished. Resources released. 2025-10-01T09:15:13.645985220Z INFO:data_websocket:pcmflux audio pipeline stopped. 2025-10-01T09:15:13.645999779Z INFO:data_websocket:Starting pcmflux audio pipeline... 2025-10-01T09:15:13.646013868Z INFO:data_websocket:pcmflux settings: device='output.monitor', bitrate=320000, channels=2 2025-10-01T09:15:13.646397610Z [pcmflux] Attempting to connect to PulseAudio device: output.monitor... 2025-10-01T09:15:13.646560869Z INFO:data_websocket:pcmflux audio capture started successfully. 2025-10-01T09:15:13.646671662Z INFO:data_websocket:Received redundant resize request for primary (1920x992). No action taken. 2025-10-01T09:15:13.646911555Z INFO:data_websocket:pcmflux audio chunk broadcasting task started. 2025-10-01T09:15:13.648771150Z [pcmflux] SUCCESS: Connected to PulseAudio. 2025-10-01T09:15:13.648787773Z [pcmflux] SUCCESS: Opus encoder created. 2025-10-01T09:15:13.648794577Z [pcmflux] Capture loop started. Device: output.monitor, Rate: 48000, Channels: 2, Bitrate: 320 kbps, VBR: On, Silence Gate: Off, Debug Logging: Off, PCM Chunk: 3840 bytes 2025-10-01T09:15:15.644969696Z [pcmflux] First non-silent audio chunk detected! Encoding... 2025-10-01T09:15:21.725948544Z INFO:data_websocket:Cleaning up Data WS handler for ('127.0.0.1', 53822) (Display ID: primary)... 2025-10-01T09:15:21.726003385Z INFO:data_websocket:Client for primary removed. Triggering display reconfiguration. 2025-10-01T09:15:21.726013355Z INFO:data_websocket:Stopping all existing capture and backpressure tasks... 2025-10-01T09:15:21.749410163Z Capture loop stopped. X resources released. 2025-10-01T09:15:21.749692141Z INFO:data_websocket:All capture instances, senders, and backpressure tasks stopped. 2025-10-01T09:15:21.749698083Z WARNING:data_websocket:No display clients connected. Video pipelines remain stopped. 2025-10-01T09:15:21.750606392Z INFO:data_websocket:Video chunk sender for 'primary' cancelled. 2025-10-01T09:15:21.750610850Z INFO:data_websocket:Video chunk sender for 'primary' finished. 2025-10-01T09:15:21.770097756Z INFO:data_websocket:Last client (('127.0.0.1', 53822)) disconnected. All pipelines should have been stopped by reconfigure_displays. 2025-10-01T09:15:21.770149440Z INFO:main:Initiating unified pipeline shutdown... 2025-10-01T09:15:21.770156655Z WARNING:data_websocket:No display clients connected. Video pipelines remain stopped.