HEUTE ZWEIMAL NUR GUTGEGANGEN. Zwei Claude-Sitzungen arbeiteten
gleichzeitig in diesem Verzeichnis, ohne voneinander zu wissen.
Keine hat etwas falsch gemacht — sie konnten es nicht wissen.
* Beide haben `git add -A` benutzt. Haette die eine
unfestgeschriebene Arbeit der anderen im Baum gehabt, waere sie
mitcommittet worden — unter fremdem Namen, in einer fremden
Begruendung, und niemandem waere es aufgefallen. Nachgesehen:
diesmal war nichts dabei.
* Beide haben den Stempellauf gestartet. Der schreibt 45 Dateien
um. Wer dort eine offen hatte, bekam sie unter den Haenden weg
geaendert.
Dasselbe hat in RunOne am 03.09.2026 sieben Minuten Ausfall
gekostet. Dort gibt es seitdem `arbeitsschloss.sh`; diese Fassung
uebernimmt seine Lehren.
WAS ES IST UND WAS NICHT. Es ist kein Riegel — wer wirklich muss,
kommt vorbei. Es beantwortet die eine Frage, die heute niemand
beantworten konnte: „arbeitet hier gerade sonst jemand?"
Die teuren Fehler liegen bei einem Schloss alle in derselben
Richtung: Es blockiert zu viel und wird deshalb abgeschafft. Also:
* Es blockiert NICHT, wenn das Schloss DEINES ist. RunOnes erste
Fassung fragte „ist abgeschlossen" statt „haelt es jemand
anders" — damit haette, wer ordentlich abschliesst, nie mehr
ausliefern koennen. Dafuer gibt es `fremd`.
* Es VERFAELLT nach zwei Stunden, und dass da jemand war, steht
beim Uebernehmen dabei.
* Es blockiert NICHT, wenn es selbst unlesbar ist — dritter
Ausgang, kein Stillstand.
* Notausgang: SCHLOSS_ZWANG=ja git commit …
DAS PROBLEM, AN DEM RUNONE HAENGT, IST HIER GELOEST. Dort faellt die
Kennung im Zweifel auf den Systembenutzer zurueck, und zwei
Claudian-Sitzungen laufen BEIDE als `claudian` — die Sicherung griff
ausgerechnet zwischen den zwei Faellen nicht, fuer die sie gebaut
wurde. Deshalb ist dort `export ARBEITER=…` Pflicht, und Pflicht
heisst: man vergisst es.
Hier steht `CLAUDE_CODE_SESSION_ID` in jeder Sitzung und ist je
Sitzung verschieden (nachgesehen, 36 Zeichen UUID). Zwei Sitzungen
auf demselben Windows-Benutzer unterscheiden sich damit von selbst,
ohne dass jemand etwas tun muss. Reihenfolge: ARBEITER, dann
Sitzungskennung, dann Benutzername MIT Warnung.
NIEMAND MUSS DARAN DENKEN:
* die beiden Stempelwerkzeuge nehmen es selbst und geben es selbst
frei — auch nach einem Absturz und bei Strg+C (wie `bauen.sh` im
Shop; eines, an das man denken muss, wird vergessen und ab da
umgangen)
* `tools/git-haken/pre-commit` bricht jeden Commit ab, solange
jemand ANDERS das Schloss haelt. Das ist die Stelle, die heute
gefehlt hat: `git add -A` ist der Griff, den man ohne Nachdenken
macht, und gegen einen Reflex hilft keine Regel auf Papier.
* `core.hooksPath` statt `.git/hooks` — letzteres ist nicht
versioniert und waere nach einem Klon genau dann leer, wenn es
gebraucht wird.
GEPRUEFT, server/pruef-arbeitsschloss.mjs: 33 Pruefungen, 0 Fehler —
in einem WEGWERF-Verzeichnis mit eigenem git, damit kein echtes
Schloss angefasst wird. Darunter am echten git:
ohne Schloss committen -> geht (0)
mit dem EIGENEN Schloss -> geht (0)
mit einem FREMDEN Schloss -> bricht ab (1), nennt wer und warum
und es stehen genau ZWEI Commits da, nicht drei
SCHLOSS_ZWANG=ja -> kommt vorbei
ohne das Schloss-Werkzeug -> laesst durch
Dazu: verfallenes Schloss laesst durch, mit laengerer Frist blockt
dasselbe Schloss wieder (Gegenprobe), unlesbarer Inhalt und
unlesbarer Zeitstempel blockieren nicht.
Portnummern nach der neuen Pruefdatei nachgemessen: Pruefbereich bis
5415, 462 Nummern, 0 Kollisionen. pruef-struktur 75/0,
pruef-fingermass 5/0, pruef-ports 10/0.
In DEPLOY.md steht es jetzt an erster Stelle — eine Sicherung, von
der nur der weiss, der sie gebaut hat, ist die erste, die umgangen
wird.
Co-Authored-By: Claude Opus 5 <[email protected]>
92 lines
7.1 KiB
HTML
92 lines
7.1 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="de" data-theme="hasidog">
|
||
<head>
|
||
<meta charset="UTF-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||
<title>Die Community — DOGFATHER UNIVERSE</title>
|
||
<meta name="description" content="Team Dogi ist Familie — die Community rund um DogFather und HasiDog." />
|
||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/universe-32.png?v=202610012001" />
|
||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/universe-180.png?v=202610012001" />
|
||
<link rel="manifest" href="/manifest.json" />
|
||
<meta name="theme-color" content="#065f76" />
|
||
<meta property="og:type" content="website" />
|
||
<meta property="og:site_name" content="DOGFATHER UNIVERSE" />
|
||
<meta property="og:title" content="Die Community — DOGFATHER UNIVERSE" />
|
||
<meta property="og:description" content="Team Dogi ist Familie — die Community rund um DogFather und HasiDog." />
|
||
<meta property="og:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||
<meta property="og:url" content="https://dogfather-universe.com/community.html" />
|
||
<meta name="twitter:card" content="summary_large_image" />
|
||
<meta name="twitter:title" content="Die Community — DOGFATHER UNIVERSE" />
|
||
<meta name="twitter:description" content="Team Dogi ist Familie — die Community rund um DogFather und HasiDog." />
|
||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||
|
||
<link rel="stylesheet" href="assets/css/main.css?v=202610012001" />
|
||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=202610012001" />
|
||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=202610012001" />
|
||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=202610012001" />
|
||
</head>
|
||
<body class="mit-hintergrund" style="--page-bg:url('/assets/img/bg-community.jpg?v=202610012001');--page-bg-mobile:url('/assets/img/bg-community-mobile.jpg?v=202610012001');">
|
||
<div id="site-header"></div>
|
||
|
||
<main>
|
||
<section class="hero page-bg">
|
||
<div class="hero-banner"><img src="/assets/img/bg-community.jpg?v=202610012001" alt="" loading="eager" /></div>
|
||
<div class="container">
|
||
<span class="eyebrow" data-i18n="com_eyebrow">Welt 2 — HasiDog</span>
|
||
<h1 data-i18n="com_h1">Die Community</h1>
|
||
<p class="lead worlds" data-i18n="com_lead">Team Dogi ist Familie 🩵</p>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section-tight">
|
||
<div class="container grid grid-2" style="align-items:center;">
|
||
<div>
|
||
<h2 data-i18n="com_mehr_h2">Mehr als Follower</h2>
|
||
<p data-i18n="com_mehr_1">Team Dogi soll niemals nur „DogFather und Follower“ sein, sondern eine echte Gemeinschaft. Jeder verdient Spotlight 🩵</p>
|
||
<p data-i18n="com_mehr_2">Discord ist das Community-Zentrum — hier trifft man sich, tauscht sich aus und ist Teil des Alltags von Team Dogi.</p>
|
||
<a class="btn btn-primary" href="links.html" data-i18n="com_discord_btn">Discord beitreten</a>
|
||
</div>
|
||
<div class="collage-photo" style="aspect-ratio:3/4;border-radius:var(--radius);">
|
||
<img src="assets/img/community-team-dogi.jpg?v=202610012001" alt="Diene, Ghost, VanVan und Dogi bei einem gemeinsamen Treffen von Team Dogi" style="width:100%;height:100%;object-fit:cover;object-position:center 25%;" />
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section-tight">
|
||
<div class="container" style="max-width:70ch;">
|
||
<h2 class="text-center" data-i18n="com_story_h2">Team Dogi – mehr als eine Community 🩵</h2>
|
||
<p data-i18n="com_1">Meine Community ist nicht einfach nur eine Gruppe von Menschen, die sich regelmäßig in einem Livestream trifft. <strong>Team Dogi ist Familie.</strong></p>
|
||
<p data-i18n="com_2">Hier kommen Menschen zusammen, die unterschiedlicher kaum sein könnten – und trotzdem verbindet uns etwas ganz Besonderes: Loyalität, Ehrlichkeit, Respekt, Zusammenhalt und das Herz am richtigen Fleck.</p>
|
||
<p data-i18n="com_3">Bei uns darf jeder so sein, wie er wirklich ist. Niemand muss sich verstellen, niemand muss perfekt sein und niemand wird allein gelassen. Wir lachen zusammen, machen Blödsinn, unterstützen uns gegenseitig und stehen füreinander ein, wenn das Leben einmal nicht so läuft, wie es sollte.</p>
|
||
<p data-i18n="com_4">Natürlich sind wir manchmal laut, verrückt, chaotisch und komplett verpeilt. Aber genau das macht uns aus. Hinter jedem Spaß, jedem Insider und jedem verrückten Moment steckt eine Gemeinschaft, die zusammenhält – nicht nur während eines Lives, sondern auch weit darüber hinaus.</p>
|
||
<p data-i18n="com_5">Neue Menschen werden bei uns nicht einfach nur begrüßt. Sie werden aufgenommen, respektiert und Schritt für Schritt ein Teil unserer Truppe. Denn bei Team Dogi zählt nicht, woher du kommst, wie du aussiehst oder was andere über dich denken. Es zählt, welchen Charakter du hast, wie du mit anderen Menschen umgehst und ob dein Herz am richtigen Fleck sitzt.</p>
|
||
<p data-i18n="com_6">Wir feiern gemeinsam Erfolge, tragen gemeinsam schwere Zeiten und erinnern uns gegenseitig daran, niemals aufzugeben. Wenn einer fällt, helfen die anderen ihm wieder aufzustehen. Wenn einer lacht, lachen alle mit. Und wenn jemand Schutz, Rückhalt oder Unterstützung braucht, steht die gesamte Community hinter ihm.</p>
|
||
<p data-i18n="com_7">Was als TikTok-Live begonnen hat, ist längst zu etwas viel Größerem geworden: zu echten Freundschaften, besonderen Verbindungen und einer Familie, die man sich selbst ausgesucht hat.</p>
|
||
<p data-i18n="com_8">Wir sind nicht immer einer Meinung. Wir sind nicht immer leise. Und wir sind ganz sicher nicht normal. Aber wir sind echt, wir sind loyal und wir gehören zusammen.</p>
|
||
<p class="quote" data-i18n="com_quote" style="margin-top:1.4rem;">Das ist Team Dogi.<br>Das ist unsere Community.<br>Das ist Familie. 🩵</p>
|
||
<p style="text-align:right;"><strong data-i18n="com_signatur">– DogFather, im Namen von Team Dogi 🩵</strong></p>
|
||
</div>
|
||
</section>
|
||
|
||
<section>
|
||
<div class="container">
|
||
<h2 class="text-center" data-i18n="com_werte_h2">Werte der Community</h2>
|
||
<div class="grid grid-3">
|
||
<div class="card text-center"><h3 data-i18n="com_wert1_h3">🩵 Familie</h3><p data-i18n="com_wert1_p">Team Dogi ist Familie — niemand fühlt sich allein.</p></div>
|
||
<div class="card text-center"><h3 data-i18n="com_wert2_h3">🎉 Community-Treffen</h3><p data-i18n="com_wert2_p">Reale Treffen mit der Community, z.B. rund um Dogis Geburtstag.</p></div>
|
||
<div class="card text-center"><h3 data-i18n="com_wert3_h3">💬 Offenes Ohr</h3><p data-i18n="com_wert3_p">Immer erreichbar, immer präsent.</p></div>
|
||
</div>
|
||
<div class="btn-row" style="justify-content:center;">
|
||
<a class="btn btn-outline" href="medien-dogfather.html#events" data-i18n="com_aktionen_btn">Community-Aktionen ansehen</a>
|
||
<a class="btn btn-outline" href="stimmen.html" data-i18n="com_stimmen_btn">Stimmen aus der Community</a>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
<div id="site-footer"></div>
|
||
<script src="assets/js/i18n-community.js?v=202610012001"></script>
|
||
<script src="assets/js/main.js?v=202610012001"></script>
|
||
</body>
|
||
</html>
|