Files
dogfather-universe/workspace/unterstuetzen.html
T
DogFatherGitandClaude Opus 5 69517e090b Wer im Chat hochscrollt, wird nicht mehr ans Ende gerissen
`pruef-chat-ausbau` stand seit dem 28.09. rot:

    FEHL die Stelle bleibt stehen (0 -> 3574)
    FEHL der Knopf sagt, wie viel wartet ("Zum neuesten")
    FEHL er zaehlt mit ("Zum neuesten")
    FEHL pruef-chat-ausbau: unbehandelter Fehler   (der Knopf blieb verborgen)

WAS WIRKLICH PASSIERTE: Man liest weiter oben im Verlauf, jemand
schreibt -- und man wird ans Ende gerissen. Der Zaehler „1 neue
Nachricht" wurde dabei zurueckgesetzt, der Knopf blieb verborgen.

DIE URSACHE STAND AN DER FALSCHEN STELLE. Die Zuhoerer, die „der
Mensch hat selbst gescrollt" feststellen (Rad, Finger, Taste,
Zeiger), hingen INNERHALB des Sprung-Blocks zur Neu-Linie -- wurden
also erst angehaengt, NACHDEM einmal gesprungen worden war.

In einem ruhigen Gespraech passiert das nie: Wer alles gelesen hat,
bekommt keine Neu-Linie, der Block laeuft nicht, die Zuhoerer gibt es
nicht. Scrollt er hoch und es kommt eine Nachricht, entsteht die
Linie ZUM ERSTEN MAL -- der Block laeuft, haengt die Zuhoerer an und
springt im selben Atemzug. Das Hochscrollen von vorhin hat nie jemand
bemerkt.

Das ist der haeufigste Fall ueberhaupt: ein stiller Chat, man liest
etwas weiter oben nach, jemand schreibt.

Die Wache steht jetzt beim Aufbau, bei den uebrigen Zuhoerern des
Verlaufs. Ausdruecklich NICHT am `scroll`-Ereignis: Der Sprung
scrollt selbst, und `scroll` unterscheidet nicht, wer gescrollt hat.
Rad, Finger, Taste und Zeiger tut nur ein Mensch.

UND DIE PRUEFUNG HAT SELBST GEMOGELT. Sie schrieb `e.scrollTop = 0`
-- das setzt die Bildlaufposition zu, ohne dass ein Rad gedreht
wurde. Damit haette sie den Fehler auch nach der Behebung noch
gemeldet. Sie dreht jetzt das Rad (`mouse.wheel`) und prueft, dass
sie oben angekommen ist. Dieselbe Lehre wie bei den Fingergeraeten:
`setViewportSize` macht aus einer Maus keinen Finger, und
`scrollTop = 0` macht aus einem Programm keinen Leser.

Nachher: 70 Pruefungen, 0 Fehler (vorher 24/4).
    die Stelle bleibt stehen (0 -> 0)
    der Knopf sagt, wie viel wartet ("1 neue Nachricht")
    er zaehlt mit ("2 neue Nachrichten")
    wer unten steht, wird weiterhin mitgenommen -- ohne Knopf

Alle sieben Chatpruefungen gruen: anhaenge 123/0, aufloesen 126/0,
ausbau 70/0, kanaele 81/0, neu-stelle 63/0, neu 36/0, optik 62/0.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-30 11:22:14 +02:00

123 lines
5.4 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<title>Unterstützen · Spicy &amp; Dogi</title>
<meta name="robots" content="noindex, nofollow" />
<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=202609301122" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609301122" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609301122" />
<link rel="stylesheet" href="assets/css/start.css?v=202609301122" />
<link rel="stylesheet" href="assets/css/unterstuetzen.css?v=202609301122" />
<link rel="stylesheet" href="assets/css/module.css?v=202609301122" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609301122" />
</head>
<body class="start">
<div class="schleier" aria-hidden="true"></div>
<header class="kopfleiste">
<button type="button" class="zurueck-knopf" id="zurueck" hidden>
<svg class="zurueck-knopf__pfeil" viewBox="0 0 24 24" aria-hidden="true">
<path d="M14.5 5.5 8 12l6.5 6.5" />
</svg>
<span class="zurueck-knopf__text">Zurück</span>
</button>
<p class="marke"><span class="marke__text"><a class="zurueck" href="start.html">Creator&nbsp;Workspace</a> · Unterstützen</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 inhalt--breit">
<!-- ==================================================================
DER KOPF SAGT ZUERST, DASS NIEMAND MUSS (24.09.2026)
Filipe: „wo die leute alle supporten können auf andere art
anstatt nur tiktok."
Eine Seite, die mit „unterstütze mich" anfängt, liest sich wie
eine hohle Hand. Der erste Satz sagt deshalb das Gegenteil: Es
gibt Wege, die nichts kosten, und keiner davon ist zweite Wahl.
Erst danach kommen die, bei denen Geld fließt.
Wer nichts geben kann, soll diese Seite nicht mit einem
schlechten Gefühl schließen — das ist die ganze Überlegung
hinter dem Aufbau.
============================================================== -->
<section class="kopf-zeile">
<div>
<p class="marke">Community</p>
<h1 class="titel" id="seiten-titel">Dogi etwas zurückgeben</h1>
<p class="unterzeile" id="seiten-unter">
Es geht auch ohne TikTok – und es geht auch ohne Geld.
Such dir aus, was zu dir passt. Niemand muss etwas geben, um dazuzugehören.
</p>
</div>
</section>
<p class="fehler" id="fehler" role="alert" aria-live="polite" hidden></p>
<!-- ==================================================================
NUR DOGFATHER: die Leiste zum Ändern und die Zahlen
„nur dogfather soll sie verändern können oder vieles mehr sehen."
Sie steht im Dokument und wird von unterstuetzen.js eingeblendet
— ausgeliefert bekommt sie jeder, das ist nur HTML. Die
ENTSCHEIDUNG trifft der Server: Er liefert `darf_aendern` und
weist jedes Schreiben ohne dieses Recht mit 404 ab. Ein
verstecktes Feld ist eine Bitte, keine Sperre.
============================================================== -->
<section class="u-leitung" id="leitung" hidden aria-labelledby="leitung-titel">
<div class="u-leitung__kopf">
<h2 class="u-leitung__titel" id="leitung-titel">Nur du siehst das hier</h2>
<button type="button" class="knopf knopf--klein" id="aendern-an">Ändern</button>
</div>
<p class="u-leitung__satz" id="leitung-satz"></p>
<div class="u-zahlen" id="zahlen" hidden></div>
</section>
<!-- Die Wege. unterstuetzen.js baut sie aus der Antwort des Servers —
hier steht nur, wo sie hingehören. -->
<div id="wege" aria-live="polite">
<p class="u-laedt" id="laedt">Wird geladen …</p>
</div>
<!-- ==================================================================
DER LETZTE SATZ IST KEIN SCHMUCK
Er steht fest im Dokument und nicht in der Datenbank: Was hier
zugesagt wird, soll nicht aus Versehen wegzuklicken sein.
============================================================== -->
<p class="u-fuss">
Nichts davon ist Pflicht, und niemand sieht, wer etwas gegeben hat.
Wer nur zuschaut, gehört genauso dazu.
</p>
</main>
<!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und kopf.js
liest daraus die Leitungsrollen. Ohne sie stürzt jede Seite mit
„Cannot read properties of undefined (reading 'LEITUNG')" ab. -->
<script src="assets/js/bereiche.js?v=202609301122" defer></script>
<script src="assets/js/wahl.js?v=202609301122" defer></script>
<script src="assets/js/nachfrage.js?v=202609301122" defer></script>
<script src="assets/js/installieren.js?v=202609301122" defer></script>
<script src="assets/js/kopf.js?v=202609301122" defer></script>
<script src="assets/js/glocke.js?v=202609301122" defer></script>
<script src="assets/js/holen.js?v=202609301122" defer></script>
<!-- Die Satz-Tafel. Ohne sie stand auf dieser Seite das Maschinenwort
des Servers (z.B. "nicht_gefunden") statt eines Satzes -- gemeldet
von pruef-meldungen, nicht beim Ansehen. -->
<script src="assets/js/meldung.js?v=202609301122" defer></script>
<script src="assets/js/unterstuetzen.js?v=202609301122" defer></script>
</body>
</html>