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:
@@ -295,6 +295,26 @@ const messen = () => {
|
|||||||
const oben = document.elementFromPoint(x, y);
|
const oben = document.elementFromPoint(x, y);
|
||||||
if (!oben || oben === e || e.contains(oben) || oben.contains(e)) return false;
|
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. */
|
/* Klebt das, was darueber liegt? Dann zaehlt der Fluchtweg. */
|
||||||
let p = oben;
|
let p = oben;
|
||||||
while (p && p !== document.body) {
|
while (p && p !== document.body) {
|
||||||
@@ -306,7 +326,17 @@ const messen = () => {
|
|||||||
p = p.parentElement;
|
p = p.parentElement;
|
||||||
}
|
}
|
||||||
return true;
|
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
|
/* 7. Zu kleine Schrift -- nur sichtbarer Text, und die Grenze haengt
|
||||||
am Geraet.
|
am Geraet.
|
||||||
|
|||||||
+23
-2
@@ -77,11 +77,32 @@ await import("./index.js");
|
|||||||
900 s sind gut das Doppelte der Messung. Wer hier wieder anstoesst,
|
900 s sind gut das Doppelte der Messung. Wer hier wieder anstoesst,
|
||||||
soll NICHT die Zahl erhoehen, sondern zuerst nachsehen, ob der Lauf
|
soll NICHT die Zahl erhoehen, sondern zuerst nachsehen, ob der Lauf
|
||||||
noch vorankommt: eine Frist, die man dreimal hochsetzt, misst
|
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");
|
notbremse(900_000, "pruef-rollen");
|
||||||
await new Promise((r) => setTimeout(r, 700));
|
await new Promise((r) => setTimeout(r, 700));
|
||||||
const BASIS = `http://127.0.0.1:${PORT}`;
|
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 fehler = 0;
|
||||||
let geprueft = 0;
|
let geprueft = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user