from pathlib import Path src=Path(r'C:\kefu\wechat_rpa\wechat_gui_qt.py').read_text(encoding='utf-8-sig') p=Path(r'C:\wechat_rpa\wechat_gui_qt.py') dst=p.read_text(encoding='utf-8-sig') base=Path(r'C:\kefu\deploy\patient-session-20260918\baseline\production\wechat_gui_qt.py').read_text(encoding='utf-8-sig') assert dst==base,'production GUI changed since task baseline' a='class PatientBindingDialog(';b='class ConsoleBridge(' dst=dst[:dst.index(a)]+src[src.index(a):src.index(b)]+dst[dst.index(b):] a=' def _keepalive_patient_session(';b=' def _check_desktop_session(' dst=dst.replace(b,src[src.index(a):src.index(b)]+b,1) dst=dst.replace('class MainWindow(QMainWindow):\n desktopSessionChecked = Signal(str, object)\n','class MainWindow(QMainWindow):\n desktopSessionChecked = Signal(str, object)\n patientSessionChecked = Signal(object)\n',1) a=' self._patient_keepalive_running = False\n self._patient_session_state = "unknown"\n';b=' self._desktop_session_check_running = False\n self._desktop_session_state = "valid"\n' dst=dst.replace(b,src[src.index(a):src.index(b)]+b,1) compile(dst,str(p),'exec') p.write_text(dst,encoding='utf-8',newline='\n') print('production GUI patched; protocol-specific sections preserved')