Files
dogfather-universe/workspace/willkommen.html
T
DogFatherGit 964590ecbb Teilen: der Beitrag stellt sich selbst in den Agentur-Kanal
Filipe: "ich will dass wenn ich es teile im discord der agentur, dass
ein banner und ein kompletter fertiger text fuer die creator entsteht
und nicht einfach der link kopiert wird." Den fertigen Text gibt es
seit fdadd5d5; was fehlte, war der letzte Schritt -- bisher musste er
ihn selbst einfuegen.

NEU AN DER KACHEL: ein Knopf "In den Agentur-Kanal stellen", sobald ein
Kanal eingerichtet ist. Der Browser schickt dabei KEINEN Text mit --
der Server stellt ihn aus denselben Daten noch einmal zusammen. Sonst
koennte jemand mit einem veraenderten Text unter unserem Namen posten.

EINGERICHTET WIRD IM WORKSPACE, NICHT AUF DER KOMMANDOZEILE. Die
Webhook-Adresse IST der Schluessel zum Kanal; ueber einen Befehl
eingetragen landet sie im Chatverlauf, im Bildschirmfoto und in
~/.bash_history -- am 03.09.2026 ist genau das mit einem Token
passiert. Gemessen am 08.10.2026 kann `claudian` die Datei ohnehin
nicht anlegen: /home/dogiweb/workspace-daten ist drwxr-xr-x
dogiweb:dogiweb, und `sudo -l` deckt `dogiweb` nicht ab. Der Dienst
kann es. Damit braucht der Weg keine Rechteaenderung, kein root und
keinen Neustart.

DAS GEHEIMNIS liegt in /home/dogiweb/workspace-daten/discord-webhook.txt
mit 600, wird bei JEDEM Aufruf gelesen (ein Austausch wirkt sofort) und
kommt nie wieder heraus: GET beantwortet nur "ist eingerichtet" und
"seit wann", das Protokoll nennt sie nicht, und die Teilen-Antwort
auch nicht.

DIE SCHRANKEN, jede einzeln gemessen:
  - nur discord.com/discordapp.com/ptb./canary., nur https, nur Wege
    unter /api/webhooks/ -- sonst waere das Feld ein Weg, den Server zu
    beliebigen Zielen sprechen zu lassen
  - nur die Leitung, nur die Agentur-Adresse; von crew.* aus 404 statt
    403, damit man nicht erahnen kann, was es woanders gibt
  - allowed_mentions leer: im Beitrag steht TikToks Text, und ein
    "@everyone" darin wuerde sonst den ganzen Server anpingen
  - keine flags: die Vorschau bleibt an, denn genau sie ist das Banner
  - ohne Teilen-Link keine Nachricht
  - zwoelf je Stunde und Person, gezaehlt im Protokoll (Erfolge UND
    Fehlschlaege -- sonst bremst sie den nicht, der in einer Schleife
    haengt; derselbe Fehler wie am 07.10. an der Kampagnen-Bremse)

SIEBEN NEUE KENNUNGEN, sieben Saetze in meldung.js -- verlangt hat sie
`pruef-meldungen`, nicht mein Gedaechtnis. Jeder Satz sagt auch, was
stattdessen geht: Der Beitrag liegt in jedem Fall zum Kopieren da.

ZWEI FEHLER FANDEN NUR DIE PRUEFUNGEN:
  - teilenRouter.use("/workspace/api/eintrag", angemeldet) deckte die
    neuen Kanal-Wege nicht ab. Ohne req.person ist istLeitung falsch,
    also antworteten sie JEDEM mit 403 "nicht_erlaubt", auch
    DogFather. Es ist ZU gescheitert, nicht auf -- aber die Auskunft
    schickte in die falsche Richtung.
  - Das Datum im Dateikopf kam aus UTC (pruef-struktur): zwischen 00:00
    und 02:00 stuende dort der Vortag, in einer Zeile, die spaeter
    jemand liest, um zu wissen, seit wann der Kanal gilt.

Geprueft: pruef-kampagne 190 -> 226 (Abschnitte 12c und 12d), mit einer
ehrlichen Luecke -- die Dateirechte lassen sich auf Windows nicht
messen, auf dem Server schon; die Schlusszeile sagt jetzt "IN ORDNUNG,
mit Luecke" statt "ALLES IN ORDNUNG". bild-kampagne 53 -> 83
(Kanalfeld vermessen und abgebildet, Eingabefeld 45/46 px auf beiden
Breiten). Dazu gruen: meldungen 10, struktur, css-klassen, zeichen,
deutsche-texte, alle-wege, schranke, ports, portnummern, tippziele,
lesbarkeit, agentur 67, eventkarte 190, workspace-seiten 37,
haus-trennung 107, formulare 23, fingermass.

SECHS GEGENPROBEN am Weg in den Kanal, alle sechs schlagen an:
Rechnerliste uebergangen, Erwaehnungen wieder erlaubt, Vorschau
unterdrueckt, Bremse aus, ohne Teilen-Link gesendet, Adresse in die
Antwort gelegt.

NEBENBEI, UND ES WAR MEIN EIGENER REST: pruef-kampagne-lesen war seit
698c23e2 rot, also seit heute Vormittag. Mit dem Bildleser kamen drei
Pruefdaten in den Ordner, und die Wache dort verlangt zu Recht, dass
nichts Unerklaertes liegenbleibt. Ich hatte sie VOR dem Commit
gemessen und danach nicht noch einmal -- ein Pruefstand von vorher ist
keiner. Die drei sind jetzt benannt, mit Grund, und eine Gegenwache
prueft, dass es jede noch gibt. 186 -> 187, zwei Gegenproben: eine
unbekannte Datei faellt auf, ein toter Eintrag in der Liste auch.
2026-10-08 22:00:04 +02:00

90 lines
3.7 KiB
HTML

<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<title>Willkommen &amp; Anleitung · Team Dogi</title>
<meta name="robots" content="noindex, nofollow" />
<!-- ====================================================================
DIESE SEITE IST UMGEZOGEN (06.10.2026)
Bauplan „Willkommen & Anleitung — Einweisung je Rolle", Kapitel 03:
„Adresse: bleibt willkommen.html. Alte Verweise funktionieren
weiter."
Die Einweisung selbst liegt auf `anleitung.html` — dort war sie für
die Agentur schon gebaut, und am 06.10. hat Team Dogi ihre vier
Fassungen dazubekommen. Zwei Seiten mit demselben Zweck
nebeneinander wären zwei Stände, von denen einer irgendwann
veraltet; was hier stand (eine Liste ALLER Bereiche, gleich
behandelt), ist genau das, was Kapitel 01 des Bauplans als Problem
beschreibt.
DREI WEGE, DAMIT KEINER INS LEERE LÄUFT:
1. `http-equiv="refresh"` — wirkt auch ohne JavaScript.
2. `location.replace` — sofort, und OHNE Eintrag im Verlauf:
Sonst landete man beim Zurückgehen wieder hier und würde
erneut weitergeleitet. Eine Falle, aus der man nicht
herauskommt.
3. Ein sichtbarer Verweis — falls beides nicht greift.
Die Suchparameter werden mitgenommen: Wer mit `?schritt=…` kommt,
soll dort landen, wohin er wollte.
==================================================================== -->
<meta http-equiv="refresh" content="0; url=anleitung.html" />
<link rel="canonical" href="anleitung.html" />
<!-- DIE DREI, DIE JEDE SEITE DIESES HAUSES BRAUCHT (07.10.2026).
pruef-struktur hat sie hier vermisst, und das zu Recht -- auch
wenn diese Seite nur einen Wimpernschlag zu sehen ist:
theme-color sonst zeichnet Android die Fensterleiste WEISS,
und wer aus einem alten Lesezeichen kommt,
bekommt einen hellen Balken ueber einer
durchweg dunklen Seite.
manifest sonst oeffnet die Seite auf dem Handy AUSSERHALB
der App -- die Weiterleitung landet dann im
Browser statt im Workspace.
apple-touch-icon sonst nimmt das iPhone einen Bildschirmabzug,
wenn jemand diese alte Adresse auf den
Startbildschirm legt.
Drei Zeilen sind hier billiger und haltbarer als eine Ausnahme
in der Pruefung: Eine Ausnahmeliste muesste gepflegt werden und
veraltet beim naechsten Umbau. -->
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610082159" />
<style>
/* Bewusst ohne eigenes Stilblatt: Die Seite ist in aller Regel nur
einen Wimpernschlag zu sehen. Ein Stilblatt nachzuladen hiesse,
die Weiterleitung dafuer warten zu lassen. */
body {
margin: 0; min-height: 100svh;
display: grid; place-items: center;
background: #06090f; color: #e8f1fa;
font: 1rem/1.6 system-ui, -apple-system, "Segoe UI", sans-serif;
padding: 24px; text-align: center;
}
a { color: #8ec9ff; min-height: 44px; display: inline-block; padding: 10px 4px; }
</style>
</head>
<body>
<p>
Diese Seite heißt jetzt <strong>Willkommen &amp; Anleitung</strong>.<br />
<a href="anleitung.html" id="weiter">Hier geht es weiter</a>
</p>
<script>
(() => {
const ziel = 'anleitung.html' + (location.search || '');
document.getElementById('weiter').href = ziel;
location.replace(ziel);
})();
</script>
</body>
</html>