diff --git a/server/pruef-haus-trennung.mjs b/server/pruef-haus-trennung.mjs
index dec18a2e..14bffd05 100644
--- a/server/pruef-haus-trennung.mjs
+++ b/server/pruef-haus-trennung.mjs
@@ -192,8 +192,64 @@ console.log("=== Was DogFather zu sehen bekommt ===");
`auf workspace. bleibt die Kachelliste die der Datei (${a.ws?.bereiche === null ? "null" : "eigene Liste"})`);
ok(Array.isArray(a.crew?.bereiche) && a.crew.bereiche.length > 0,
`auf crew. schickt der Server eine eigene (${a.crew?.bereiche?.length})`);
- ok(aufWs.includes("Rückmeldung"),
- "und die Team-Kachel steht dort ebenfalls -- er sieht seine Daten auch dort");
+ /* HIER STAND DAS GEGENTEIL -- UND DAS IST EINE ENTSCHEIDUNG VON
+ FILIPE, KEINE KORREKTUR (21.09.2026).
+
+ Bis heute verlangte diese Zeile, dass die Team-Kachel
+ "Rueckmeldung" AUCH auf der Agenturadresse steht: "er sieht seine
+ Daten auch dort". Gemessen am 21.09. waren es siebzehn solcher
+ Kacheln -- Dein Team, Ideen-Board, Rueckmeldung, Wer sieht was,
+ Entwicklung, Werdegang, Talente und der ganze Treff samt
+ Moderation.
+
+ Filipe: "ich will dass du im workspace alles von team dogi weg
+ nimmst ... die kacheln von team dogi soll ich nur bei team dogi
+ sehen und die von workspace nur bei workspace bitte. ich will
+ keine mischung mehr von kacheln. wie gesagt nur die der kalender
+ soll verbunden sein von dogfather sonst nichts."
+
+ GEPRUEFT WIRD JETZT DIE TRENNUNG, und zwar in beide Richtungen:
+ Kein Brett von Team Dogi auf der Agenturadresse -- und trotzdem
+ kein Sackgassen-Ende, denn EINE Tuer bleibt. Eine Tuer ist keine
+ Mischung: Sie zeigt kein Brett, sie geht hinueber.
+
+ WARUM DIE LISTE AUS DER ANTWORT VON crew. KOMMT und nicht hier
+ steht: Was "Team Dogi" ist, entscheidet der Server. Schriebe ich
+ die Namen hier ab, waere die Pruefung beim naechsten neuen Brett
+ blind -- genau die Sorte Abschrift, die heute schon dreimal
+ gealtert ist. */
+ const teamNamen = new Set(aufCrew.filter((n) => n !== "Kalender"));
+ const durchgerutscht = aufWs.filter((n) => teamNamen.has(n));
+ ok(durchgerutscht.length === 0,
+ durchgerutscht.length
+ ? `AUF workspace. STEHEN NOCH KACHELN VON TEAM DOGI: ${durchgerutscht.join(", ")}`
+ : `auf workspace. steht kein einziges Brett von Team Dogi `
+ + `(geprueft gegen ${teamNamen.size} Kacheln von crew.)`);
+
+ /* DIE ZAHL GEHOERT IN DIE BEDINGUNG. Waere `teamNamen` leer -- weil
+ crew. nichts liefert oder die Antwort sich aendert --, waere
+ "nichts durchgerutscht" wahr und wertlos. */
+ ok(teamNamen.size >= 10,
+ `crew. liefert ${teamNamen.size} eigene Kacheln, gegen die geprueft wird`);
+
+ /* UND DER WEG HINUEBER BLEIBT. Ohne ihn waere von der Agenturseite
+ aus kein Team Dogi mehr erreichbar -- man muesste die Adresse
+ tippen. Das ist die Sackgasse, die dieses Haus nicht baut. */
+ const tuer = (a.ws?.bereiche_zusatz || []).filter((k) => k.aussen);
+ ok(tuer.length === 1,
+ tuer.length === 1
+ ? `eine Tuer fuehrt hinueber ("${tuer[0].name}")`
+ : `ERWARTET WIRD GENAU EINE TUER, gefunden: ${tuer.length}`);
+ ok(tuer[0]?.ziel?.startsWith("https://"),
+ `und sie zeigt auf die andere Adresse (${tuer[0]?.ziel || "KEINE"})`);
+
+ /* DER KALENDER IST DIE EINE AUSNAHME, die Filipe ausdruecklich
+ wollte: "nur was ich im kalender eintrage soll ich im workspace
+ sehen und im team dogi". Er steht deshalb auf BEIDEN Seiten --
+ und die Termine selbst werden nirgends nach Haus gefiltert,
+ nachgemessen in workspace-kalender.js. */
+ ok(aufCrew.includes("Kalender"),
+ "der Kalender steht auf crew.");
/* Und keine doppelt: bereicheFuer liefert auf crew. schon die
Team-Liste, zusatzBereicheFuer muss dort schweigen. */
diff --git a/server/pruef-rueckmeldung.mjs b/server/pruef-rueckmeldung.mjs
index 28e92cfd..976655d7 100644
--- a/server/pruef-rueckmeldung.mjs
+++ b/server/pruef-rueckmeldung.mjs
@@ -118,6 +118,34 @@ const rufe = (keks, weg, koerper, methode = "GET") =>
});
const holen = async (keks, weg) => (await rufe(keks, weg)).json();
+/* MIT EINER BESTIMMTEN ADRESSE FRAGEN -- UND WARUM NICHT MIT `fetch`
+ (21.09.2026).
+
+ Welches Haus jemand sieht, entscheidet der Host der EINZELNEN
+ Anfrage. Eine Anmeldung ueber die Crew-Wand genuegt nicht, wenn die
+ naechste Abfrage an 127.0.0.1 geht.
+
+ `fetch` kann das nicht: `Host` ist ein verbotener Kopfzeilenname und
+ wird STILLSCHWEIGEND verworfen -- kein Fehler, keine Warnung, die
+ Anfrage geht einfach an die falsche Adresse. Genau deshalb benutzt
+ auch `anmelden()` weiter unten schon `http.request` statt `fetch`.
+ Eine halbe Stunde Suche waere das gewesen, haette die Pruefung nicht
+ Kachel fuer Kachel gemeldet, was sie findet. */
+const holenVon = (keks, weg, wand) => new Promise((fertig, schief) => {
+ const a = httpAnfrage({
+ host: "127.0.0.1", port: PORT, path: weg, method: "GET",
+ headers: { Cookie: keks, Host: wand },
+ }, (antwort) => {
+ let text = "";
+ antwort.on("data", (s2) => { text += s2; });
+ antwort.on("end", () => {
+ try { fertig(JSON.parse(text || "{}")); } catch { fertig({}); }
+ });
+ });
+ a.on("error", schief);
+ a.end();
+});
+
const dogi = await anmelden("admin", "CODE-DOGI-0001");
const hand = await anmelden("hand", "CODE-HAND-0001");
const ayla = await anmelden("modi", "CODE-TEAM-0001");
@@ -283,8 +311,23 @@ console.log("=== Kein Versteck in anderen Bereichen ===");
console.log("");
console.log("=== Die Kachel ===");
{
+ /* GEFRAGT WIRD IM EIGENEN HAUS (21.09.2026).
+
+ Bis heute fragte dieser Abschnitt ueber 127.0.0.1 -- also ueber
+ eine Pruefadresse, auf der die Agentursicht gilt. Solange
+ DogFather dort auch die Kacheln von Team Dogi bekam, fiel das
+ nicht auf.
+
+ Seit dem 21.09. bekommt er sie dort nicht mehr: Filipe wollte
+ "keine mischung mehr von kacheln", Team Dogi steht nur noch auf
+ seiner eigenen Adresse. Die Pruefung war damit rot, ohne dass die
+ Kachel fehlt -- sie hat nur am falschen Ort gesucht.
+
+ Gefragt wird deshalb mit dem Host der Crew-Wand, also genau dort,
+ wo diese Kachel zuhause ist. */
+ const CREW_WAND = "crew.dogfather-universe.com";
const kacheln = async (keks) => {
- const i = await holen(keks, "/workspace/api/ich");
+ const i = await holenVon(keks, "/workspace/api/ich", CREW_WAND);
return [...(i.bereiche || []), ...(i.bereiche_zusatz || [])];
};
for (const [wer, keks] of [["DogFather", dogi.keks], ["die rechte Hand", hand.keks],
diff --git a/server/pruef-start-ansicht.mjs b/server/pruef-start-ansicht.mjs
index 7f9fe27a..8e7f1a6c 100644
--- a/server/pruef-start-ansicht.mjs
+++ b/server/pruef-start-ansicht.mjs
@@ -292,10 +292,57 @@ for (const [breite, wie] of [[1440, "Computer"], [390, "Handy"]]) {
Sortierregel in start.js schiebt ausdruecklich NUR die drei
hinteren ans Ende. Ein erster Versuch schrieb auch die vorderen
fest und hat diese Prueflinie sofort rot gemacht -- zu Recht. */
- const ERWARTETE_GRUPPEN = ["Rund um das Team", "Täglich", "Rund um den Creator",
- "Team & System", "Team Dogi", "Entwicklung & Nachwuchs", "Moderation", "Community"];
- ok(JSON.stringify(r.gruppen.map((g) => g.name)) === JSON.stringify(ERWARTETE_GRUPPEN),
- `${ERWARTETE_GRUPPEN.length} Gruppen in dieser Reihenfolge (${r.gruppen.map((g) => g.name).join(" · ")})`);
+ /* DIE REGEL STATT DER AUFZAEHLUNG (21.09.2026).
+
+ Hier standen acht Gruppennamen in fester Reihenfolge. Am
+ 21.09.2026 hat Filipe die Kacheln getrennt -- "ich will keine
+ mischung mehr von kacheln" --, und auf der Agenturadresse stehen
+ seitdem fuenf statt acht. Die Zeile war rot, obwohl genau das
+ Gewuenschte passiert ist.
+
+ WAS SIE WIRKLICH SCHUETZEN SOLLTE, steht im Kommentar darueber:
+ "Die Community steht ganz unten, denn dort stehen Namen und
+ Saetze von Zuschauern." Das ist eine Aussage ueber die
+ REIHENFOLGE, nicht ueber den Bestand -- und sie bleibt richtig,
+ egal wie viele Gruppen es gibt.
+
+ GEPRUEFT WIRD SIE DESHALB BEDINGT: Ist die Community da, steht
+ sie zuletzt. Ist die Moderation da, steht sie direkt davor. Auf
+ einer Adresse, auf der es beide nicht gibt, misst die Zeile
+ nichts -- und sagt das auch, statt gruen zu tun. */
+ const namen = r.gruppen.map((g) => g.name);
+ ok(namen.length >= 3, `${namen.length} Gruppen (${namen.join(" · ")})`);
+
+ const stelle = (n) => namen.indexOf(n);
+ const community = stelle("Community");
+ const moderation = stelle("Moderation");
+
+ if (community === -1 && moderation === -1) {
+ /* DRITTER AUSGANG: Auf dieser Adresse gibt es beide nicht. Das ist
+ kein Befund -- aber auch kein bestandener Test. */
+ console.log(" -- auf dieser Adresse gibt es weder Community noch Moderation");
+ } else {
+ ok(community === -1 || community === namen.length - 1,
+ community === -1
+ ? "keine Community-Gruppe auf dieser Adresse"
+ : `die Community steht ganz unten (Platz ${community + 1} von ${namen.length})`);
+ ok(moderation === -1 || community === -1 || moderation === community - 1,
+ moderation === -1
+ ? "keine Moderations-Gruppe auf dieser Adresse"
+ : `die Moderation direkt davor (Platz ${moderation + 1})`);
+ }
+
+ /* UND DIE ARBEIT STEHT VORN. Das ist die andere Haelfte derselben
+ Aussage: Wer den Arbeitsplatz oeffnet, soll nicht an fremden
+ Namen vorbeiscrollen, um an seine Aufgaben zu kommen. */
+ const arbeit = namen.findIndex((n) => n === "Täglich");
+ ok(arbeit === -1 || community === -1 || arbeit < community,
+ arbeit === -1
+ ? "keine Gruppe „Täglich“ auf dieser Adresse"
+ : community === -1
+ ? `die tägliche Arbeit steht auf Platz ${arbeit + 1}; eine Community-Gruppe `
+ + "gibt es hier nicht, also ist nichts zu vergleichen"
+ : `die tägliche Arbeit steht vor der Community (${arbeit + 1} vor ${community + 1})`);
/* WIE VIELE KACHELN? Nicht abgeschrieben, sondern aus bereiche.js
gezaehlt (06.09.2026).
diff --git a/server/pruef-treff.mjs b/server/pruef-treff.mjs
index 172c2f4f..09d292d1 100644
--- a/server/pruef-treff.mjs
+++ b/server/pruef-treff.mjs
@@ -420,8 +420,28 @@ let namen = [];
ok(modiAlles.includes(MOD) && !namen.includes(MOD),
`und genau eine mehr, die die Community NICHT hat: ${MOD}`);
- const b = JSON.parse((await roh("/workspace/api/ich", HAUS, { cookie: kDogi })).text);
- const beiDogi = (b.bereiche_zusatz || []).filter((k) => k.gruppe === "Community").map((k) => k.name);
+ /* AUF DER TEAM-ADRESSE GEFRAGT, NICHT AUF DER AGENTUR- (21.09.2026).
+
+ Hier stand `HAUS`, also workspace. -- und die Zeile war richtig,
+ solange DogFather dort auch die Bretter des Treffs bekam.
+
+ Seit dem 21.09. bekommt er sie dort nicht mehr. Filipe: "ich will
+ dass du im workspace alles von team dogi weg nimmst ... ich will
+ keine mischung mehr von kacheln." Der Treff steht nur noch auf
+ seiner eigenen Adresse; von der Agenturseite fuehrt genau EINE
+ Tuer hinueber.
+
+ Die Aussage bleibt dieselbe -- "DogFather sieht dieselben Bretter
+ wie die Community" --, sie wird nur dort gemessen, wo diese
+ Bretter zuhause sind. Auf der Agenturadresse waere sie ab jetzt
+ eine Frage nach etwas, das dort nicht sein soll. */
+ const b = JSON.parse((await roh("/workspace/api/ich", CREW, { cookie: kDogi })).text);
+ /* AUF crew. STEHEN SIE IN `bereiche`, NICHT IN `bereiche_zusatz`:
+ Dort ist der Treff sein Zuhause und keine Zugabe. Gesucht wird
+ deshalb in beiden Listen -- so misst die Zeile dasselbe, egal von
+ welcher Adresse sie kommt. */
+ const beiDogi = [...(b.bereiche || []), ...(b.bereiche_zusatz || [])]
+ .filter((k) => k.gruppe === "Community").map((k) => k.name);
/* DogFather sieht den Meldeweg sehr wohl -- er beantwortet ihn. */
/* Auch hier: MOD steht in der Gruppe "Moderation", nicht in
"Community". `beiDogi` ist nach Gruppe gefiltert und kann ihn
diff --git a/server/workspace.js b/server/workspace.js
index 6c2dd2b8..42ebdf3a 100644
--- a/server/workspace.js
+++ b/server/workspace.js
@@ -34,7 +34,7 @@ import { darfSeite, OHNE_ANMELDUNG, seitenFuer } from "./rechte.js";
import { treffTabellen, treffSperreLesen, MINDESTALTER } from "./treff-tabellen.js";
import { hilfeTabellen } from "./hilfe-tabellen.js";
import { sitzungPasstZurAdresse, istOhneModiAdresse, istCrewAdresse, istPruefAdresse, AUSSEN_ROLLEN,
- TEAM_DOGI_ROLLEN } from "./crew-adresse.js";
+ TEAM_DOGI_ROLLEN, CREW_ADRESSE } from "./crew-adresse.js";
/* Weitergereicht, damit die Fachmodule sie wie alles andere aus
workspace.js beziehen und nicht wissen muessen, wo sie wohnt. */
export { TEAM_DOGI_ROLLEN };
@@ -1439,6 +1439,15 @@ export function darfTelefonieren(person) {
function nurOffeneKacheln(liste, person) {
if (!Array.isArray(liste) || !person) return liste;
return liste.filter((k) => {
+ /* EINE KACHEL, DIE HINAUSFUEHRT, HAT HIER KEINE SEITE (21.09.2026).
+
+ Unten wird aus dem Ziel ein Pfad gebaut ("/workspace/" + ziel)
+ und die Rechtetafel gefragt. Bei einer vollstaendigen Adresse --
+ der Tuer zu Team Dogi -- kaeme dabei
+ "/workspace/https://crew..." heraus, das steht in keiner Tafel,
+ und die Kachel waere lautlos verschwunden. Lautlos ist das
+ Schlimme daran: Man sucht den Fehler dann bei der Rolle. */
+ if (k?.aussen) return true;
const ziel = String(k?.ziel || "");
if (!ziel) return true;
const pfad = "/workspace/" + ziel.split("?")[0];
@@ -2005,71 +2014,93 @@ const TEAM_GRUPPE = {
gruppeNach: "Team & System",
};
-const ZUSATZ_BEREICHE = {
- admin: [
- { ...TEAM_GRUPPE, ...EINGANG_KACHEL, gruppe: TEAM_GRUPPE.gruppe,
- gruppeUnter: TEAM_GRUPPE.gruppeUnter },
- {
- ...TEAM_GRUPPE,
- name: "Ideen-Board", unter: "Gesammelt und nach Dringlichkeit sortiert",
- zeichen: "content", ton: 23, ziel: "bereich.html?b=ideen", szene: "portal",
- },
- /* DIESELBE Kachel wie im Team, nur in seiner Gruppe. Name, Ton und
- Ziel sind Wort fuer Wort dieselben -- wer sie hier anders nennt,
- hat zwei Namen fuer eine Sache, und das Team liest den einen,
- DogFather den anderen. */
- {
- ...TEAM_GRUPPE,
- name: "Rückmeldung", unter: "Was gut läuft, was hakt – in beide Richtungen",
- zeichen: "reports", ton: 25, ziel: "bereich.html?b=rueckmeldung", szene: "lounge",
- },
- /* Eine eigene Gruppe, direkt hinter Team Dogi: Was ueber Menschen
- aufgeschrieben wird, steht nicht zwischen den taeglichen
- Werkzeugen. */
- /* WER SIEHT WAS (11.09.2026).
+/* =====================================================================
+ KEINE MISCHUNG MEHR (21.09.2026)
- Filipe: "egal welche Rolle oder Person hinzugefuegt wird, soll
- immer nur das sehen, was ich erlaube."
+ Filipe: "ich will dass du im workspace alles von team dogi weg
+ nimmst. nur was ich im kalender eintrage soll ich im workspace sehen
+ und im team dogi. aber die kacheln von team dogi soll ich nur bei
+ team dogi sehen und die von workspace nur bei workspace bitte. ich
+ will keine mischung mehr von kacheln. wie gesagt nur die der kalender
+ soll verbunden sein von dogfather sonst nichts."
- Dazu gehoert, dass er es nachsehen kann. Die Seite rechnet die
- Uebersicht aus derselben Tafel, aus der die Schranke ihre
- Entscheidung holt (rechte.js) -- eine von Hand gepflegte
- Uebersicht waere eine zweite Wahrheit, und ausgerechnet die, der
- man glaubt.
+ ---------------------------------------------------------------------
+ WAS HIER BIS HEUTE STAND
- IN "Team & System" UND NICHT BEI DEN PERSONEN: Es geht nicht um
- Menschen, sondern um das Haus. */
- {
- ...TEAM_GRUPPE, ...RECHTE_KACHEL,
- gruppe: TEAM_GRUPPE.gruppe, gruppeUnter: TEAM_GRUPPE.gruppeUnter,
- },
- { ...ENTWICKLUNG_KACHEL, gruppeNach: TEAM_GRUPPE.gruppe },
- { ...WERDEGANG_KACHEL, gruppeNach: TEAM_GRUPPE.gruppe },
- { ...TALENTE_KACHEL, gruppeNach: TEAM_GRUPPE.gruppe },
- /* DER TREFF -- GANZ UNTEN, UND ZWAR ABSICHTLICH.
+ Eine Liste ZUSATZ_BEREICHE mit siebzehn Kacheln, die auf der
+ AGENTURADRESSE an DogFathers Seite gehaengt wurden: Dein Team,
+ Ideen-Board, Rueckmeldung, Wer sieht was, Entwicklung, Werdegang,
+ Talente -- und der ganze Treff samt Moderation. Nachgemessen am
+ 21.09.2026 bekam er dort 0 eigene Kacheln und 17 fremde; auf der
+ Team-Adresse 30, in sechs Gruppen, aus beiden Haeusern.
- Filipe zu den beiden Gruppen darueber: "das sind private
- informationen von meiner community." Dasselbe gilt hier, nur
- noch deutlicher: Im Treff stehen Namen und Saetze von Leuten,
- die nichts mit der Agentur zu tun haben.
+ Der Gedanke dahinter war gut gemeint: Er soll ueberall an alles
+ herankommen. Die Wirkung war eine Seite, auf der zwei Betriebe
+ uebereinanderliegen -- und zwar genau der Zustand, den dieselbe
+ Datei am 10.09. fuer die andere Richtung schon als Fehler erkannt
+ hatte ("Fuenfundzwanzig Kacheln, von denen zwei Drittel Creator,
+ Scouts und Agentur betreffen, waeren dort Fenster in ein Haus, in
+ dem er gerade nicht ist").
- Ohne `gruppeNach` haengt eine Gruppe hinten an -- genau richtig.
- Wer sich den Bildschirm teilt oder jemandem ueber die Schulter
- schauen laesst, hat sie dann nicht als Erstes im Blick. */
- ...TREFF_BEREICHE,
- TREFF_MODERATION_KACHEL,
- ],
-};
+ ---------------------------------------------------------------------
+ DIE EINE AUSNAHME IST DER KALENDER -- UND SIE BRAUCHT NICHTS
-/* NICHT AUF DER TEAM-ADRESSE (10.09.2026). Dort liefert bereicheFuer()
- ohnehin schon die Kacheln des Teams -- Eingang, Ideen-Board und
- Rueckmeldung stuenden sonst zweimal auf der Seite, einmal in
- "Taeglich" und einmal in "Team Dogi". Zwei gleiche Kacheln sind
- schlimmer als eine fehlende: Man klickt die falsche und sucht den
- Unterschied. */
+ Nachgemessen: Die Terminabfragen in workspace-kalender.js filtern
+ NICHT nach Haus. Was er eintraegt, steht ohnehin auf beiden
+ Adressen. Die Verbindung, die er will, existiert also bereits; sie
+ musste nicht gebaut, sondern nur nicht zerschnitten werden.
+
+ ---------------------------------------------------------------------
+ EINE TUER IST KEINE MISCHUNG
+
+ Ohne Ersatz waere von der Agenturadresse aus kein Weg mehr zu Team
+ Dogi sichtbar -- er muesste die Adresse tippen. Das ist die Sorte
+ Sackgasse, die dieses Haus nicht baut. Statt siebzehn Brettern steht
+ dort jetzt EINE Kachel, die hinuebergeht.
+
+ SIE VERRAET NICHTS: Sie kommt vom Server und nur fuer die, die zu
+ Team Dogi gehoeren. In keiner ausgelieferten Datei steht sie, und
+ ein Manager bekommt sie nie zu sehen -- genau wie bei den Kacheln,
+ die sie ersetzt.
+ ===================================================================== */
export function zusatzBereicheFuer(person) {
+ /* Auf der Team-Adresse liefert bereicheFuer() ohnehin die Kacheln des
+ Teams. Eine Tuer zu dem Haus, in dem man schon steht, waere ein
+ Knopf, der nichts tut. */
if (person?.haus === "crew") return [];
- return ZUSATZ_BEREICHE[person?.rolle] || [];
+
+ /* NUR DOGFATHER UND VANVAN -- also `admin`.
+
+ Der erste Entwurf gab die Tuer auch an TEAM_DOGI_ROLLEN (die
+ rechte Hand und die Moderation). Das war falsch, und pruef-modi
+ -checkliste hat es sofort gemeldet: "Modi bekommt 1
+ Zusatzkachel(n), erwartet keine".
+
+ WARUM ES FALSCH IST: Wer NUR zu Team Dogi gehoert, hat auf der
+ Agenturadresse gar nichts zu suchen -- die Tuer waere dort seine
+ einzige Kachel, also eine Seite, die aus nichts als einem Ausgang
+ besteht. Und sie wuerde eine Adresse nennen, die auf dieser Seite
+ niemand nennen soll.
+
+ `admin` ist der einzige Fall, der wirklich zwei Haeuser hat. */
+ if (person?.rolle !== "admin") return [];
+
+ return [{
+ gruppe: "Team Dogi",
+ gruppeUnter: "Das andere Haus \u2014 eigene Seite, eigene Daten",
+ name: "Zu Team Dogi",
+ unter: "Der Treff, das Team und die Moderation \u2014 auf ihrer eigenen Adresse",
+ zeichen: "hinaus",
+ ton: 40,
+ szene: "portal",
+ ziel: CREW_ADRESSE + "/workspace/start.html",
+ /* AUSSEN heisst: Diese Kachel fuehrt aus dem Haus hinaus. Ohne das
+ Merkmal wuerde nurOffeneKacheln() sie wegfiltern -- es baut aus
+ dem Ziel einen Pfad ("/workspace/" + ziel) und fragt die
+ Rechtetafel. Bei einer vollstaendigen Adresse kommt dabei
+ Unsinn heraus, und die Kachel verschwaende lautlos. */
+ aussen: true,
+ }];
}
/* scrypt-Parameter. N=2^15 braucht auf diesem Server rund 150 ms — spürbar
diff --git a/workspace/anruf-probe.html b/workspace/anruf-probe.html
index 54a2b0ca..9223dcd2 100644
--- a/workspace/anruf-probe.html
+++ b/workspace/anruf-probe.html
@@ -16,15 +16,15 @@
verdeckt. Gefunden hat es pruef-struktur.
Richtig sind `gate.css` (die Farbwerte des Hauses) und `haus.css`. -->
-
-
+
+
-
+