hermes-erkenntnisse/nachtplan-2026-07-22/weg-b-cdp-umbiegung.md

2.7 KiB

Weg B — Bridge-Adapter auf gpu-pc-CDP :9223 umbiegen (Nachtplan #5)

Datum: 2026-07-22 · Status: Code fertig + py_compile-sauber · Nutzbarkeit: [BÄR — PWA-Login gpu-pc]

Kontext

Der dedizierte Bridge-Server bridge.ki1.it wurde am 2026-07-22 abgebaut. Einzige Quelle dauerhaft eingeloggter PWA-Sessions = gpu-pc (100.109.177.88), dort Chrome mit remote-debugging :9223 (Suno/Gemini/Qolaba live). "Weg B" = Adapter greifen diese Tabs per CDP ab, statt einen zweiten Browser mit kopierten Cookies zu betreiben (bei Google-OAuth ohnehin fragil).

Befund

  • suno.py macht Weg B bereits — eigenes get_page() mit connect_over_cdp (host.docker.internal:9223 via SSH-Tunnel, Hostname->IP wegen Chrome-CDP-Host-Header-Check).
  • gemini.py / qolaba.py nutzten bisher base.get_page() = launch_persistent_context (eigenes Chrome
    • injizierte Cookies). Diese sind auf CDP umgestellt.
  • mammouth.py = Firefox + SOCKS5 (gpu-pc-Egress). Firefox hat kein Chromium-CDP -> connect_over_cdp nicht anwendbar. Zusaetzlich Session aktuell ausgeloggt. Bleibt Firefox-Sonderfall.

Umsetzung

Neues Modul app/bridges/cdp.py mit CDPBridge(PWABridge) — verallgemeinert exakt suno's erprobtes Muster (gemeinsamer CDP-Browser-Handle mit Reconnect, Hostname->IP-Aufloesung, Tab-Wiederverwendung nach Domain). Aenderungen an gemini.py/qolaba.py minimal:

  • class Gemini(CDPBridge) + match_host="gemini.google.com", relogin_supported=True entfernt
  • class Qolaba(CDPBridge) + match_host="qolaba.ai", relogin_supported=True entfernt
  • Die gesamte Selector-/Ablauf-Logik (chat/image/audio/video/veo3) unveraendert.

Sicherheit: CDPBridge.get_page() oeffnet bei fehlendem Domain-Tab einen eigenen neuen Tab (kein Hijack von pages[0] eines fremden Dienstes). relogin_supported=False (geteilter CDP-Context).

Nutzbarkeit (ehrlich)

Rein technische Umbiegung. Die Session MUSS auf gpu-pc eingeloggt sein. Am 2026-07-22 ist Mammouth ausgeloggt (rigoros geprueft: /login-Redirect, kein Auth-Cookie); Gemini-Google-OAuth kann ebenfalls ablaufen. Dann meldet login_status() ehrlich logged_in=False und die Methoden liefern eine Login-Wall. -> einmaliger Human-Login auf gpu-pc noetig ([BÄR — PWA-Login gpu-pc]). Auto-Relogin aus dem Bridge-Prozess ist bei geteiltem CDP nicht moeglich.

Deployment (offen, [BÄR]/Folgeschritt)

bridge.ki1.it ist weg — der Bridge-Prozess braucht einen neuen Host MIT SSH-Tunnel zu gpu-pc:9223 (oder Betrieb direkt auf gpu-pc gegen localhost:9223). Env: PWA_CDP_URL=http://host.docker.internal:9223.

Code: bridges/cdp.py (dieses Repo), Adapter-Backup D:\claude\backups\bridges-adapter-code-2026-07-22.tgz.