diff --git a/server/pruef-willkommen.mjs b/server/pruef-willkommen.mjs index 51efc910..9654ddff 100644 --- a/server/pruef-willkommen.mjs +++ b/server/pruef-willkommen.mjs @@ -238,11 +238,49 @@ for (const p of LEUTE) { /* --------------------------------------------------------------------- 4. DIE LINKE HAND BEKOMMT IHRE GRENZEN GESAGT --------------------------------------------------------------------- */ -melde("\n=== Die linke Hand ==="); +melde("\n=== Niemand erfaehrt, was er NICHT hat ==="); { - const h = gesehen.linke?.daten?.hinweise || []; - ok(h.some((x) => /nicht/i.test(x.titel + x.text)), - "ihr wird gesagt, was sie nicht hat -- einmal, klar, ohne Liste"); + /* UMGEDREHT AM 22.09.2026. Hier stand: "ihr wird gesagt, was sie + nicht hat -- einmal, klar, ohne Liste." + + Filipe: "keiner soll wissen was er nicht sieht das geht keinen was + an. sie sehen die sachen ja nicht weil es sie nichts angeht und das + muss auch nicht erwaehnt werden. kontrollier das ueberall bitte." + + Das "ueberall" ist der Grund, warum hier nicht eine Zeile + umgedreht, sondern JEDE ROLLE gemessen wird. Ein Satz, der + aufzaehlt, was fehlt, hebt ausserdem die Sorgfalt wieder auf, mit + der der Server ueberall 404 statt 403 antwortet -- damit ein "das + darfst du nicht" gar nicht erst verraet, dass es etwas gibt. */ + const VERRAETERISCH = [ + /nicht f(u|ue|\u00fc)r dich freigeschaltet/i, + /was du nicht siehst/i, + /was du nicht hast/i, + /hast du nicht/i, + /siehst du nicht/i, + /darfst du nicht/i, + /bleiben seine/i, + /kein zugriff/i, + ]; + const gefunden = []; + for (const pp of LEUTE) { + const d = gesehen[pp.rolle]?.daten; + const text = [ + d?.einleitung?.was, d?.einleitung?.dazu, + ...(d?.hinweise || []).flatMap((h) => [h.titel, h.text]), + ].filter(Boolean).join(" "); + for (const m of VERRAETERISCH) { + if (m.test(text)) gefunden.push(pp.rolle + ": " + m.source); + } + } + ok(gefunden.length === 0, gefunden.length === 0 + ? `keine der ${LEUTE.length} Rollen bekommt gesagt, was ihr fehlt` + : `ZAEHLT AUF, WAS FEHLT: ${gefunden.join(" | ")}`); + + /* GEGENPROBE: Wuerde dieses Muster so einen Satz ueberhaupt finden? + Ohne sie waere die Zeile oben gruen, sobald die Liste kaputt ist. */ + ok(VERRAETERISCH.some((m) => m.test("Das ist nicht fuer dich freigeschaltet.")), + "und ein solcher Satz wuerde hier wirklich auffallen"); const ziele = (gesehen.linke?.daten?.gruppen || []) .flatMap((g) => g.kacheln || []).map((k) => String(k.ziel).split("?")[0]); ok(!ziele.includes("personen.html") && !ziele.includes("hilfe.html"), diff --git a/server/workspace-willkommen.js b/server/workspace-willkommen.js index 409dc267..8b061c73 100644 --- a/server/workspace-willkommen.js +++ b/server/workspace-willkommen.js @@ -67,17 +67,29 @@ const EINLEITUNG = { }, hand: { was: "Du vertrittst DogFather im Alltag und hältst das Team zusammen.", - dazu: "Du siehst dieselben Aufgaben, Ideen und Auswertungen wie er und " - + "kannst Aufgaben an die Modis verteilen. Private Bereiche von " - + "DogFather bleiben seine.", + dazu: "Du siehst dieselben Aufgaben, Ideen und Auswertungen wie er, " + + "verteilst Aufgaben an die Modis und legst neue Leute an — samt " + + "ihrem Zugangscode.", }, linke: { was: "Du führst das Team durch den Tag — mit denselben Werkzeugen wie " + "die rechte Hand.", - dazu: "Aufgaben verteilen, Stände verfolgen, Rückmeldung geben: alles " - + "wie sie. Was du NICHT hast: Personen anlegen, Rollen ändern und " - + "den vertraulichen Meldeweg. Das ist kein Versehen, sondern so " - + "eingerichtet.", + /* NUR, WAS DA IST (22.09.2026). + ---------------------------------------------------------------- + Hier stand: "Was du NICHT hast: Personen anlegen, Rollen ändern + und den vertraulichen Meldeweg." + + Filipe: "keiner soll wissen was er nicht sieht das geht keinen + was an. sie sehen die sachen ja nicht weil es sie nichts angeht + und das muss auch nicht erwaehnt werden." + + Er hat recht, und es passt zur Hausregel, die ueberall sonst + schon gilt: Der Server antwortet mit 404 statt 403, damit ein + "das darfst du nicht" nicht verraet, dass es etwas gibt. Ein + Satz, der dasselbe aufzaehlt, hebt diese Sorgfalt wieder auf. */ + dazu: "Aufgaben verteilen, Stände verfolgen, Rückmeldung geben — und " + + "dabei sehen, wie es bei jedem gerade läuft. Alles dafür findest " + + "du unten.", }, modi: { was: "Schön, dass du da bist. Hier findest du alles für deinen Tag.", @@ -179,6 +191,18 @@ willkommenRouter.get("/workspace/api/willkommen", (req, res) => { unter: k.unter || "", ziel: k.ziel, zeichen: k.zeichen || null, + /* DERSELBE FARBTON WIE AUF DER STARTSEITE (22.09.2026). + Filipe: "die kacheln in der willkommens seite sollen die + selben farben haben wie in der startseite." + + Durchgereicht, nicht neu vergeben: `[data-ton="N"]` in + start.css setzt `--ton`, und start.css laedt diese Seite + ohnehin. Eine eigene Farbtabelle waere die, die beim + naechsten Farbwechsel auseinanderlaeuft -- und genau das ist + am 19.09. schon einmal passiert, als elf Seiten die neue + Kachelfarbe nie bekamen. */ + ton: Number.isFinite(k.ton) ? k.ton : null, + gross: !!k.gross, /* Der lange Satz nur, wenn es einen gibt -- `null` heißt ausdrücklich "hier reicht die Zeile". */ lang: Object.prototype.hasOwnProperty.call(LANG, datei) ? LANG[datei] : null, @@ -230,14 +254,19 @@ function hinweiseFuer(person) { + "unangenehm.", }); } - if (person.rolle === "linke") { - aus.push({ - titel: "Was du nicht siehst", - text: "Personen anlegen, Rollen ändern, Bewerbungen und der " - + "vertrauliche Meldeweg sind nicht für dich freigeschaltet. " - + "Alles, was mit Aufgaben und dem Team zu tun hat, schon.", - }); - } + /* HIER STAND "Was du nicht siehst" (entfernt 22.09.2026). + ------------------------------------------------------------------ + Der Hinweis zaehlte auf, was der linken Hand fehlt. Filipe: "das + geht keinen was an. sie sehen die sachen ja nicht weil es sie + nichts angeht und das muss auch nicht erwaehnt werden." + + Die Zeile bleibt als Kommentar stehen, damit niemand den Hinweis + spaeter "nachtraegt", weil er ihn fuer vergessen haelt. Er ist + entfernt worden, nicht uebersehen. + + Dieselbe Ueberlegung steht im Kopf dieser Datei schon: "Eine Liste + von Dingen, die man nicht darf, ist keine Orientierung, sondern + eine Kraenkung." Genau das galt fuer diesen Hinweis. */ if (istDogFather(person)) { aus.push({ titel: "Du entscheidest am Ende", diff --git a/workspace/anruf-probe.html b/workspace/anruf-probe.html index 9c9cc12b..edb2a0b8 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`. --> - - + + - +