pruef-gifs war nicht kaputt, sondern nachts rot -- und ein Weg war ungeprüft
DIE ZWEI FEHLER AUS DEM LETZTEN LAUF WAREN KEINE FEHLER AM PRODUKT.
FEHL das GIF steht danach wirklich im Verlauf
FEHL und die Tafel geht zu -- man will sehen, wie es ankommt
Gemessen statt geraten: eine Sonde, die jede Anfrage mitschreibt. Die
Antwort stand sofort da, um 04:30 Uhr:
POST /workspace/api/chat/raeume/1/gif
403 {"fehler":"Das Rudel schläft. Ab 06:00 Uhr geht es weiter …",
"nachtruhe":{"zu":true,"ab":0,"bis":6,"minuten":90}}
Die Pruefung klickte „das erste Gespraech in der Liste". Das erste ist
der TREFF, den der Server beim Start selbst anlegt -- und im Treff gilt
die Nachtruhe von 0 bis 6 Uhr. Also: tagsueber gruen, nachts rot, seit
es diese Pruefung gibt. Es ist derselbe Fehler wie am 06.09. im Shop
(„ein Test, der die Wanduhr als Annahme benutzt, misst irgendwann das
Gegenteil") -- dort ein Oeffnungstermin, hier ein Raum mit Nachtruhe.
Warum es nie jemandem auffiel: Fuer Dogfather Universe gibt es keinen
naechtlichen Pruefdienst (nachgesehen: `systemctl list-timers` kennt nur
`vandiy-pruefung` und `runone-pruefung`). Die Pruefung lief immer nur
dann, wenn jemand sie von Hand startete -- und das war bisher nie
nachts.
WAS GEAENDERT IST
1. pruef-gifs legt ein eigenes Gespraech mit Miss an und oeffnet GENAU
DAS. Fuer ein normales Gespraech gibt es keine Nachtruhe; die Messung
gilt jetzt rund um die Uhr. Findet es den Knopf nicht, bricht es laut
ab statt still auf nichts zu klicken.
Gemessen, 04:40 Uhr:
verschicken: {"vorher":0,"nachher":1,"imVerlauf":true,
"adressen":["/workspace/api/chat/anhang/1"],
"tafelZu":true}
17 Pruefungen, 0 Fehler. Und nebenbei belegt die Adresse, was der
Quelltext behauptet: Das GIF wird KOPIERT und haengt danach als
ganz normaler Anhang an der Nachricht.
2. DIE NACHTRUHE IST NICHT UNTER DEN TISCH GEFALLEN -- sie steht jetzt
dort, wo sie hingehoert: in pruef-treffchat (110 -> 114). Dort wird
das Fenster ueber die EINSTELLUNG verschoben, nicht ueber die
Systemuhr, und beide Zustaende kommen in einem Lauf vor.
DENN DER GIF-WEG WAR DORT ALS EINZIGER DER DREI UEBERHAUPT NICHT
GEPRUEFT. Im Quelltext steht neben der Regel woertlich: „Sie nur
beim Text und beim Anhang zu pruefen hiesse, dass man nachts zwar
nicht schreiben, aber ein GIF schicken kann -- der Weg, den jeder
findet, der es einmal versucht." Genau dieser Weg hatte keine
Pruefung. Der Kommentar hat den Fehler beschrieben und nicht
verhindert -- dieselbe Luecke wie beim Spaltenverlust vom 11.09.
Gemessen, beide Zweige in einem Lauf:
Fenster 7–9 Uhr, jetzt 4 -> 404 „Dieses GIF gibt es nicht mehr."
Fenster 4–6 Uhr, jetzt 4 -> 403 „Das Rudel schläft. Ab 06:00 …"
ZWEI ENTSCHEIDUNGEN DABEI, beide mit Grund:
· Gefragt wird als DogFather, nicht als Gast. Die GIF-Kiste gehoert
dem Rudel; ein Gast bekaeme seine 403 von der falschen Schranke
(`nurRudel`) -- gruen, ohne die Nachtruhe je beruehrt zu haben.
· Mit einer Nummer, die es NICHT gibt. Kommt trotzdem die
Nachtruhe-Absage, steht die Schranke VOR dem Nachschlagen.
Stuende sie dahinter, verriete der Server nachts an der Nummer,
welche GIFs es gibt.
AM PRODUKT IST NICHTS GEAENDERT. Nur zwei Pruefdateien -- kein Stempel,
kein Neustart noetig.
GEPRUEFT: pruef-gifs 17 ok (vorher 15 ok / 2 FEHL) ·
pruef-treffchat 114 ok (vorher 110).
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -335,6 +335,34 @@ let treffId = null;
|
||||
{ cookie: kGast, "Content-Type": "image/png" }, { egal: 1 });
|
||||
ok(anhang.code === 403, `auch kein Anhang (${anhang.code})`);
|
||||
|
||||
/* ==== UND DAS GIF (02.10.2026) ==================================
|
||||
|
||||
Neben dieser Regel steht in workspace-chat.js woertlich: „Sie
|
||||
nur beim Text und beim Anhang zu pruefen hiesse, dass man
|
||||
nachts zwar nicht schreiben, aber ein GIF schicken kann -- der
|
||||
Weg, den jeder findet, der es einmal versucht."
|
||||
|
||||
Genau dieser dritte Weg war bis heute der einzige, den keine
|
||||
Pruefung je gegangen ist. Der Kommentar hat den Fehler
|
||||
beschrieben und nicht verhindert -- dieselbe Sorte Luecke wie
|
||||
beim Spaltenverlust vom 11.09.
|
||||
|
||||
GEFRAGT WIRD ALS DOGFATHER, nicht als Gast. Die GIF-Kiste
|
||||
gehoert dem Rudel; ein Gast bekaeme seine 403 von der FALSCHEN
|
||||
Schranke (`nurRudel`), und die Messung waere wertlos -- grün,
|
||||
ohne die Nachtruhe je berührt zu haben.
|
||||
|
||||
UND MIT EINER NUMMER, DIE ES NICHT GIBT. Das ist Absicht:
|
||||
Kommt trotzdem die Nachtruhe-Absage, steht die Schranke VOR
|
||||
dem Nachschlagen. Stuende sie dahinter, verriete der Server
|
||||
nachts an der Nummer, welche GIFs es gibt. */
|
||||
const gifNachts = await ruf(`/workspace/api/chat/raeume/${treffId}/gif`, CREW, "POST",
|
||||
{ cookie: kDogi }, { gif_id: 999999 });
|
||||
ok(gifNachts.code === 403, `auch kein GIF (${gifNachts.code})`);
|
||||
ok(/schläft/i.test(json(gifNachts).fehler || ""),
|
||||
"und zwar wegen der Nachtruhe, nicht wegen der Nummer: "
|
||||
+ `„${(json(gifNachts).fehler || "").slice(0, 44)}…“`);
|
||||
|
||||
/* GELESEN WERDEN DARF DIE GANZE NACHT. Sonst waere es keine
|
||||
Nachtruhe, sondern eine geschlossene Tuer -- und wer nachts
|
||||
nachsehen will, was los war, koennte es nicht. */
|
||||
@@ -366,6 +394,18 @@ let treffId = null;
|
||||
} else {
|
||||
ok(a.code === 201 || a.code === 200, `ein Gast kann schreiben (${a.code})`);
|
||||
ok(b.code === 201 || b.code === 200, `ein Modi auch (${b.code})`);
|
||||
|
||||
/* DIE GEGENPROBE ZUM GIF. Dieselbe Anfrage, dieselbe erfundene
|
||||
Nummer wie im Nachtzweig -- bei Tag MUSS die Absage vom
|
||||
Nachschlagen kommen und nicht von der Nachtruhe. Ohne diese
|
||||
Zeile waere „auch kein GIF" oben auch dann gruen, wenn die
|
||||
Schranke rund um die Uhr zu waere. */
|
||||
const gifTags = await ruf(`/workspace/api/chat/raeume/${treffId}/gif`, CREW, "POST",
|
||||
{ cookie: kDogi }, { gif_id: 999999 });
|
||||
ok(gifTags.code === 404,
|
||||
`beim GIF antwortet bei Tag das Nachschlagen, nicht die Nachtruhe (${gifTags.code})`);
|
||||
ok(!/schläft/i.test(json(gifTags).fehler || ""),
|
||||
` und kein Wort von Schlaf („${(json(gifTags).fehler || "").slice(0, 44)}")`);
|
||||
}
|
||||
|
||||
if (!NACHTLAUF) {
|
||||
|
||||
Reference in New Issue
Block a user