Acht Pruefungen standen Nacht fuer Nacht als rot da -- sie waren gruen
Der naechtliche Lauf meldete heute frueh "37 Pruefungen sind rot".
Acht davon waren gar nicht rot: fehlerfrei durchgelaufen, Exitcode 0,
keine einzige FEHL-Zeile. Der Laeufer zaehlte bei ihnen aber NULL
Einzelpruefungen, und "null Pruefungen ist ein Fehler" -- eine Regel,
die richtig ist und hier das Falsche traf.
DER GRUND WAR EIN GROSSBUCHSTABE. Der Zaehler suchte `(ok|FEHL)`;
pruef-kachelfarben, -livepunkt, -tippziele, -turn-wege, -leerzustand,
-nachfrage, -tagesruf und -anruf-klingelt schreiben ` OK `.
Zwei Schaeden auf einmal:
1. Ihre Punkte fehlten in der Gesamtzahl -- allein in fuenf der acht
sind das 114 Stueck. Ausgerechnet die Zahl, die vor stillen
Aussetzern schuetzen soll, war selbst eine Luecke.
2. Acht dauerhaft rote Eintraege in einer Notiz, die morgens gelesen
wird. Eine Warnung, die immer kommt, ist keine mehr.
Der Zaehler liest jetzt beide Schreibweisen. Die Dateien werden NICHT
vereinheitlicht: Acht umzuschreiben waeren acht Gelegenheiten, etwas
kaputtzumachen -- und die neunte, die morgen jemand anlegt, schreibt
ohnehin wieder, was sie will.
DAZU EINE PRUEFUNG, DIE DAS FESTHAELT (server/pruef-pruefzaehler.mjs).
Ein Kommentar haette den naechsten Fall nicht verhindert. Sie holt
sich den Ausdruck AUS alles-pruefen.mjs (zwei Fassungen desselben
Musters laufen auseinander), startet vier der schnellsten Pruefungen
wirklich -- je zwei in beiden Schreibweisen -- und hat drei
Gegenproben: Sie darf nicht wahllos zaehlen, sie muss zwei als zwei
zaehlen, und sie muss null als null sehen koennen, sonst waere "null
ist ein Fehler" blind.
UND DIE NOTIZ SAGT JETZT, WAS SIE MEINT. Statt "(keine Fehlerzeile
gefunden)" steht bei diesen Faellen: "Kein Befund -- es wurde keine
einzige Pruefung GEZAEHLT", mit der Erklaerung dazu. Fuer alles andere
ohne Fehlerzeile gibt es den dritten Ausgang ("Konnte nicht sagen,
woran es lag") samt den letzten Ausgabezeilen.
NEBENBEFUND, GEFUNDEN VON pruef-rueckmeldung: Die Tuer ins andere Haus
trug Ton 40 -- dieselbe Nummer wie "Entwicklung". Auf DogFathers Wand
standen zwei Kacheln in derselben Farbe, und er ist der Einzige, der
beide sieht; deshalb ist es nie jemandem aufgefallen.
Die naheliegende Antwort waere eine 46. Farbe gewesen. Gerechnet kam
ein Abstand von 0,0862 heraus -- unter der Hausgrenze von 0,09. Der
Farbraum ist bei 45 Toenen voll, und eine zweite benannte Ausnahme
am selben Tag waere der Anfang vom Ende der Regel.
Richtig ist die andere Antwort: Die Tuer ist gar keine
Bereichskachel. Sie fuehrt hinaus und gehoert keinem Bereich an --
also bekommt sie keine Bereichsfarbe, sondern faellt auf --akzent
zurueck. Damit unterscheidet sie sich von allen 45 anderen.
Gefunden hat das die Pruefung erst, nachdem sie SAGEN konnte, welche
Nummer doppelt ist. Vorher stand dort nur "kein Farbton doppelt (34
Kacheln vom Server)" -- damit sucht man in vier Listen ueber zwei
Dateien.
Dazu: start.js schreibt kein data-ton="undefined" mehr (String()
macht aus einem fehlenden Wert sonst ein Wort, und jede Pruefung,
die Toene zaehlt, liest dann Text statt Zahl).
WAS MICH VOR DER FALSCHEN REPARATUR BEWAHRT HAT: Meine erste Vermutung
war, die FEHL-Zeilen staenden zu weit hinten im Ausgabefenster. Die
Gegenprobe dazu wurde rot -- null Dateien. Genau dafuer ist sie da.
GEMESSEN:
- pruef-pruefzaehler (neu): 7 Pruefungen, 0 Fehler.
- pruef-rueckmeldung: 30 geprueft, 0 Fehler (war rot).
- pruef-kachelfarben 26/0, pruef-haus-trennung 100/0,
pruef-crew-adresse 153/0.
- tools/.nachtlauf-* ist jetzt ignoriert: Laufzeitzustand, der sich
jede Nacht aendert. Das Ergebnis steht in der Vault-Notiz.
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -1179,6 +1179,30 @@ body.start > main { position: relative; z-index: 1; }
|
||||
Wer diesen Ton spaeter aufhellen will, muss den Abstand neu rechnen
|
||||
-- nicht nach Gefuehl nachbessern. */
|
||||
[data-ton="45"] { --ton: #fd6401; } /* Unterstützen (gerechnet 24.09.2026) */
|
||||
/* WARUM ES KEINEN TON 46 GIBT (25.09.2026)
|
||||
|
||||
Die Tuer ins andere Haus trug bis heute Ton 40 -- dieselbe Nummer
|
||||
wie „Entwicklung". Auf DogFathers Wand standen damit zwei Kacheln
|
||||
in derselben Farbe, und er ist der Einzige, der beide sieht (die
|
||||
Tuer gibt es nur fuer ihn). Deshalb ist es nie jemandem aufgefallen.
|
||||
|
||||
DER ERSTE GEDANKE WAR EINE 46. FARBE. Gerechnet kam dabei ein
|
||||
Abstand von 0,0862 heraus -- UNTER der Hausgrenze von 0,09. Der
|
||||
Farbraum ist bei 45 Toenen erschoepft: Mehr Farben, die gleichzeitig
|
||||
4,5:1 Kontrast, Buntheit ueber 0,12 und 0,09 Abstand halten, passen
|
||||
nicht hinein. Eine zweite benannte Ausnahme am selben Tag waere der
|
||||
Anfang vom Ende der Regel gewesen.
|
||||
|
||||
RICHTIG IST DIE ANDERE ANTWORT: Die Tuer ist gar keine
|
||||
Bereichskachel. Sie fuehrt aus dem Haus hinaus (`aussen: true`) und
|
||||
gehoert keinem Bereich an. Sie bekommt deshalb KEINE Nummer und
|
||||
faellt auf `--akzent` zurueck (die Zeile unten). Damit
|
||||
unterscheidet sie sich von allen 45 Bereichskacheln -- genau
|
||||
richtig, denn sie ist etwas anderes als sie.
|
||||
|
||||
Nebenwirkung, die gewollt ist: Sie faellt aus beiden Farbrechnungen
|
||||
heraus. Das ist keine Luecke, sondern die Wahrheit -- man kann eine
|
||||
Farbe, die es nicht gibt, nicht auf Abstand pruefen. */
|
||||
|
||||
/* Rückfallwert für alles, was einen Ton braucht, aber keine Nummer hat.
|
||||
Steht bewusst in :where() -- damit zählt die Zeile beim Wettstreit der
|
||||
|
||||
@@ -430,7 +430,13 @@
|
||||
const liste = el('ul', 'kacheln');
|
||||
for (const b of meine) {
|
||||
const li = el('li', 'kachel');
|
||||
li.dataset.ton = String(b.ton);
|
||||
/* NUR SETZEN, WENN ES EINEN GIBT. `String(undefined)` schreibt
|
||||
sonst data-ton="undefined" ins Dokument -- kein Selektor
|
||||
trifft das, die Farbe stimmt also zufaellig, und jede
|
||||
Pruefung, die Toene zaehlt, liest ein Wort statt einer Zahl.
|
||||
Die Tuer ins andere Haus ist die einzige Kachel ohne Ton
|
||||
(sie gehoert keinem Bereich an, siehe workspace.js). */
|
||||
if (b.ton !== undefined && b.ton !== null) li.dataset.ton = String(b.ton);
|
||||
/* Die Willkommenskachel traegt alle Farben des Hauses.
|
||||
Das Merkmal steht hier und nicht am Ton, damit die
|
||||
Farbwerkzeuge weiter mit Zahlen rechnen koennen. */
|
||||
@@ -1502,7 +1508,9 @@
|
||||
gelesen hat. Beides kommt aus derselben Zuordnung wie die Zahl
|
||||
auf der Kachel, es gibt also keine zweite Liste. */
|
||||
const kachel = bereichZu(HINWEIS_ZU_KACHEL[h.art]);
|
||||
if (kachel) li.dataset.ton = String(kachel.ton);
|
||||
if (kachel && kachel.ton !== undefined && kachel.ton !== null) {
|
||||
li.dataset.ton = String(kachel.ton);
|
||||
}
|
||||
|
||||
/* Jeder Hinweis führt irgendwohin -- ein Hinweis ohne Ziel ist
|
||||
nur ein schlechtes Gewissen. */
|
||||
|
||||
Reference in New Issue
Block a user