Die letzten beiden roten Laeufe -- eine Frist und ein Dialog

pruef-rollen (Abbruch -> 454 gruen, 563 s)
  Sie meldete 438 Pruefungen, NULL Fehler und trotzdem Rueckgabewert 1.
  In der Datei standen ZWEI Notbremsen: die begruendete von 900 s und
  drei Zeilen darunter eine aeltere `setTimeout(... 540_000)`, die sie
  aushebelte. Zwei Fristen fuer dieselbe Sache sind keine doppelte
  Sicherung -- es gilt immer die kuerzere, und die Begruendung steht
  bei der laengeren.

  Der Lauf ist von 315 auf 454 Pruefungen gewachsen und druckte bis
  zur letzten Sekunde Ergebnisse. Er HING also nicht. Genau davor warnt
  der Absatz in der Datei selbst: "zuerst nachsehen, ob der Lauf noch
  vorankommt". Also die ueberholte Frist weg statt die begruendete
  erhoeht -- und die neue Messung (563 s) daneben geschrieben.

pruef-grosscheck (3 rot -> 18 gruen, 316 s)
  "verdeckt: BUTTON.teilen, BUTTON.install-knopf, A.chat-knopf" auf
  start.html, bei Manager, Scout und Creator -- nicht bei DogFather.

  Auch hier sagte die Meldung nur, DASS etwas darueberliegt. Jetzt sagt
  sie, WAS: `DIALOG.dialog "Willkommen, …"` -- die Begruessung, die beim
  ersten Besuch aufgeht und die DogFather laengst weggeklickt hat. Ein
  modaler Dialog SOLL alles verdecken; die Schwesterpruefung
  pruef-handy-teamdogi fuehrt diese Ausnahme seit jeher woertlich, hier
  fehlte sie.

  Die Ausnahme bleibt eng: Verdeckt werden darf nur, was AUSSERHALB des
  Dialogs liegt. Zwei Knoepfe, die sich INNERHALB desselben Dialogs
  ueberdecken, sind weiterhin ein Fund.

  Die Elementzahlen sind Ziffer fuer Ziffer dieselben wie im roten Lauf
  (14346 / 13665 / 11712) -- es ist also nichts stillschweigend
  weggefallen.

Ausserdem nachgemessen und ohne Zutun gruen: pruef-breiten (23, 426 s)
und pruef-handy (192, vorher 186). Beide waren am 01.10. rot und sind
seither repariert worden -- der Nachtlauf-Bericht war an mehreren
Stellen ueberholt.

Damit sind alle 14 roten Pruefdateien aus dem Bericht vom 01.10.2026
gruen.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-10-07 15:05:15 +02:00
co-authored by Claude Opus 5
parent 3f55e63703
commit 6a42e78d57
2 changed files with 54 additions and 3 deletions
+31 -1
View File
@@ -295,6 +295,26 @@ const messen = () => {
const oben = document.elementFromPoint(x, y);
if (!oben || oben === e || e.contains(oben) || oben.contains(e)) return false;
/* ==== EIN OFFENER DIALOG DARF ALLES VERDECKEN (07.10.2026) ====
Genau dafuer ist er da. Diese Pruefung meldete bei Manager,
Scout und Creator drei Kopfknoepfe auf start.html als
verdeckt -- und zwar von `DIALOG.dialog "Willkommen, …"`, der
Begruessung, die dort beim ersten Besuch aufgeht. Bei
DogFather nicht, weil er sie laengst weggeklickt hat.
Die Schwesterpruefung pruef-handy-teamdogi kennt diese
Ausnahme seit jeher woertlich: „Ein Element in einem
geoeffneten Dialog darf den Rest ueberdecken -- das ist der
Zweck eines Dialogs." Hier fehlte sie.
SIE BLEIBT ENG: Verdeckt werden darf nur, was AUSSERHALB des
Dialogs liegt. Zwei Knoepfe, die sich INNERHALB desselben
Dialogs ueberdecken, sind weiterhin ein Fund -- und das ist
der Fall, der wirklich weh tut. */
const obenDialog = oben.closest("dialog[open]");
if (obenDialog && !e.closest("dialog[open]")) return false;
/* Klebt das, was darueber liegt? Dann zaehlt der Fluchtweg. */
let p = oben;
while (p && p !== document.body) {
@@ -306,7 +326,17 @@ const messen = () => {
p = p.parentElement;
}
return true;
}).slice(0, 3).map(name),
}).slice(0, 3).map((e) => {
/* UND WER LIEGT DARUEBER? (07.10.2026)
„BUTTON.teilen verdeckt" sagt, DASS etwas darauf liegt, und
schickt einen suchen. Der Deckel steht hier ohnehin fest -- er
wurde nur weggeworfen. Mit ihm sieht man in derselben Zeile,
ob es eine klebende Leiste ist, ein Schleier oder der Nachbar. */
const rr = e.getBoundingClientRect();
const oben = document.elementFromPoint(rr.left + rr.width / 2, rr.top + rr.height / 2);
return name(e) + (oben ? ` <unter> ${name(oben)}` : "");
}),
/* 7. Zu kleine Schrift -- nur sichtbarer Text, und die Grenze haengt
am Geraet.
+23 -2
View File
@@ -77,11 +77,32 @@ await import("./index.js");
900 s sind gut das Doppelte der Messung. Wer hier wieder anstoesst,
soll NICHT die Zahl erhoehen, sondern zuerst nachsehen, ob der Lauf
noch vorankommt: eine Frist, die man dreimal hochsetzt, misst
irgendwann gar nichts mehr. */
irgendwann gar nichts mehr.
NACHGEMESSEN AM 07.10.2026: 563 s fuer 454 Pruefungen. Der Lauf ist
seit dem 11.09. um rund ein Drittel gewachsen (315 -> 454), und zwar
an Arbeit, nicht an Leerlauf. 900 s sind damit noch rund 60 % Luft --
genug, aber nicht mehr reichlich. Wer die naechste Rolle oder Kachel
dazunimmt, misst die Dauer bitte mit und schreibt sie hierher. */
notbremse(900_000, "pruef-rollen");
await new Promise((r) => setTimeout(r, 700));
const BASIS = `http://127.0.0.1:${PORT}`;
setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 540_000).unref?.();
/* ==== HIER STAND EINE ZWEITE NOTBREMSE (entfernt 07.10.2026) ========
`setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 540_000)`
-- eine aeltere Frist, die die sorgfaeltig begruendete von 900 s drei
Zeilen darueber schlicht aushebelte. Zwei Fristen fuer dieselbe
Sache sind keine doppelte Sicherung, sondern eine, die man gar nicht
mehr sieht: Es gilt immer die kuerzere, und die Begruendung steht
bei der laengeren.
GEMESSEN AM 07.10.2026: Der Lauf ist von 315 auf 438 Pruefungen
gewachsen und brauchte damit mehr als 540 s. Er hat bis zur letzten
Sekunde Ergebnisse gedruckt -- er HING also nicht, er war nur
laenger als die alte Zahl. Genau davor warnt der Absatz darueber:
"zuerst nachsehen, ob der Lauf noch vorankommt". Er kam voran.
Also die ueberholte Frist weg und nicht die begruendete erhoeht. */
let fehler = 0;
let geprueft = 0;