diff --git a/docs/handoff.md b/docs/handoff.md index a194b52..43cc80d 100644 --- a/docs/handoff.md +++ b/docs/handoff.md @@ -1,6 +1,6 @@ # Übergabe -Stand **2026-10-26**, letztes gebautes Paket 0.5.7. Wer hier weitermacht, +Stand **2026-10-27**, letztes gebautes Paket 0.5.7. Wer hier weitermacht, liest zuerst diese Seite, dann [`07-mvp-plan.md`](07-mvp-plan.md). Für Abdu selbst gibt es das [Handbuch](handbuch/handbuch.pdf). @@ -20,7 +20,7 @@ Auslöser bis zum fertigen Short steht im Code vollständig. Geprüft ist sie | S5 Onboarding + Sichtung | offen | | | S6 Erstchatter-Begrüßung | offen | | -319 Tests, alle grün. Was noch fehlt, steht vollständig in +322 Tests, alle grün. Was noch fehlt, steht vollständig in [`offene-punkte.md`](offene-punkte.md). ## Neu: der Dienst läuft zentral @@ -96,6 +96,15 @@ aus `theme.css`, `?probe=1` zum Ansehen im Browser. Die Ereignisse auf dem Bus (`apps/overlay-server/src/bus.ts`) sind die Schnittstelle, an der sich die neuen Seiten festhalten können. +**Chat-Abzeichen sind seit 2026-10-27 Twitchs echte Bilder** statt farbiger +Punkte. IRC liefert nur `moderator/1`, `subscriber/3012` usw.; der Hub löst das +über Helix (global und Kanal, Kanal gewinnt) zu Bildadressen auf und hängt sie +an jede Chatzeile (`packages/twitch/src/badges.ts`, Feld `badges` im +`ChatEvent`). Geladen beim Start und alle sechs Stunden, beim Ausrollen +kamen 552. Unbekanntes fällt weg, die Seite nimmt nur Adressen von +`static-cdn.jtvnw.net`. Im echten Stream noch nicht angesehen; zeigt OBS +weiter Punkte, die Browser-Source einmal aktualisieren. + Die Ereignisse kommen über Server-Sent Events statt WebSocket. Warum, und was gegen die tote Browser-Source nach einem Neustart getan ist, steht in [`apps/overlay-server/README.md`](../apps/overlay-server/README.md). @@ -121,8 +130,12 @@ Dauerbetrieb: `abdulive overlay --demo` oder der Knopf „Vorführung starten". ## Das Pult: Handy als Stream Deck -Seit 2026-10-26 auf dem Hub ausgerollt und im Paket 0.5.7, **nicht an echtem -OBS geprüft**. Auf Abdus Rechner ist nichts auszuführen: das Update kommt über +Seit 2026-10-26 auf dem Hub ausgerollt und im Paket 0.5.7. **Seit 2026-10-27 +hängt Abdus Stream-PC dran:** obs-websocket an, Passwort auf der +Einrichtungsseite hinterlegt, der PC (`DESKTOP-DGJ4HC6`) hat sich beim Hub +gemeldet und ist freigegeben, im Hub-Log steht `Stream-PC verbunden`. Ob +Szenenwechsel, Stummschalter, Sounds und das Anlegen der Quelle in OBS +greifen, ist damit noch nicht beobachtet. Auf Abdus Rechner ist nichts auszuführen: das Update kommt über die tägliche Aufgabe, danach meldet sich der PC von selbst, Abdu tippt im Pult einmal „Freigeben“, und die Sound-Quelle legt `ingest` selbst in OBS an. `/pult` auf dem Hub ist eine installierbare Web-App (PWA) mit Soundboard, Szenenwechsel, Clip-Knopf, Stummschaltern, Liegestützen, @@ -144,10 +157,11 @@ Vorlese-Freigabe und den Testknöpfen. Beschreibung in Sound-Quelle, Szenenwechsel, Stummschalten, Hochladen, Abspielen); 8 MB Upload durch den Proxy. Ungeprüft: echtes OBS (vor allem das Anlegen der Quelle), iPhone/Android-Installation. -- **Die Adresse in der Anfragekarte** kam bei einer Probe aus dem eigenen Netz - als `172.18.0.1` an, der Docker-Brücke des Proxys. Ob bei Abdus echter - Verbindung seine Adresse erscheint (`x-real-ip`/`x-forwarded-for` vom - Proxy), zeigt erst sein erster Versuch. Notfalls hilft der Rechnername. +- **Die Adresse in der Anfragekarte** stimmt: bei Abdus echter Anfrage stand + seine öffentliche Adresse da, nicht die Docker-Brücke (`172.18.0.1` kam nur + bei der Probe aus dem eigenen Netz). Sie ist reine Anzeige - die Freigabe + hängt am Schlüssel, eine wechselnde IP stört nicht, eine feste braucht er + nicht. - Auf dem Hub stand am 2026-10-26 kurz eine Probe-Anfrage „PRUEFUNG-CLAUDE“. Sie ist nach zehn Minuten von selbst verfallen und wurde nicht freigegeben. @@ -357,6 +371,11 @@ npx tsc --noEmit ## Ausliefern +Zwei Wege, je nachdem was sich ändert: Hub-Teil (Overlay, Pult, Discord, Chat) +ist mit `deploy-hub.sh` sofort live, Abdu muss nichts tun. Der PC-Teil +(`ingest`) kommt nur mit einem neuen Paket an, also nach einem Versions-Tag; +ein Push auf `main` allein erreicht seinen Rechner nicht. + `build-package.ts` lädt Node, ffmpeg und whisper.cpp bei ihren Herausgebern, packt alles nach `dist/` und schreibt `abdulive.json`. Dieses Manifest fragt `abdulive update` auf Abdus Rechner ab. @@ -487,10 +506,9 @@ oben. Hotkey auf „Wiedergabepuffer speichern", getrennte Audiospuren. 3. **Layout umstellen** nach [`obs-layout.md`](obs-layout.md), danach `abdulive calibrate` zur Kontrolle. -4. **Stream-PC im Pult freigeben.** Sobald 0.5.7 auf seinem Rechner läuft - (tägliche Aufgabe um 05:00, Start bei der Anmeldung), steht unter Szenen - „Stream-PC … möchte sich verbinden“. Ein Tipp auf „Freigeben“. Ausführen - muss er dafür nichts. +4. ~~**Stream-PC im Pult freigeben.**~~ Erledigt am 2026-10-27, ebenso + obs-websocket und das Passwort aus Punkt 2. Offen aus Punkt 2 bleiben + Wiedergabepuffer, Hotkey und Audiospuren - nicht nachgeprüft. Das Bot-Konto ist noch nicht verbunden: bis dahin liest das Toolkit den Chat anonym mit und kann nichts senden. @@ -519,7 +537,7 @@ in der ganzen Kette, und alles Weitere hängt daran. Seit es `abdulive sources` gibt, ist auch die Frage beantwortbar, welche OBS-Quelle fremden Text ins Bild malt. Das war vorher nicht zu erraten. -**Das Pult an Abdus OBS abnehmen.** Nach seiner Freigabe nachsehen, ob die +**Das Pult an Abdus OBS abnehmen.** Die Freigabe ist erteilt. Jetzt nachsehen, ob die Szene `abdulive Ton` mit der Quelle `abdulive Sounds` angelegt und in jede Szene eingehängt ist, ob ein Sound im Stream zu hören ist und ob Szenenwechsel und Stummschalter greifen. Das fällt mit der Abnahme von S2 zusammen, beides