Benachrichtigungen: nicht "Verbindung offen", sondern "sieht jemand hin"
Diene im Support (vor 5 Tagen): „Die Benachrichtigungen werden nicht
angezeigt, wenn neue Nachrichten reinkommen. Erst, wenn man die App
öffnet."
ERST GEMESSEN, WAS NICHT DAS PROBLEM IST. Am echten Bestand
nachgesehen: Diene HAT ein angemeldetes Geraet (Android, Chrome, seit
dem 29.09.), und alle zehn Geraete im Haus melden `fehler = 0`. An
der Zustellung liegt es nicht.
DANN NACHGESTELLT (pruef-abzeichen, Abschnitt 8):
Verbindung offen -> KEINE Benachrichtigung
Verbindung zu -> sie kommt
Genau sein Befund.
DER GEDANKE WAR RICHTIG, DIE FRAGE FALSCH. Im Quelltext stand:
if ((zuschauer.get(personId) || new Set()).size) continue;
und daneben die Begruendung -- „wer die Seite offen hat, sieht die
Nachricht ohnehin; ihm auch noch eine Meldung aufs Handy zu schicken
ist der schnellste Weg, dass er Benachrichtigungen abschaltet." Das
stimmt. Nur beantwortet `zuschauer` eine ANDERE Frage: ob eine
VERBINDUNG offen ist. Ein Handy mit der App im Hintergrund haelt sie
weiter -- und der Server hielt Diene fuer anwesend, waehrend sein
Bildschirm schwarz war.
DIE SEITE WEISS ES, DER SERVER NICHT. `document.visibilityState` ist
die einzige Stelle, die den Unterschied kennt. Also sagt sie es --
ueber einen winzigen Weg (`/api/chat/sicht`), beim Aufbau, bei jedem
Wechsel und mit `keepalive` beim Weggehen.
MIT VERFALL, und das ist der wichtige Teil: Ein Geraet, das
abstuerzt, im Funkloch steht oder eingefroren wird, sagt gar nichts
mehr. Ohne Verfall bliebe es fuer immer „sichtbar" und fuer immer
still. Wer nicht widerspricht, gilt nach zweieinhalb Minuten als weg
-- eine Meldung zu viel ist laestig, eine zu wenig ist genau der
Fehler, den Diene gemeldet hat. Dazu alle Minute ein Lebenszeichen,
solange die App vorn liegt.
EINE STELLE FUER DIE FRAGE. Sie wurde an zwei Orten gestellt:
`siehtZu()` und eine Abschrift mitten in `chatEreignis`. Die
Abschrift war die kaputte. Jetzt fragen beide dieselbe Funktion.
GEPRUEFT -- vier Lagen, und die zweite ist die wichtigere
Gegenprobe:
App liegt hinten -> Meldung kommt (war: nichts)
sieht wirklich hin -> KEINE Meldung (Absicht bleibt)
App weggelegt -> Meldung kommt wieder
gar keine Verbindung -> Meldung kommt
Ohne die zweite Zeile hiesse die Reparatur nur „jetzt kommt immer
eine", und das waere der schnellste Weg, dass jemand
Benachrichtigungen abschaltet.
UND EINE PRUEFUNG HAT DEN FEHLER MITGETRAGEN. pruef-anruf-klingelt
hielt den WORTLAUT der kaputten Zeile fest -- genau das, wovor ihr
eigener Kommentar drei Zeilen darueber warnt („Die Pruefung hat den
alten Wortlaut bestaetigt statt sein Verhalten"). Sie prueft jetzt
beides: dass gefragt wird, und dass die Frage die richtige ist.
pruef-abzeichen 26/0, pruef-chat, pruef-anruf 132/0,
pruef-chat-kanaele 81/0, pruef-anruf-klingelt 25/0, pruef-push-ziel
38/0, pruef-arten 28/0, pruef-reaktion 421/0, pruef-struktur,
pruef-zwischenspeicher 34/0.
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
+18
-18
@@ -7,18 +7,18 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609301852" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609301852" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609301852" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609301852" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609301852" />
|
||||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609301852" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" />
|
||||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609302348" />
|
||||
<!-- Wegen des Kastens „Anfragen“ ueber der Liste. Eine eigene Kopie
|
||||
der Regel hier waere die zweite Stelle, an der dieselbe Sache
|
||||
anders aussieht. -->
|
||||
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609301852" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609301852" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609301852" />
|
||||
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609302348" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -111,15 +111,15 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609301852" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609301852" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609302348" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609302348" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609301852" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609301852" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609301852" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609301852" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609301852" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609301852" defer></script>
|
||||
<script src="assets/js/talente.js?v=202609301852" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609302348" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609302348" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609302348" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609302348" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609302348" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609302348" defer></script>
|
||||
<script src="assets/js/talente.js?v=202609302348" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user