Files
dogfather-universe/workspace/willkommen.html
T
DogFatherGitandClaude Opus 5 5d9c8cd377 Haustrennung: kein Eintrag mehr aus dem anderen Haus
Filipe, 24.09.2026: "wenn ich bei der einen was mache soll nichts bei
der anderen passieren." -- und heute: "ja los".

GEMESSEN, BEVOR ETWAS ANGEFASST WURDE (jedes Brett x beide Adressen x
vier Rollen):

  AGENTUR-Adresse   DogFather  18 Bretter
                    Manager     6 Bretter
                    Creator     6 Bretter
                    Modi        kommt nicht rein (401)
  CREW-Adresse      DogFather  18 Bretter
                    Modi       13 Bretter
                    Manager     kommt nicht rein (401)
                    Creator     kommt nicht rein (401)

Die Anmeldung war also dicht. Durch griff genau EINE Rolle: DogFather.
Er wohnt in beiden Haeusern, und die Riegel in sichtbarEintrag()
fragten nach der ROLLE, nicht nach der Adresse. Auf der Crew-Adresse
stand damit das Brett der Agentur samt Inhalt.

Nachgemessen ist der Durchgriff AELTER als der gestrige Eventkarten-
Umbau -- zweimal gemessen, mit und ohne ihn, gleiches Ergebnis.

RIEGEL 0 in sichtbarEintrag(): Wer auf einer Adresse angemeldet ist,
sieht nur Eintraege dieses Hauses. Er haengt den uebrigen Riegeln
UM, statt in jeden Ausgang geschrieben zu werden -- die Funktion hat
drei Rueckgabepunkte, und der naechste waere sonst wieder offen.

Nachher, dieselbe Messung: DogFather sieht auf der Agenturadresse nur
Agentur-Eintraege, auf der Crew-Adresse nur die des Rudels. Manager,
Creator und Modi unveraendert.

WAS DABEI SCHIEFGING UND WIE ES AUFFIEL

1. Die erste Fassung liess bei `haus IS NULL` den BEREICH entscheiden.
   pruef-haus-trennung.mjs wurde sofort rot: "Lunas Live vom Montag"
   verschwand von der Agenturadresse. `live`, `technik` und
   `community` tragen BEIDES -- die Kacheln von Team Dogi und die
   Creator-Akten. Eine Regel, die jedem Brett genau ein Haus zuweist,
   kann das nicht. Jetzt bleibt ein Eintrag ohne Haus sichtbar: ein
   Eintrag zu viel faellt auf, ein fehlender nicht.

2. Damit NULL kein Dauerloch ist: FUENF von ACHT Stellen, die
   Eintraege anlegen, setzten `haus` gar nicht (workspace-video.js,
   -content.js, -bewerbung.js, -treff.js, -vorlagen.js). Nachgetragen.

3. Und `person.haus` war dafuer der falsche Massstab: Legt DogFather
   ueber die Agenturadresse ein Highlight an, gehoert es trotzdem dem
   Rudel -- sonst sieht die Community es nie. pruef-treff.mjs hat das
   gefunden (2 Fehler). Neu: hausFuerNeuenEintrag() -- bei den sieben
   Brettern des Rudels entscheidet das BRETT, sonst die Adresse.

NEU: pruef-haus-luecke.mjs (12 Pruefungen). Sie sucht die
Einfuege-Stellen im Quelltext und wird rot, sobald eine neunte
dazukommt, die `haus` vergisst -- mit Gegenprobe, dass das Suchmuster
eine solche Stelle auch wirklich erkennt. Ein Kommentar daneben haette
es nicht verhindert; das steht so schon im Projektgedaechtnis.

NEBENBEI: In bereich.js stand seit gestern `|| "Agentur-Events"` als
Rueckfall fuer das Etikett der Vorschau. pruef-treff.mjs verbietet
das zu Recht -- wie ein Brett heisst, haengt am Haus, und der Server
sagt es. Der Rueckfall ist weg; fehlt die Angabe, steht lieber kein
Etikett da als ein falsches.

pruef-treff.mjs nachgezogen (85 -> 86 Pruefungen, nicht weniger): Die
Zusage "DogFather sieht den Beitrag" wird jetzt auf der Crew-Adresse
geprueft, mit Gegenprobe fuer die Agenturadresse.

GEPRUEFT, alle gruen:
  pruef-haus-luecke     12    pruef-haus-trennung  100
  pruef-crew-adresse   169    pruef-treff           86
  pruef-eventkarte      77    pruef-agentur         62
  pruef-haus-seiten     38    pruef-eintrag-bild    24
  pruef-vorlagen        24    pruef-video, -content, -bewerbung,
                              -bereiche-lesend: in Ordnung

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-10-03 23:33:03 +02:00

88 lines
4.0 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 · Team Dogi</title>
<meta name="robots" content="noindex, nofollow" />
<!-- app.webmanifest, NICHT crew.webmanifest -- die Adresse biegt es um.
Der Server ersetzt den Pfad auf crew. an EINER Stelle
(crew-adresse.js). Wer hier das Crew-Manifest direkt nennt,
macht daraus eine zweite Stelle, die beim naechsten Umbau
vergessen wird. -->
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610032333" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610032333" />
<link rel="stylesheet" href="assets/css/gate.css?v=202610032333" />
<link rel="stylesheet" href="assets/css/start.css?v=202610032333" />
<link rel="stylesheet" href="assets/css/willkommen.css?v=202610032333" />
<link rel="stylesheet" href="assets/css/module.css?v=202610032333" />
<link rel="stylesheet" href="assets/css/haus.css?v=202610032333" />
</head>
<!-- KOERPERKLASSE "start", NICHT "gate" (berichtigt 21.09.2026).
`body.gate` ist die Anmeldewand: `display:flex; align-items:center`,
gedacht fuer EINE zentrierte Karte. Damit standen Kopfleiste und
Inhalt NEBENEINANDER -- am Handy blieben dem Text 260 von 390
Pixeln, am Rechner klebte alles am rechten Rand. Gesehen hat das
kein gruener Haken, sondern das Bildschirmfoto. -->
<body class="start" data-ton="34" data-buehne="lounge">
<div class="schleier" aria-hidden="true"></div>
<header class="kopfleiste">
<button type="button" class="zurueck-knopf" id="zurueck">
<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M15 5l-7 7 7 7"/></svg>
<span class="zurueck-knopf__text">Übersicht</span>
</button>
<p class="marke"><span class="marke__text"><a class="zurueck" href="start.html">Team&nbsp;Dogi</a> · Willkommen</span></p>
<div class="kopfleiste__rechts">
<span class="wer" id="wer">…</span>
<button type="button" class="abmelden" id="abmelden">Abmelden</button>
</div>
</header>
<main class="inhalt" id="haupt" aria-busy="true">
<!-- DIE BEGRÜSSUNG.
Der Name steht NICHT im HTML, sondern kommt vom Server -- eine
Seite, die jeder herunterlädt, soll keinen fremden Namen
enthalten. Bis er da ist, steht hier ein Satz, der auch ohne
Namen stimmt: "Willkommen!" ist nie falsch. -->
<section class="w-gruss">
<h1 class="w-gruss__titel" id="gruss">Willkommen!</h1>
<p class="w-gruss__rolle" id="rollentext" hidden></p>
<p class="w-gruss__was" id="einleitung-was"></p>
<p class="w-gruss__dazu" id="einleitung-dazu"></p>
</section>
<!-- Die Hinweise, die zur Rolle gehören und zu keiner Kachel. -->
<section class="w-hinweise" id="hinweise" hidden></section>
<!-- DIE KACHELN, ERKLÄRT. Sie werden aus derselben Liste gebaut wie
die Startseite -- deshalb steht hier nur der leere Behälter. -->
<section class="w-bereiche">
<h2 class="w-bereiche__titel">Was es hier gibt</h2>
<p class="w-bereiche__satz" id="bereiche-satz">
Jede Kachel, die für dich freigeschaltet ist — und wofür sie da ist.
Tipp eine an, um hinzugehen.
</p>
<div id="gruppen"></div>
</section>
<p class="w-laedt" id="laedt">Einen Moment …</p>
<p class="fehler" id="fehler" hidden></p>
</main>
<script src="assets/js/meldung.js?v=202610032333" defer></script>
<script src="assets/js/bereiche.js?v=202610032333" defer></script>
<script src="assets/js/wahl.js?v=202610032333" defer></script>
<script src="assets/js/nachfrage.js?v=202610032333" defer></script>
<script src="assets/js/installieren.js?v=202610032333" defer></script>
<script src="assets/js/kopf.js?v=202610032333" defer></script>
<script src="assets/js/glocke.js?v=202610032333" defer></script>
<script src="assets/js/willkommen.js?v=202610032333" defer></script>
</body>
</html>