Der Treff zieht in Team Dogi ein — die dritte Adresse ist wieder weg

Filipe, nachdem er die dritte Wand gesehen hatte: "das soll keine app
für sich sein, dass soll in der crew seite adaptiert werden, da rein
perfektionniert."

WAS VERSCHWINDET: treff.dogfather-universe.com samt Weiche
(treff-adresse.js), Zugangswand, Manifest und acht Bühnenbildern. Kein
DNS-Eintrag, kein zweiter Caddy-Block, kein zweites App-Symbol.

Die Gründe, die DAFÜR sprachen, stehen jetzt als Kommentar in
crew-adresse.js statt als Code -- sie gelten weiter, und beim nächsten
Mal wird jemand dieselbe Idee haben: eine App je Ursprung, und ein
Schloss mehr zwischen der Community und den Daten der Agentur.

WAS DER VERZICHT KOSTET, benannt statt übersehen:
 · Die Community steht vor derselben Wand wie das Team und liest dort
   die Namen der drei Team-Rollen. Filipes Entscheidung auf die Frage:
   vierte Kachel "Community" statt gar keiner Kacheln.
 · Ein Schloss weniger. Was vorher die Adresse getrennt hat, muss jetzt
   jede einzelne Regel halten -- deshalb prüft pruef-treff-werkzeuge
   seit heute zehn Dinge mehr (70 statt 60).

EINE LÜCKE, DIE DABEI AUFGEFALLEN IST -- und die es schon vorher gab:
Ein Mitglied der Community stand in der Auswahl, wen man zu einem
Termin einlädt, wem man eine Aufgabe gibt und mit wem man einen Chat
anfängt. Für DogFather bedeutet fast jede Liste "alle". Jetzt zu, über
eine Hülle (ohneAussen) um die fünf Listen, die von Zusammenarbeit
handeln -- damit sie auch für die Listen gilt, die es noch nicht gibt.
Die Verwaltungsliste in "Personen & Zugänge" zeigt sie weiterhin, sonst
legt er einen Zugang an und der verschwindet im selben Moment.

DREI BEFUNDE AUS DEN PRÜFUNGEN, wieder keiner vom Lesen:
 · Mein eigener Kommentar auf der Wand nannte eine Rolle der Agentur --
   in einer Datei, die jedes Community-Mitglied im Quelltext liest.
   Zum zweiten Mal an einem Tag, und zum zweiten Mal ausgerechnet in
   einem Kommentar, der erklärt, warum man das nicht tut.
 · Die Prüfung "der Satz nennt die Modis" durchsuchte den QUELLTEXT und
   wäre grün geblieben, obwohl der Satz auf dem Bildschirm längst ein
   anderer ist -- sie fand ihn in einem Kommentar. Sie misst jetzt die
   sichtbare Unterzeile.
 · Der erste Entwurf der Adressregel sperrte die Community auch auf
   localhost aus -- eine Bedingung durch AUSSCHLUSS, zum dritten Mal an
   einem Tag. Jede Zeile nennt jetzt die Adresse, FÜR DIE sie gilt.

Und zwei feste Zahlen weniger: Die Kachelreihe wird nicht mehr gezählt,
sondern beim Namen genannt (admin, hand, modi, gast) -- eine Zahl war
dort schon zweimal rot, ohne dass etwas kaputt war. Der App-Name wird
nicht nur geprüft, sondern der UNTERSCHIED zur Agenturadresse.

Die App heißt auf crew. jetzt "DogFather Universe" statt "Team Dogi" --
sie gehört ab heute beiden (Entscheidung Filipe).

Geprüft: rollen 312 · crew-adresse 132 · kalender 104 · sicht 84 ·
modi-verborgen 80 · chat-kanaele 79 · treff-werkzeuge 70 · haus-trennung
62 · treff 58 · chat 48 · treff-seiten 42 · bereiche-lesend 37 ·
start-ansicht 147 · css-klassen 30 · zwischenspeicher 21 · alle-wege 19 ·
rechtetafel 19 -- alles grün.

Die 58 bei pruef-treff sind elf weniger als gestern: Mit der dritten
Adresse fallen ihre 26 Weichen-Prüfungen weg, ersetzt durch 10 für die
eine Wand plus die neuen in 7b.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-11 18:38:05 +02:00
co-authored by Claude Opus 5
parent 1ebaf8a864
commit 39dd666b17
47 changed files with 856 additions and 987 deletions
+64 -26
View File
@@ -105,14 +105,36 @@ export const TEAM_DOGI_ROLLEN = new Set(["hand", "modi"]);
bekommt nur, was ausdruecklich fuer sie da ist. */
export const AUSSEN_ROLLEN = new Set(["gast"]);
/* Die Adresse des Treffs. Eigene Wand, eigenes Haus -- und ausdruecklich
NICHT crew.: Diese Adresse ist absichtlich verborgen (kein Eintrag bei
Suchmaschinen, keine Rollennamen in ausgelieferten Dateien, Codes nur
persoenlich). Dutzende Zuschauer heben jede dieser Eigenschaften auf.
Nicht durch einen Fehler, sondern durch die Nutzung. */
const TREFF_HOSTS = new Set(["treff.dogfather-universe.com"]);
/* DER TREFF HAT KEINE EIGENE ADRESSE (Entscheidung Filipe, 11.09.2026:
"das soll keine app fuer sich sein, das soll in der crew seite
adaptiert werden").
/** Die Adresse der Modi-App. Feste Menge, kein Muster -- Falle 1. */
Am Vormittag stand hier treff.dogfather-universe.com -- eine dritte
Tuer mit eigener Wand, eigenem Manifest, eigenen Buehnenbildern. Sie
ist wieder weg, und das gehoert aufgeschrieben, weil die Gruende
dafuer weiterhin gelten und beim naechsten Mal jemand dieselbe Idee
haben wird:
WAS DAFUER SPRACH: Auf einem Ursprung laesst sich genau EINE App
installieren. Und zwischen einem Mitglied der Community und den
Daten der Agentur stand damit ein Schloss mehr.
WAS DAGEGEN ENTSCHIEDEN HAT: Es waere ein drittes Haus gewesen --
mit eigener Wand, eigenem Namen, eigener App neben Team Dogi. Der
Treff ist aber kein drittes Haus, sondern ein Raum in Dogis.
WAS DER VERZICHT KOSTET, ehrlich benannt: Die Community steht jetzt
vor derselben Wand wie das Team und liest dort die Namen der drei
Team-Rollen (Filipes Entscheidung: vierte Kachel "Community" statt
gar keiner Kacheln). Und sie ist auf demselben Ursprung angemeldet
wie die Modis -- die Trennung haengt damit allein an der
Rechtetafel und an sitzungLesen(), nicht mehr zusaetzlich an der
Adresse. Das ist der Grund, warum pruef-treff seit heute NICHT
weniger prueft, sondern mehr: Was vorher die Adresse erledigt hat,
muss jetzt jede einzelne Regel halten. */
/** Die Adresse von Team Dogi -- und seit 11.09.2026 auch die des
* Treffs. Feste Menge, kein Muster -- Falle 1. */
const CREW_HOSTS = new Set(["crew.dogfather-universe.com"]);
/** Die echten Adressen, auf denen ein Modi nichts verloren hat.
@@ -155,11 +177,6 @@ export function istPruefAdresse(hostKopfzeile) {
|| h === "::1" || h === "[::1]";
}
/** Ist das die Adresse des Treffs? */
export function istTreffAdresse(hostKopfzeile) {
return TREFF_HOSTS.has(nurHost(hostKopfzeile));
}
/** Gehoert dieser Pfad zum Workspace-Teil? Genau "/workspace" oder
* alles darunter -- aber NICHT /workspaceXYZ (Falle 3). */
export function istWorkspacePfad(pfad) {
@@ -197,9 +214,12 @@ export function istWorkspacePfad(pfad) {
die jede Wand im Browser ansehen, keine mehr oeffnen -- sie blieben
gruen und wuerden nichts mehr messen. Ein gruener Lauf, der nichts
mehr prueft, ist schlimmer als ein roter. */
/* EINE benannte Wand, seit der Treff keine eigene mehr hat. Die Tafel
bleibt trotzdem eine Tafel und wird nicht wieder zum Sonderfall: Sie
ist der Ort, an dem die naechste Wand eingetragen wird, ohne dass
jemand drei Bedingungen umbauen muss. */
const BENANNTE_WAENDE = [
{ datei: "/workspace/crew-index.html", zuhause: istCrewAdresse },
{ datei: "/workspace/treff-index.html", zuhause: istTreffAdresse },
];
/** Wird hier eine Wand verlangt, die zu einer ANDEREN Tuer gehoert? */
@@ -212,8 +232,7 @@ export function istFremdeWand(hostKopfzeile, pfad) {
const wand = BENANNTE_WAENDE.find((w) => w.datei === p);
if (!wand) return false;
if (istPruefAdresse(hostKopfzeile)) return false;
const benannt = istOhneModiAdresse(hostKopfzeile)
|| istCrewAdresse(hostKopfzeile) || istTreffAdresse(hostKopfzeile);
const benannt = istOhneModiAdresse(hostKopfzeile) || istCrewAdresse(hostKopfzeile);
if (!benannt) return false;
return !wand.zuhause(hostKopfzeile);
}
@@ -234,18 +253,37 @@ export function sitzungPasstZurAdresse(rolle, hostKopfzeile) {
/* AUSSENROLLEN GEHOEREN AUF GENAU EINE ADRESSE (11.09.2026).
Und die Bedingung steht in BEIDE Richtungen: Die Community kommt
nur auf treff. herein, und auf treff. kommt NUR sie herein. Das
Team sieht den Treff auf seiner eigenen Adresse -- es hat dort
nichts zu suchen, und ein Konto, das an zwei Waenden funktioniert,
ist eine Tuer, die man beim naechsten Umbau uebersieht. */
NUR auf crew. herein (dort liegt der Treff), und auf den alten
Adressen kommt sie gar nicht herein. Ein Konto, das an zwei
Waenden funktioniert, ist eine Tuer, die man beim naechsten Umbau
uebersieht.
SEIT DEM 11.09.2026 IST DIESE ADRESSE crew. UND NICHT treff.
(Filipe: "das soll keine app fuer sich sein"). Die Richtung der
Regel hat sich dadurch umgedreht, die Regel selbst nicht: Es gibt
genau eine Adresse, auf der die Community angemeldet sein darf. */
const aussen = AUSSEN_ROLLEN.has(rolle);
if (istTreffAdresse(hostKopfzeile)) return aussen;
if (aussen) return false;
/* crew.: das Team -- und DogFather, der in beiden Welten arbeitet. */
if (istCrewAdresse(hostKopfzeile)) return team || rolle === "admin";
/* Die echten alten Adressen: alle ausser dem Team. */
if (istOhneModiAdresse(hostKopfzeile)) return !team;
/* localhost, Pruefadressen: unberuehrt. */
/* crew.: das Team, die Community -- und DogFather, der in beiden
Welten arbeitet. */
if (istCrewAdresse(hostKopfzeile)) return team || aussen || rolle === "admin";
/* Die echten alten Adressen: alle ausser dem Team und der Community. */
if (istOhneModiAdresse(hostKopfzeile)) return !team && !aussen;
/* localhost, Pruefadressen: unberuehrt.
UND DAS GILT AUCH FUER DIE COMMUNITY (gemessen 11.09.2026). Der
erste Entwurf hatte hier ein "wer von aussen ist, kommt sonst
nirgends herein" stehen -- eine Bedingung durch AUSSCHLUSS, und sie
traf damit auch localhost. Ergebnis: Jede Pruefung des Treffs haette
ab sofort gemessen, dass ein Mitglied nirgends hereinkommt, und
waere gruen geblieben, ohne noch irgendetwas zu pruefen. Genau die
Falle, vor der oben in diesem Kopf Nummer 2 warnt -- und ich bin
am selben Tag zum dritten Mal hineingelaufen.
Jetzt nennt jede Zeile die Adresse, FUER DIE sie gilt. Wer eine
vierte baut, faellt hier unten heraus und bekommt "erlaubt" --
das ist auf einer Pruefadresse richtig und auf einer echten faellt
es sofort auf, weil pruef-crew-adresse jede echte Adresse
einzeln aufzaehlt. */
return true;
}