Der Nebel lag dort, wo der Text steht

pruef-kachel-universum war rot mit drei Meldungen. Die zweite rote
Pruefung von dreien.

ERST DIE FRAGE, OB ES DRIFT IST ODER VON ANFANG AN SO WAR: Die Pruefung
und das Sternenfeld kamen im selben Commit (ad47fc2). Dort laufen
lassen -- alles gruen, Kachelzeile 0,017 % auf 11610 Bildpunkten. Heute
2,372 % auf 6282. Die gemessene Flaeche hat sich HALBIERT.

Das war der Hinweis: Es wird eine andere Kachel gemessen. Der Waehler
nimmt die erste (`.kachel .kachel__unter`), und die war damals die
grosse Dashboard-Kachel (645 px breit), heute ist es "Team-Lage" (349
px). Die Reihenfolge hat sich zwischendurch geaendert.

WARUM DAS EINEN UNTERSCHIED MACHT: Die beiden Nebel sind auf
`100% 100%` skaliert, sie wachsen also mit der Kachel. Der babyblaue
sass bei `at 12% 88%` -- unten links. Auf einer schmalen Kachel liegt
genau dort die Unterzeile; auf der doppelt so breiten verteilt sich
derselbe Nebel ueber die ganze Breite und faellt nicht auf.

Der Kern ist jetzt tiefer in die Ecke geschoben (`at 10% 104%`, Ellipse
etwas flacher). Der Verlauf laeuft weiterhin quer durch die Kachel, die
Sterne sind unveraendert -- nachgesehen im Bild, nicht nur gemessen.

  Kachelzeile   2,372 %  ->  0,000 %   (Mittel 6.93 -> 7.28)
  Personenzeile 0,253 %  ->  0,253 %   (unveraendert, nichts kaputt)

UND EINE PRUEFUNG, DIE SEIT WOCHEN GAR NICHT LIEF. Die Zeile "dort
steht kein Stern" hing an `if (zwischenraum)`, und `zwischenraum` war
`null`, seit die grosse Kachel an Platz zwei steht: Sie faengt eine
Zeile tiefer wieder bei x=140 an, also gab es keinen Spalt zwischen
den ersten beiden. Ein uebersprungener Test beweist nichts -- und
gemeldet hat er nur, dass er nichts messen konnte.

Beim Wiederbeleben stellte sich heraus, dass er die falsche Frage
stellte: Er verlangte, dass der Grund zwischen den Kacheln "ruhig" ist
(Spanne <= 12). Das ist eine Aussage ueber das HINTERGRUNDFOTO der
Seite, und ein Foto darf helle Stellen haben -- gemessen 27, ohne dass
etwas kaputt war. Die eigentliche Frage ist eine andere: Liegt das
Sternenfeld wirklich nur auf den Kacheln?

Jetzt wird derselbe Fleck zweimal gemessen, mit und ohne Sternenfeld:

  Mittel 42,7,12 -> 42,7,12   hellster 69,14,17 -> 69,14,17

Bildpunkt fuer Bildpunkt identisch. Das beantwortet die Frage
unabhaengig davon, was auf dem Foto zu sehen ist.

  pruef-kachel-universum   37 Pruefungen, 0 Fehler (vorher 3)
  pruef-css-klassen, pruef-neue-seiten 97 -- 0 Fehler

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-16 17:24:48 +02:00
co-authored by Claude Opus 5
parent 8e140724f2
commit 0852723493
32 changed files with 441 additions and 372 deletions
+81 -12
View File
@@ -434,20 +434,89 @@ melde("=== 4. Nur die Kacheln ===");
const zwischenraum = await seite.evaluate(() => {
/* Ein Fleck ZWISCHEN zwei Kacheln. Er gehoert der Seite, nicht
einer Kachel -- dort darf kein Stern stehen. */
const kacheln = [...document.querySelectorAll(".kachel")];
if (kacheln.length < 2) return null;
const a = kacheln[0].getBoundingClientRect();
const b = kacheln[1].getBoundingClientRect();
if (b.x - (a.x + a.width) < 6) return null;
return { x: Math.round(a.x + a.width) + 1, y: Math.round(a.y) + 20,
width: Math.max(2, Math.round(b.x - (a.x + a.width)) - 2), height: 40 };
/* IRGENDZWEI, DIE NEBENEINANDER LIEGEN -- nicht die ersten zwei.
Bis zum 16.09.2026 stand hier `kacheln[0]` und `kacheln[1]`. Das
hielt genau so lange, wie die erste Kachel klein war: Seit die
Reihenfolge sich geaendert hat, steht an Platz zwei die grosse
Dashboard-Kachel, und die faengt eine Zeile tiefer wieder bei
x=140 an. Es gab also keinen Zwischenraum mehr -- die Pruefung
meldete "kein Platz zum Messen" und mass danach gar nichts.
Das ist dieselbe Falle wie eine feste Zahl: eine Annahme ueber
das Aussehen, die beim naechsten Umbau still falsch wird. Jetzt
wird gesucht, was die Frage beantwortet, statt sie zu stellen. */
/* EIN FLECK, DER KEINE KACHEL BERUEHRT.
Die Frage ist: Steht das Sternenfeld wirklich nur auf den
Kacheln? Bis zum 16.09.2026 wurde dafuer der schmale Spalt
ZWISCHEN zwei Kacheln gemessen -- und zwar `kacheln[0]` und
`kacheln[1]`. Das hielt genau so lange, wie die erste Kachel
klein war; seit die Reihenfolge sich geaendert hat, steht an
Platz zwei die grosse Kachel eine Zeile tiefer. Es gab keinen
Spalt mehr, die Messung lieferte `null`, und die Zeile darunter
("dort steht kein Stern") lief ueberhaupt nicht mehr. Ein
uebersprungener Test beweist nichts.
Der Spalt war ausserdem die falsche Stelle: Er ist rund vierzehn
Pixel breit, und die Kacheln haben ein gewolltes Kantenlicht.
Was dort hell ist, gehoert zur Kachel, nicht zur Seite --
gemessen wurde "Spanne 40" gegen eine Grenze von 12, ohne dass
irgendetwas kaputt war.
Deshalb jetzt die Zeile ZWISCHEN zwei Kachelreihen, mit Abstand
zu beiden, und zur Sicherheit gegen jede Kachel geprueft. Das
beantwortet dieselbe Frage an einer Stelle, an der die Antwort
eindeutig ist. */
const felder = [...document.querySelectorAll(".kachel")]
.map((k) => k.getBoundingClientRect());
if (felder.length < 2) return null;
const unten = Math.max(...felder.map((f) => f.y + f.height));
const kandidaten = [];
for (const f of felder) {
/* Direkt unter dieser Kachel, im Abstand von 4 Pixeln. */
const y = f.y + f.height + 4;
if (y + 8 > unten) continue; // nicht unter der letzten Reihe
const fleck = { x: Math.round(f.x + f.width / 2 - 12), y: Math.round(y),
width: 24, height: 8 };
const beruehrt = felder.some((g) =>
fleck.x + fleck.width > g.x && fleck.x < g.x + g.width
&& fleck.y + fleck.height > g.y && fleck.y < g.y + g.height);
if (!beruehrt) kandidaten.push(fleck);
}
return kandidaten[0] || null;
});
ok(zwischenraum !== null, "zwischen zwei Kacheln ist Platz zum Messen");
ok(zwischenraum !== null, "ein Fleck ohne Kachel darunter ist gefunden");
if (zwischenraum) {
const p = await punkte(zwischenraum);
const spanne = Math.max(...p.hellsterPunkt.map((x, i) => x - p.mittel[i]));
ok(spanne <= 12,
`der Grund zwischen den Kacheln ist ruhig, dort steht kein Stern (Spanne ${spanne})`);
/* DIE FRAGE IST NICHT "IST ES DORT RUHIG", SONDERN "LIEGT DORT DAS
STERNENFELD".
Bis zum 16.09.2026 verlangte diese Zeile, dass der Grund zwischen
den Kacheln eine Spanne von hoechstens 12 hat. Das ist eine
Aussage ueber das HINTERGRUNDFOTO der Seite, nicht ueber das
Sternenfeld -- und ein Foto darf helle Stellen haben. Gemessen
wurden 27, ohne dass irgendetwas kaputt war.
Eindeutig wird es, wenn man denselben Fleck zweimal misst: einmal
mit Sternenfeld, einmal ohne. Liegt es wirklich nur auf den
Kacheln, aendert sich dort NICHTS. Das beantwortet die Frage
unabhaengig davon, was auf dem Foto zu sehen ist. */
const mit = await punkte(zwischenraum);
await seite.addStyleTag({ content: ":root { --sternenfeld: none; }" });
await seite.waitForTimeout(250);
const ohne = await punkte(zwischenraum);
await seite.evaluate(() => {
const letzte = [...document.querySelectorAll("style")].pop();
if (letzte && letzte.textContent.includes("--sternenfeld: none")) letzte.remove();
});
await seite.waitForTimeout(250);
const abstand = Math.max(...mit.mittel.map((x, i) => Math.abs(x - ohne.mittel[i])));
const spitze = Math.max(...mit.hellsterPunkt.map((x, i) => Math.abs(x - ohne.hellsterPunkt[i])));
ok(abstand <= 1 && spitze <= 2,
`neben den Kacheln aendert das Sternenfeld nichts `
+ `(Mittel ${mit.mittel} -> ${ohne.mittel}, hellster ${mit.hellsterPunkt} -> ${ohne.hellsterPunkt})`);
}
}