diff --git a/server/pruef-grosscheck.mjs b/server/pruef-grosscheck.mjs index f4aeb98f..e36ae4db 100644 --- a/server/pruef-grosscheck.mjs +++ b/server/pruef-grosscheck.mjs @@ -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 ? ` ${name(oben)}` : ""); + }), /* 7. Zu kleine Schrift -- nur sichtbarer Text, und die Grenze haengt am Geraet. diff --git a/server/pruef-rollen.mjs b/server/pruef-rollen.mjs index dec79b66..9c2e8f9e 100644 --- a/server/pruef-rollen.mjs +++ b/server/pruef-rollen.mjs @@ -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;