bf3c7bd7183e61ba57e22d5653f4f5553bc8d58a
2
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
39ca642a52 |
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]>
|
||
|
|
a9d920e7d0 |
Vier stillgelegte Pruefungen, zwei kaputte Zeichen -- und die Wache dagegen
Gefunden beim Vorbereiten der KLIPY-Anbindung, nicht gesucht.
DER VERLORENE BACKSLASH
In fuenf Dateien stand in einem Suchmuster das BYTE 0x08 statt der
zwei Zeichen \ und b. Gemeint war die Wortgrenze; 0x08 ist das
Rueckschritt-Zeichen und kommt in keinem Text vor. Gemessen:
/<0x08>modis?<0x08>/i.test("Die Modis sind da") -> false
/\bmodis?\b/i .test("Die Modis sind da") -> true
Folgen, je Stelle:
pruef-nachwuchs Das Muster stand in einer VERNEINUNG. Die
Zeile lautete damit ok(!false) -- dauerhaft
gruen, ohne etwas zu messen. Ausgerechnet
die Zeile, die das Durchsickern des
Rollennamens verhindern soll.
pruef-personen-formular dasselbe Muster, dieselbe Verneinung
pruef-nachfrage hatDialogMitFeld war immer falsch. Seiten
mit einem Formular-Dialog galten als "totes
Gewicht" -- der Kommentar direkt darueber
warnt woertlich vor genau diesem Schaden.
pruef-entwicklung zwei von drei Alternativen tot
workspace-treff.js nur ein Kommentar, aber unlesbar
ZWEI KAPUTTE ZEICHEN, BEIDE SICHTBAR
content: "<0x15>C9<0x00>A0" in chat.css. Gemeint war U+25C9 und
ein geschuetztes Leerzeichen. Live stand woertlich "C9 A0" vor
jedem hervorgehobenen @rudel -- am echten Server nachgemessen.
content: "¹3" in chat.css UND entwicklung.css. Gemeint war ein
Haken. Auf der gewaehlten Kachel stand "¹3"; zu sehen in Filipes
Bildschirmfoto.
Repariert wird mit der Escape-Schreibweise ("\2713"), nicht mit dem
Zeichen selbst: Sie besteht nur aus ASCII und ueberlebt jede
Kodierung.
WAS DIESE FEHLERART BESONDERS MACHT
Niemand sieht sie beim Lesen. Der erste war committet, ausgeliefert
und lag live -- und als ich in der Datei danach suchte, meldete grep
"Binary file matches" und zeigte die Zeile gar nicht erst an. Wer den
Unterschied durchsieht, liest content: "C9 A0" und denkt sich nichts.
Deshalb neu: server/pruef-zeichen.mjs (7 Pruefungen). Sie sucht rohe
Steuerzeichen in allen ausgelieferten und allen Serverdateien, dazu
Ersatzzeichen und Kodierungstruemmer in CSS-content-Angaben. Mit
Gegenprobe in beide Richtungen -- sie weist an einer selbst gebauten
Datei nach, dass sie anschlaegt, UND dass sie bei einer sauberen
schweigt.
Die erste Fassung der Regel war zu weit: Sie meldete acht KORREKTE
Zeichen (✓, ↯, ↻, „, ⚠). Eine Warnung, die immer kommt, ist keine
Warnung mehr. Die engere Regel kommt aus dem Befund selbst -- der
Latin-1-Block U+0080..U+00BF, in dem echte Typografie nie steht.
Nachgemessen ueber alle 203 content-Angaben im Haus: keine einzige
benutzt ihn.
GEHEIMNISSE STEHEN NICHT MEHR IM PROTOKOLL
einstellungSetzen() schrieb immer Name UND Wert. Nachgemessen in der
echten Datenbank: kopie_schluessel steht vollstaendig drin,
vapid_paar wurde bei 120 Zeichen abgeschnitten -- kurz VOR dem
privaten Teil. Dass der heil blieb, lag an einer Laengengrenze, nicht
an einer Absicht. Keine offene Tuer (das Protokoll liegt hinter
nurAdmin), aber der Wert wandert in jede Sicherung.
Es ist eine REGEL und keine Liste: Wer eine Einstellung so benennt,
meint ein Geheimnis. Stehen bleibt, DASS sich etwas geaendert hat,
wann und durch wen -- nur der Wert fehlt.
EINE VERALTETE PRUEFUNG, UMGEDREHT STATT GELOESCHT
pruef-nachwuchs verlangte, dass die rechte Hand keine Zugaenge
anlegen kann. Das war bis zum 22.09. richtig; dann hat Filipe es
umgedreht ("damit sie das auch machen kann wenn er live ist"). Die
Pruefung war seither rot, ohne dass es auffiel -- sie lief nicht.
Jetzt prueft sie beides: dass die rechte Hand es darf UND dass die
Grenzen stehen (sperren 404, Protokoll 404). Eine Erlaubnis ohne
Grenze ist keine Entscheidung, sondern ein Loch.
Und tools/nachtlauf.mjs wird nachgetragen -- bisher unversioniert.
Zahlen: pruef-nachwuchs 260, pruef-entwicklung 48,
pruef-personen-formular 43, pruef-zeichen 7 (neu), pruef-ports 8.
Co-Authored-By: Claude Opus 5 <[email protected]>
|