Bildleser: den Titel gegenlesen -- und ein Protokollwort, das kein Satz war

ZWEI KLEINE SACHEN, BEIDE DERSELBEN ART: Etwas steht still da und
sieht fast richtig aus.

1. DER TITEL WIRD GEGENGELESEN

Anlass war ein echter Fall aus dem Betrieb: Filipe hat den Bildweg
benutzt, und aus "Refined visuals Goal 1.0" wurde "Refined visvals
Goal 1.0" -- ein u als v. Genau die Verwechslung, die man beim
Korrekturlesen ueberliest, weil das Wort noch fast richtig aussieht.

NACHGEMESSEN, OB DIE SPRACHWAHL HILFT: auf dem Server gegen die
gespeicherte Pruefdatei mit deu, eng, deu+eng und eng+deu -- alle vier
lesen "visuals" RICHTIG. Der Fehler liess sich also nicht nachstellen,
und eine Einstellung zu aendern, deren Wirkung man nicht messen kann,
ist Raten, das danach wie eine Loesung aussieht. Es bleibt bei `deu`.

Was stattdessen hilft: Der Titel steht auf der Seite ZWEIMAL -- oben
als Ueberschrift (gross, fett) und im Raster hinter "Gruppenname"
(klein, normal). Zwei Schriftgroessen heisst zwei Gelegenheiten, sich
zu verlesen, und zwar unabhaengig voneinander. Gehen die Lesungen
auseinander, sagt die Kachel es, und beide stehen im Auszug.

EIN HINWEIS, KEINE ABLEHNUNG -- anders als beim Zeitraum. Ein falsches
Datum ist eine Falschauskunft: Die Kachel behauptet einen Termin, den
sie nicht kennt, und niemand sieht es ihr an. Ein verlesener Buchstabe
im Titel ist ein Schoenheitsfehler; daran eine ganze Kachel scheitern
zu lassen waere unverhaeltnismaessig.

2. "Kampagne bremse" IST KEIN SATZ

Die Protokollseite baut ihren Anzeigetext aus dem Schluessel:
`aktionLesbar()` in personen.js macht aus Unterstrichen Leerzeichen
und schreibt nur den ersten Buchstaben gross. Aus `kampagne_bremse`
wurde damit "Kampagne bremse" -- Maschinensprache mit einem grossen
Anfangsbuchstaben.

Gemessen an allen sechs Woertern dieses Hauses war es das einzige
kaputte: "Kampagne eingelesen", "Kampagne gescheitert", "Event
geteilt" und sogar "Event zurueckgezogen" (die Umlautliste macht
daraus "zurueckgezogen" mit u-Umlaut) lesen sich als Satz. Die Regel
dahinter: Hauptwort plus Mittelwort, nie zwei Hauptwoerter.

UND DAS UMBENENNEN WAR UMSONST ZU HABEN -- vorher gezaehlt, weil es
bei Altbestand eine andere Rechnung waere: In der Live-Datenbank steht
KEINE Zeile mit dem alten Wort (die Bremse hat nie gegriffen; zum
Vergleich event_geteilt 7, kampagne_eingelesen 3). Es gibt also
nichts, was danach krumm angezeigt wuerde.

GEPRUEFT: 48 (Bildleser, +5 mit Gegenprobe, dass der Hinweis NICHT
immer kommt), 190 (Route, unveraendert). Keine ausgelieferte Datei
beruehrt, also kein neuer Stempel noetig.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-10-08 12:17:57 +02:00
co-authored by Claude Opus 5
parent 0d52c4dc05
commit 354dfd9be9
4 changed files with 133 additions and 6 deletions
+27 -3
View File
@@ -235,7 +235,7 @@ export function istCreatorNetwork(roh) {
* einen Abruf nach draussen aus, ohne gezaehlt zu werden. Gemessen:
* 21 Versuche, 0 gebremst.
*
* "kampagne_bremse" steht BEWUSST nicht in der Liste: Sonst zaehlte
* "kampagne_gebremst" steht BEWUSST nicht in der Liste: Sonst zaehlte
* die Bremse ihre eigenen Meldungen mit und verlaengerte sich
* selbst -- man kaeme nie wieder heraus. */
function versucheLetzteStunde(personId) {
@@ -572,7 +572,30 @@ kampagneRouter.post("/workspace/api/kampagne/einlesen", async (req, res) => {
const min = Math.max(1, Math.ceil((frei.getTime() - Date.now()) / 60000));
/* Hier NICHT über `schiefgegangen`: Sonst zählte die Bremse
ihre eigene Meldung mit und verlängerte sich selbst. */
protokolliere("kampagne_bremse", {
/* HAUPTWORT PLUS MITTELWORT, NIE ZWEI HAUPTWOERTER
(berichtigt 08.10.2026).
Die Protokollseite baut ihren Anzeigetext aus dem
Schluessel: `aktionLesbar()` in personen.js macht aus
Unterstrichen Leerzeichen und schreibt nur den ERSTEN
Buchstaben gross. Aus `kampagne_bremse` wurde damit
„Kampagne bremse" -- Maschinensprache mit einem grossen
Anfangsbuchstaben, und genau davor warnt
pruef-meldungen.
Gemessen an den anderen fuenf Woertern dieses Hauses:
„Kampagne eingelesen", „Kampagne gescheitert", „Event
geteilt", „Event zurueckgezogen" (die Umlautliste macht
daraus „zurückgezogen") lesen sich als Satz. Nur dieses
eine nicht.
UMBENENNEN WAR HIER UMSONST ZU HABEN: Gemessen am
08.10.2026 steht in der Live-Datenbank KEINE einzige
Zeile mit dem alten Wort -- die Bremse hat noch nie
gegriffen. Es gibt also keinen Altbestand, der danach
krumm angezeigt wuerde. Bei einem Wort mit Zeilen in der
Tabelle waere die Rechnung eine andere. */
protokolliere("kampagne_gebremst", {
personId: person.id, rolle: person.rolle, ip,
detail: `${anzahl} Versuche in einer Stunde`,
});
@@ -871,7 +894,8 @@ kampagneRouter.post("/workspace/api/kampagne/bild",
if (anzahl >= KAMPAGNEN_JE_STUNDE) {
const frei = new Date(Date.parse(aeltester) + 3600_000);
const min = Math.max(1, Math.ceil((frei.getTime() - Date.now()) / 60000));
protokolliere("kampagne_bremse", {
/* Dasselbe Wort wie oben -- Begruendung dort. */
protokolliere("kampagne_gebremst", {
personId: person.id, rolle: person.rolle, ip,
detail: kurz(`bild: ${anzahl} in der letzten Stunde`),
});