Highlights: auf der Agenturadresse gibt es die Rudel-Bretter nicht mehr

Filipe, dringend: "ich kann gerade bei highlights keine videos
hochladen."

DAS HOCHLADEN WAR NICHT KAPUTT. Gemessen an der laufenden Datenbank:
49 Highlights, ALLE mit haus = crew -- so legt hausFuerNeuenEintrag
sie an, ausdruecklich "egal, von welcher Adresse aus jemand
hineinschreibt". Der Adressriegel vom 03.10. zeigt auf der
Agenturadresse aber nur haus = agentur:

    crew.     -> 49 Highlights
    workspace -> 0

Das Brett stand dort leer, und ein eingefuegtes Video verschwand in
derselben Sekunde: angelegt und sofort ausgeblendet. Von aussen sieht
das aus wie "geht nicht hoch". Beleg: Eintrag #77 wurde heute um
08:41 erfolgreich angelegt, #76 gestern von Filipe selbst.

Im Serverlog stand seit Stunden keine Fehlerzeile, und TikTok
antwortet dem Server normal (HTTP 200 in 0,2 s) -- beides geprueft,
bevor im Code gesucht wurde.

ZWEI REGELN WIDERSPRACHEN SICH, und jede fuer sich war richtig:
"diese Bretter sind immer crew" gegen "diese Adresse zeigt nur
agentur". Keine Pruefung konnte das merken, weil keine den
Zwischenraum ansah.

Aufgeloest in Filipes Richtung (Rueckfrage 05.10.): Auf der
Agenturadresse gibt es diese Bretter gar nicht -- 404 statt leerem
Brett. Das ist die Regel vom 24.09. beim Wort genommen: "auf jeder
Adresse nur deren Bestand."

EINE Regel (brettAufDieserAdresse), zwei Tore: die Middleware in
workspace-bereiche.js und die Video-Route, die NICHT an ihr haengt.
Ohne das zweite liesse sich weiterhin etwas anlegen, das danach
niemand sieht -- derselbe Zustand, nur still.

Ohne Adresse (Pruefungen, 127.0.0.1) bleibt alles offen, dieselbe
vorsichtige Richtung wie in nurDiesesHaus.

ZWEIMAL VON DER MESSUNG KORRIGIERT WORDEN:

1. Ich hatte zusaetzlich einen Kachelfilter gebaut. Er war toter
   Code: Auf der Agenturadresse liefert bereicheRoh `null` ("der
   Browser nimmt seine eigene Liste"), und in dieser stehen die
   Rudel-Bretter gar nicht -- weder in start.html noch in
   bereiche.js. Es gab nichts zu filtern. Wieder entfernt: Ein
   Filter, den nichts erreicht, sieht beim Lesen aus wie der Schutz,
   und man sucht den echten nicht mehr.

2. Meine erste Pruefzeile erwartete auf der Agenturadresse
   Serverkacheln und wurde rot -- zu Recht, ich hatte eine Liste
   vermutet, wo keine ist.

pruef-haus-trennung 100 -> 107, beide Richtungen und alle drei Wege
(Kachel, Brett, Video). Die Gegenprobe auf crew. schickt bewusst
KEINE echte TikTok-Adresse: Der Riegel sitzt vor der Adresspruefung,
also beweist 400 ebenso gut, dass er nicht gesprungen ist -- und der
Lauf geht dafuer nicht ins Netz. Mit einer echten Adresse riss der
Server beim Beenden in einen libuv-Absturz (107 Pruefungen, 1 Fehler,
Rueckgabewert 127).

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-10-05 12:19:10 +02:00
co-authored by Claude Opus 5
parent b625d901a5
commit adb265e603
4 changed files with 157 additions and 3 deletions
+93
View File
@@ -996,6 +996,99 @@ console.log("=== Haengt es wirklich an der Adresse? ===");
+ `(${titel(fremd) || "leer"} / ${titel(echt) || "leer"})`);
}
/* =======================================================================
DIE BRETTER DES RUDELS GIBT ES NUR AUF DER CREW-ADRESSE (05.10.2026)
Filipe: "ich kann gerade bei highlights keine videos hochladen."
GEMESSEN AN DER LAUFENDEN DATENBANK, bevor etwas angefasst wurde:
49 Highlights, ALLE mit `haus = crew` -- so legt
`hausFuerNeuenEintrag` sie an, ausdruecklich unabhaengig von der
Adresse. Der Adressriegel vom 03.10. zeigt auf der Agenturadresse
aber nur `haus = agentur`:
crew. -> 49 Highlights
workspace -> 0
Das Brett stand dort leer, und ein eingefuegtes Video verschwand in
derselben Sekunde -- angelegt und sofort ausgeblendet. Von aussen
sieht das aus wie "das Hochladen geht nicht". Belegt: Eintrag #77
wurde heute um 08:41 erfolgreich angelegt.
ZWEI REGELN WIDERSPRACHEN SICH, und keine Pruefung konnte das
merken: Jede fuer sich war richtig. Diese hier misst genau den
Zwischenraum -- deshalb in BEIDE Richtungen und auf allen drei
Wegen (Kachel, Brett, Video). Ein Riegel an nur einem davon waere
derselbe Fehler in leiser.
======================================================================= */
console.log("");
console.log("=== Rudel-Bretter: nur auf crew. ===");
{
const a = await beide("/workspace/api/ich", dogi.keks);
const ziele = (x) => [...(x?.bereiche || []), ...(x?.bereiche_zusatz || [])]
.map((k) => k.ziel || "");
const crewZiele = ziele(a.crew);
const wsZiele = ziele(a.ws);
/* Die Zahl gehoert in die Bedingung: Kaeme gar keine Kachel zurueck,
waere "keine Highlight-Kachel" gruen, ohne etwas gesehen zu haben. */
ok(crewZiele.length > 0 && crewZiele.some((z) => /b=highlight/.test(z)),
`auf crew. steht die Highlights-Kachel (${crewZiele.length} Kacheln)`);
/* AUF DER AGENTURADRESSE SCHICKT DER SERVER GAR KEINE LISTE, und das
ist Absicht: `bereiche === null` heisst "der Browser nimmt seine
eigene". Hier stand zuerst eine Zeile, die dort Agenturbretter
erwartete -- sie wurde rot, und zwar zu Recht: Ich hatte eine
Liste vermutet, wo keine ist. In der Browserliste stehen die
Rudel-Bretter ohnehin nicht (weder in start.html noch in
bereiche.js nachweisbar), deshalb gibt es dort auch nichts
auszublenden -- die Kachel war nie das Problem. */
ok(a.ws?.bereiche === null,
`auf der Agenturadresse kommt bewusst keine Serverliste (${JSON.stringify(a.ws?.bereiche)})`);
ok(!wsZiele.some((z) => /b=highlight/.test(z)),
`und nirgends eine Highlights-Kachel (${wsZiele.length} Zusatzkacheln geprueft)`);
/* ---- Das Brett selbst ------------------------------------------- */
const hl = {
crew: await hole("/workspace/api/bereich/highlight", { host: CREW, keks: dogi.keks }),
ws: await hole("/workspace/api/bereich/highlight", { host: WS, keks: dogi.keks }),
};
ok(hl.crew.status === 200, `das Brett antwortet auf crew. (${hl.crew.status})`);
ok(hl.ws.status === 404,
`auf der Agenturadresse gibt es es gar nicht -- 404 statt leer (${hl.ws.status})`);
/* ---- Und der Weg, auf dem das Video hereinkommt ------------------
Er haengt NICHT an derselben Middleware und braucht seinen
eigenen Riegel. Genau deshalb wird er hier eigens gemessen: Ohne
ihn liesse sich weiterhin etwas anlegen, das danach niemand
sieht -- derselbe Zustand, nur still. */
const video = await hole("/workspace/api/bereich/highlight/video", {
host: WS, keks: dogi.keks, methode: "POST",
rumpf: JSON.stringify({ url: "https://www.tiktok.com/@dogfather/video/1234567890" }),
});
ok(video.status === 404,
`auch ein Video laesst sich von dort nicht mehr einfuegen (${video.status})`);
/* GEGENPROBE: Auf crew. wird es NICHT mit 404 abgewiesen. Die
Adresse ist der Unterschied, nicht etwa eine kaputte Route --
sonst waere die Zeile darueber wertlos. (Dass TikTok die erfundene
Nummer nicht kennt, ist hier egal: Jede Antwort ausser 404 zeigt,
dass der Riegel nicht gegriffen hat.) */
const videoCrew = await hole("/workspace/api/bereich/highlight/video", {
host: CREW, keks: dogi.keks, methode: "POST",
/* ABSICHTLICH KEINE ECHTE TIKTOK-ADRESSE. Der Riegel sitzt VOR der
Adresspruefung: Kommt hier 400 ("keine TikTok-Adresse") zurueck,
ist er nachweislich nicht gesprungen -- und die Pruefung schickt
dabei keine Anfrage ins Netz. Mit einer echten Adresse lief der
Server gegen TikTok, und die offenen Verbindungen rissen ihn
beim Beenden in einen libuv-Absturz: 107 Pruefungen, 1 Fehler,
Rueckgabewert 127. */
rumpf: JSON.stringify({ url: "https://example.invalid/kein-tiktok" }),
});
ok(videoCrew.status === 400,
`Gegenprobe: auf crew. greift der Riegel nicht (${videoCrew.status} statt 404)`);
}
d.close();
try { rmSync(ordner, { recursive: true, force: true }); } catch { /* egal */ }
console.log("");