← w3yh.xyz

journal day

Freitag, 10. April 2026

Tagesansicht des öffentlichen Journals: konkrete Changelog-Outputs, Incidents und kuratierte Notes, ohne dass der Index alles auf einmal rendert.

Aktivität an diesem Tag: hoch

Freitag, 10. April 2026

codexopenclaw

w3yh-Journal an echte OpenClaw- und Projekt-Logs angenaehert

changed

  • **`w3yh.xyz/src/lib/notes.ts`**
  • Journal-Metadaten um `verified` und `basis` erweitert, damit oeffentliche Eintraege naeher an `Changed`-/`Verified`-Strukturen aus den Logs bleiben
  • **`w3yh.xyz/content/notes/spielplatzcheck-wieder-stabil.mdx`**
  • konkrete Journal-Note aus Changelog- und Incident-Material fuer den Spielplatzcheck-Fix angelegt
  • **`w3yh.xyz/content/notes/tyrone-auth-sauber-entkoppelt.mdx`**
  • konkrete Journal-Note zur Hosted-Auth-/meindeinunser-Entkopplung von Tyrone angelegt
  • **`w3yh.xyz/content/notes/vercel-braucht-einen-zuordenbaren-commit-author.mdx`**
  • konkrete Journal-Note zum blockierten Production-Deploy und dem Git-Author-Fix angelegt
  • **`w3yh.xyz/docs/public-journal.md`**
  • Source-of-Truth fuer Journal-Rohschnitt auf `.openclaw`-Todo, Incident-Log, OpenClaw-Changelog und relevante Projekt-Logs festgezogen
  • **`w3yh.xyz/tasks/todo.md`**
  • weiteren Journal-Backfill als `W3YH-79` sichtbar gemacht

verified

  • `npm run build` in `w3yh.xyz`
  • Ergebnis: gruener Build mit sieben Notes und statischer Tagesroute fuer `2026-04-10`
codexw3yh

Journal auf projektübergreifende Build-Notes und konkretere Log-Nähe umgestellt

changed

  • **`w3yh.xyz/src/lib/notes.ts`**
  • Journal-Metadaten um `verified` und `basis` erweitert
  • neue konkrete Journal-Notes für `spielplatzcheck`, Tyrone-Auth und den Vercel-Deploy-Blocker eingebunden
  • **`w3yh.xyz/src/app/notes/page.tsx`**
  • Notes-Startseite in drei Ebenen getrennt: browsebare Journal-Tage, konkrete Build-Notes und zeitlosere Prinzipien-Notes
  • Copy auf projektübergreifende Quellen aus OpenClaw, `w3yh` und den angeschlossenen Projekten geschärft
  • **`w3yh.xyz/src/components/notes/journal-entry-summary.tsx`**
  • Journal-Einträge rendern jetzt zusätzlich `Basis in den Logs` und `Verifiziert`
  • **`w3yh.xyz/content/notes/interne-logs-sind-kein-journal.mdx`**
  • aus dem Journal-Kanal in eine normale Prinzipien-Note umklassifiziert
  • **`w3yh.xyz/content/notes/spielplatzcheck-wieder-stabil.mdx`**
  • neue konkrete Build-Note zum Datenpfad-/Domain-Fix von `spielplatzcheck`
  • **`w3yh.xyz/content/notes/tyrone-auth-sauber-entkoppelt.mdx`**
  • neue konkrete Build-Note zur Auth-Entkopplung von Tyrone
  • **`w3yh.xyz/content/notes/vercel-braucht-einen-zuordenbaren-commit-author.mdx`**
  • neue konkrete Build-Note zum Vercel-Deploy-Blocker und dem Git-Author-Fix
  • **`w3yh.xyz/docs/public-journal.md`**
  • Journal-Source-of-Truth auf `.openclaw`-Todo, Incident-Log, OpenClaw-Changelog und relevante Projekt-Logs erweitert
  • klargezogen, dass öffentliche Journal-Notes changelog-nah bleiben dürfen, solange sensible Details entfernt werden
  • **`w3yh.xyz/tasks/todo.md`**
  • `W3YH-78` als erledigt markiert und `W3YH-79` für weiteren projektübergreifenden April-Backfill ergänzt

verified

  • `npm run lint`
  • Ergebnis: grüner Lauf
  • `npm run build`
  • Ergebnis: grüner Build mit jetzt `7` Notes und statischer Tagesroute `/notes/day/2026-04-10`
codexopenclaw

w3yh-Production-Deploy nach Vercel-Author-Blocker wiederhergestellt

changed

  • **`w3yh.xyz/.git/config`**
  • Repo-lokalen Git-Author auf `[E-Mail]` umgestellt, damit neue Vercel-Deploys einem verknuepften Account zuordenbar bleiben
  • **`w3yh.xyz`**
  • leeren Trigger-Commit `b7677c2` erzeugt und nach GitHub gepusht, um den blockierten Production-Deploy mit neuer Commit-Author-Metadatenbasis erneut anzustossen

verified

  • `npx vercel deploy --prod --yes --scope vibey434s-projects --debug`
  • Ergebnis: vorheriger `COMMIT_AUTHOR_REQUIRED`-Blocker trat nicht mehr auf; Deployment wurde `Ready` und auf `w3yh.xyz` aliasiert
  • `curl -L https://w3yh.xyz/notes/day/2026-04-10`
  • Ergebnis: neuer Journal-Day-Stand ist jetzt live statt `404`
codexw3yh

Production-Deploy nach Commit-Author-Fix wieder freigeschaltet

changed

  • **`w3yh.xyz/.git/config`**
  • lokalen Git-Author für dieses Repo auf `vibeY434 <[E-Mail]>` umgestellt, damit künftige Vercel-Deploys nicht mehr an der Commit-Author-Zuordnung scheitern
  • **`w3yh.xyz`**
  • leeren Trigger-Commit `b7677c2` erstellt und auf `origin/main` gepusht, um einen neuen Production-Deploy mit zuordenbarem Commit-Author auszulosen

verified

  • `npx vercel deploy --prod --yes --scope vibey434s-projects --debug`
  • Ergebnis: Deployment `dpl_FSroXTa4wzMBTDKmAnwbnWPd2L2H` wurde `Ready` und auf `https://w3yh.xyz` aliasiert
  • `npx vercel ls w3yh.xyz --scope vibey434s-projects`
  • Ergebnis: aktuelles Production-Deployment `[vercel-preview]` ist `Ready`
  • `curl -L https://w3yh.xyz/notes/day/2026-04-10`
  • Ergebnis: Tagesroute liefert live `Freitag, 10. April 2026 | Journal | w3yh.xyz`
codexopenclaw

stocktracker fuer w3yh auditiert und auf klare Folgearbeit reduziert

changed

  • **`w3yh.xyz/docs/stocktracker-audit.md`**
  • Audit mit Domain-Empfehlung `markets.w3yh.xyz`, Produkt-Fit und lokalen Blockern dokumentiert
  • **`w3yh.xyz/tasks/todo.md`**
  • `W3YH-83` geschlossen und die naechsten Schritte auf Product-Cut, Repo-Fix und spaeteres Deployment verteilt

verified

  • `npx vercel project ls --scope vibey434s-projects`
  • Ergebnis: `stocktracker` lebt weiter als eigenes Vercel-Projekt
  • `npm run lint` / `npm run build` in `stocktracker`
  • Ergebnis: lokaler Repo-Stand aktuell nicht gruen und damit noch kein sauberer W3YH-Go-Live-Kandidat
codexw3yh

stocktracker-Audit abgeschlossen und nächste Schritte geschärft

changed

  • **`w3yh.xyz/docs/stocktracker-audit.md`**
  • neuen Audit für `stocktracker` angelegt: Produkt-Fit, bevorzugte `w3yh`-Domain, technischer Status und Go-Live-Blocker dokumentiert
  • **`w3yh.xyz/tasks/todo.md`**
  • `W3YH-83` als erledigt markiert
  • Folgearbeit auf `W3YH-84` bis `W3YH-86` geschärft: Product-Cut, Repo-Stabilisierung und späteres `w3yh`-Deployment

verified

  • `npx vercel project ls --scope vibey434s-projects`
  • Ergebnis: `stocktracker` existiert weiter als eigenes Vercel-Projekt auf `https://stocktracker-six.vercel.app`
  • `curl -I https://stocktracker-six.vercel.app`
  • Ergebnis: `HTTP/2 200`
  • `npm run lint` in `stocktracker`
  • Ergebnis: rot
  • `npm run build` in `stocktracker`
  • Ergebnis: rot
codexopenclaw

w3yh-Journal auf browsebare Tagesansicht und feste Eintragsstruktur gehoben

changed

  • **`w3yh.xyz/src/app/notes/day/[date]/page.tsx`**
  • neue Tagesroute fuer browsebare Journal-Eintraege gebaut
  • **`w3yh.xyz/src/lib/notes.ts`**
  • Notes-Metadaten und Journal-Helper fuer `TL;DR`, `Was gemacht wurde` und `Warum` erweitert
  • **`w3yh.xyz/tasks/todo.md`**
  • `W3YH-76` und `W3YH-77` geschlossen

verified

  • `npm run lint`
  • Ergebnis: gruen
  • `npm run build`
  • Ergebnis: gruen, inklusive statischer Journal-Tagesroute
codexw3yh

browsebares Journal mit Tagesansicht und festem Eintragsformat umgesetzt

changed

  • **`w3yh.xyz/src/app/notes/day/[date]/page.tsx`**
  • neue statische Tagesroute für browsebare Journal-Tage angelegt
  • **`w3yh.xyz/src/components/notes/journal-day-card.tsx`**
  • klickbare Tageskarten für das Journal-Archiv gebaut
  • **`w3yh.xyz/src/components/notes/journal-day-list.tsx`**
  • Tagesliste für browsebare Journal-Einträge angelegt
  • **`w3yh.xyz/src/components/notes/journal-entry-summary.tsx`**
  • wiederverwendbare Darstellung für `TL;DR`, `Was gemacht wurde` und `Warum` eingebaut
  • **`w3yh.xyz/src/lib/notes.ts`**
  • Notes-Metadaten um `kind`, `tldr`, `done` und `why` erweitert sowie Helper für Journal-Tage und Einträge pro Datum ergänzt
  • **`w3yh.xyz/src/app/notes/page.tsx`**
  • Notes-Archiv um einen browsebaren Abschnitt `journal by day` erweitert
  • **`w3yh.xyz/src/app/notes/[slug]/page.tsx`**
  • Journal-Notes rendern jetzt oberhalb des eigentlichen Textes die strukturierte `TL;DR`-/`Was`-/`Warum`-Zusammenfassung
  • **`w3yh.xyz/content/notes/interne-logs-sind-kein-journal.mdx`**
  • erste Journal-Note auf das neue strukturierte Format umgestellt
  • **`w3yh.xyz/tasks/todo.md`**
  • `W3YH-76` und `W3YH-77` als erledigt markiert

verified

  • `npm run lint`
  • Ergebnis: grüner Lauf
  • `npm run build`
  • Ergebnis: grüner Build inklusive statischer Route `/notes/day/2026-04-10`
codexopenclaw

w3yh-Backlog um Stocktracker-Light und browsebares Journal geschaerft

changed

  • **`w3yh.xyz/tasks/todo.md`**
  • Stocktracker jetzt als entschiedener `w3yh`-Baustein statt offener Scope-Frage
  • Journal-Ausbau auf klickbare Tagesseiten und festes `TL;DR`-/`Was`-/`Warum`-Format als neue Folgearbeit aufgenommen
  • **`w3yh.xyz/docs/public-journal.md`**
  • browsebares Tagesformat als redaktionelles Zielbild dokumentiert

verified

  • Gegencheck von `todo.md` und `public-journal.md`
  • Ergebnis: Produkt- und Journalrichtung sind jetzt klar genug, um spaeter ohne erneute Grundsatzdiskussion umgesetzt zu werden
codexw3yh

stocktracker als `w3yh`-Baustein entschieden und browsebares Journal konkretisiert

changed

  • **`w3yh.xyz/tasks/todo.md`**
  • `W3YH-80` als Produktentscheidung geschlossen: `stocktracker` kommt unter `w3yh` als Light-Version von TLI ohne persönliche Portfolio-Daten
  • neue Folgepunkte `W3YH-83` bis `W3YH-85` für Audit, Product-Cut und späteres Deployment unter `w3yh` ergänzt
  • neue Journal-Folgepunkte `W3YH-76` und `W3YH-77` für browsebare Tagesansicht und festes `TL;DR`-/`Was`-/`Warum`-Format aufgenommen
  • **`w3yh.xyz/docs/public-journal.md`**
  • Journal-Zielbild auf klickbare Tagesseiten mit gebündelten Einträgen erweitert
  • Standardformat pro Tag auf `TL;DR`, `Was gemacht wurde` und `Warum` festgezogen

verified

  • `sed -n '1,220p' `w3yh.xyz/docs/public-journal.md`
  • Ergebnis: browsebares Tagesformat und Inhaltsstruktur sind explizit dokumentiert
  • `sed -n '1,120p' `w3yh.xyz/tasks/todo.md`
  • Ergebnis: Stocktracker ist nicht mehr Grundsatzfrage, sondern konkreter Produkt-Backlog
codexopenclaw

w3yh-Hygiene-Routine als wiederholbaren Report gebaut

changed

  • **`w3yh.xyz/scripts/weekly-hygiene-check.sh`**
  • kleine Betriebsroutine gebaut, die offene Arbeit, Changelog, Incident-Log und Notes-Layer in einem Check zusammenzieht
  • **`w3yh.xyz/tasks/todo.md`**
  • `W3YH-75` geschlossen

verified

  • `npm run hygiene:weekly`
  • Ergebnis: wiederholbarer Hygiene-Report laeuft lokal erfolgreich
codexw3yh

wöchentliche Hygiene-Runde als Kommando etabliert

changed

  • **`w3yh.xyz/scripts/weekly-hygiene-check.sh`**
  • neues Shell-Script angelegt, das offenen `todo`-Block, neueste Monats-Changelog-Einträge, jüngste Incident-Zeilen und den Notes-Bestand in einem Terminal-Report zusammenzieht
  • **`w3yh.xyz/package.json`**
  • neuen NPM-Command `hygiene:weekly` für die wiederkehrende Ops-Routine ergänzt
  • **`w3yh.xyz/docs/operations.md`**
  • wöchentliche Hygiene-Runde um den praktischen Kommando-Einstieg erweitert
  • **`w3yh.xyz/tasks/todo.md`**
  • `W3YH-75` als erledigt markiert

verified

  • `npm run hygiene:weekly`
  • Ergebnis: Report mit offenem Todo-Block, aktuellen Changelog-/Incident-Hinweisen und Notes-Bestand wird erfolgreich gerendert
codexopenclaw

ersten oeffentlichen Journal-Export fuer w3yh notes umgesetzt

changed

  • **`w3yh.xyz/content/notes/interne-logs-sind-kein-journal.mdx`**
  • erste explizite Build-/Ops-Note aus internen Learnings abgeleitet und fuer den oeffentlichen Notes-Layer verdichtet
  • **`w3yh.xyz/tasks/todo.md`**
  • `W3YH-74` geschlossen

verified

  • Sichtpruefung des Textes gegen die Public-Journal-Leitplanken
  • Ergebnis: abstrahiert, ohne interne IDs, Pfade oder operative Details
codexw3yh

ersten redaktionellen Journal-Export im Notes-Layer veröffentlicht

changed

  • **`w3yh.xyz/content/notes/interne-logs-sind-kein-journal.mdx`**
  • neue Note aus dem internen Betriebsaufbau abgeleitet: warum `todo`, `changelog`, `incident log` und öffentliches Journal bewusst verschiedene Ebenen bleiben
  • **`w3yh.xyz/src/lib/notes.ts`**
  • neuen Note-Loader für den Journal-Export ergänzt
  • **`w3yh.xyz/src/app/notes/page.tsx`**
  • Archiv-Teaser auf vier Notes aktualisiert
  • **`w3yh.xyz/tasks/todo.md`**
  • `W3YH-74` als erledigt markiert

verified

  • `sed -n '1,220p' `w3yh.xyz/content/notes/interne-logs-sind-kein-journal.mdx`
  • Ergebnis: keine internen Pfade, IDs oder sensiblen Betriebsdetails im öffentlichen Text
  • `sed -n '1,260p' `w3yh.xyz/src/lib/notes.ts`
  • Ergebnis: neue Note ist in der Loader-Liste registriert
codexopenclaw

w3yh-Betriebsmodell und Tyrone-SMTP-Runbook geschaerft

changed

  • **`w3yh.xyz/docs/operations.md`**
  • neue Kurzreferenz fuer die Trennung von `todo`, `changelog`, `incident log` und Public-Journal angelegt
  • **`w3yh.xyz/docs/auth.md`**
  • SMTP-Go-Live fuer Tyrone mit klarer Reihenfolge und Verifikationspunkten dokumentiert
  • **`w3yh.xyz/tasks/todo.md`**
  • `W3YH-73` geschlossen und `W3YH-65` mit dem neuen Runbook verknuepft

verified

  • Sichtpruefung der neuen Ops- und Auth-Doku
  • Ergebnis: Logging-/Publishing-Regeln und SMTP-Naechstschritt sind jetzt ohne Zusatzwissen nachvollziehbar
codexw3yh

Betriebsmodell dokumentiert und SMTP-Go-Live für Tyrone konkretisiert

changed

  • **`w3yh.xyz/docs/operations.md`**
  • neues Runbook für die Trennung von `todo`, `changelog`, `incident log` und öffentlichem Journal angelegt
  • Session-Regel, Minimal-Workflow und wöchentliche Hygiene-Runde explizit beschrieben
  • **`w3yh.xyz/docs/auth.md`**
  • `W3YH-65` um einen klaren SMTP-Go-Live-Ablauf erweitert: benötigte Variablen, sichere Reihenfolge und Post-Go-Live-Checks
  • **`w3yh.xyz/tasks/todo.md`**
  • `W3YH-73` als erledigt markiert
  • `W3YH-65` inhaltlich auf das neue SMTP-Runbook bezogen

verified

  • `sed -n '1,220p' `w3yh.xyz/docs/operations.md`
  • Ergebnis: klare Abgrenzung der vier Betriebs-/Publishing-Ebenen vorhanden
  • `sed -n '1,260p' `w3yh.xyz/docs/auth.md`
  • Ergebnis: SMTP-Go-Live mit Variablenliste und Live-Check dokumentiert
codexopenclaw

w3yh-Backlog fuer Stocktracker sowie Log-/Journal-Betrieb geschaerft

changed

  • **`w3yh.xyz/tasks/todo.md`**
  • klare Ops-Aufgaben fuer `todo`, `changelog`, `incident log` und Public-Journal ergänzt
  • `stocktracker` aus dem unscharfen Parkplatz geloest und in Scope-Entscheid plus optionalen Audit zerlegt

verified

  • Gegencheck mit `public-journal.md`, `PLAN.md` und `stocktracker/README.md`
  • Ergebnis: Journal ist explizit redaktionell, `stocktracker` gehoerte nicht zum initialen Rollout und braucht vor jeder Migration einen bewussten Produktentscheid
codexw3yh

Stocktracker und Ops-/Journal-Rückstand als konkrete Todo-Blöcke geschärft

changed

  • **`w3yh.xyz/tasks/todo.md`**
  • neuen Block `Ops & Publishing` mit `W3YH-73` bis `W3YH-75` angelegt, damit `todo`, `changelog`, `incident log` und öffentliches Journal als getrennte Ebenen mit eigener Arbeitslogik sichtbar bleiben
  • `stocktracker` von einem vagen Parkplatz-Eintrag auf zwei konkrete Backlog-Punkte umgestellt: erst Scope-Entscheid (`W3YH-80`), danach optionaler Tech-/Marken-Audit (`W3YH-83`)

verified

  • `sed -n '1,220p' `w3yh.xyz/docs/public-journal.md`
  • Ergebnis: Journal bleibt redigierter Public-Layer unter `/notes`, keine Roh-Exporte aus internen Logs
  • `sed -n '430,560p' `w3yh.xyz/PLAN.md`
  • Ergebnis: `stocktracker` war nicht Teil des initialen Rollout-Scopes; Erweiterungen sind bewusst als späterer Block gedacht
  • `sed -n '1,220p' `stocktracker/README.md`
  • Ergebnis: separates Vite/Vercel-Projekt mit Yahoo-/RapidAPI-Abhängigkeit, daher vor Migration erst Scope- und Betriebsentscheid nötig
codexopenclaw

`W3YH-30` mit belastbarem Git-Milestone geschlossen

changed

  • **`w3yh.xyz`**
  • annotierten Tag `phase-2-tyrone-live` retrospektiv auf Commit `2eef74b` gesetzt und nach GitHub gepusht
  • **`w3yh.xyz/tasks/todo.md`**
  • `W3YH-30` als abgeschlossen markiert; offene Engineering-Liste damit weiter auf echte Restarbeit reduziert

verified

  • `git -C `w3yh.xyz` show --no-patch --decorate phase-2-tyrone-live`
  • Ergebnis: Tag zeigt auf `2eef74b`
  • `git -C `w3yh.xyz` push origin phase-2-tyrone-live`
  • Ergebnis: Tag ist auf `origin` vorhanden
codexw3yh

`phase-2-tyrone-live` retrospektiv auf den Phase-2-Milestone gesetzt

changed

  • **`w3yh.xyz`**
  • annotierten Git-Tag `phase-2-tyrone-live` auf Commit `2eef74b` erstellt und nach `origin` gepusht
  • **`w3yh.xyz/tasks/todo.md`**
  • `W3YH-30` als erledigt markiert und die Tag-Semantik direkt im Eintrag dokumentiert

verified

  • `git -C `w3yh.xyz` show --no-patch --decorate phase-2-tyrone-live`
  • Ergebnis: Tag zeigt auf `2eef74b` (`Build w3yh hub and notes`)
  • `git -C `w3yh.xyz` push origin phase-2-tyrone-live`
  • Ergebnis: Remote-Tag erfolgreich angelegt
codexopenclaw

`w3yh.xyz` Repo + Vercel-Git-Integration fertiggezogen

changed

  • **`w3yh.xyz`**
  • auf `main` umgestellt, auf GitHub nach `vibeY434/w3yh.xyz` gepusht und `origin` gesetzt
  • **Vercel**
  • bestehendes Projekt `w3yh.xyz` per `vercel git connect` an das neue GitHub-Repo gebunden

verified

  • `git -C `w3yh.xyz` status -sb`
  • Ergebnis: `main...origin/main`
  • `git -C `w3yh.xyz` remote -v`
  • Ergebnis: `origin [E-Mail]:vibeY434/w3yh.xyz.git`
  • `npx vercel git connect [E-Mail]:vibeY434/w3yh.xyz.git --scope vibey434s-projects`
  • Ergebnis: `Connected`

notes

  • Fuer `w3yh.xyz` ist der groesste Git-Infra-Blocker damit weg: Repo, Remote und Vercel-Git sind jetzt aufgeraeumt
codexw3yh

`w3yh.xyz` auf GitHub gepusht und mit Vercel-Git verbunden

changed

  • **`w3yh.xyz`**
  • lokalen Stand auf Branch `main` umbenannt, auf GitHub gepusht und `origin` auf `[E-Mail]:vibeY434/w3yh.xyz.git` gesetzt
  • **Vercel Projekt `w3yh.xyz`**
  • per CLI mit dem neuen GitHub-Repo verbunden
  • **`w3yh.xyz/tasks/todo.md`**
  • Betriebsstand auf GitHub + Vercel-Git-Integration aktualisiert

verified

  • `ssh -T -o BatchMode=yes -o StrictHostKeyChecking=accept-new [E-Mail]`
  • Ergebnis: SSH-Login als `vibeY434` funktioniert
  • `git -C `w3yh.xyz` push -u origin main`
  • Ergebnis: neuer Branch `main` erfolgreich nach `[E-Mail]:vibeY434/w3yh.xyz.git`
  • `git -C `w3yh.xyz` log --oneline --decorate -n 3`
  • Ergebnis: `2eef74b (HEAD -> main, origin/main) Build w3yh hub and notes`
  • `npx vercel git connect [E-Mail]:vibeY434/w3yh.xyz.git --scope vibey434s-projects`
  • Ergebnis: `Connecting GitHub repository: https://github.com/vibeY434/w3yh.xyz` -> `Connected`
  • `npm run lint`
  • Ergebnis: grün nach kleinem Rename-Fix in `src/lib/notes.ts`
  • `npm run build`
  • Ergebnis: grün; `/`, `/notes` und alle drei Note-Slugs werden statisch gebaut

notes

  • Das Repo ist jetzt sauber versioniert und deploy-fähig; künftige Pushes auf `main` können über die Git-Integration direkt ins bestehende Vercel-Projekt laufen
  • `W3YH-30` bleibt trotzdem offen, weil der gewünschte Tag `phase-2-tyrone-live` historisch weiter auf einen ungenauen Commit zeigen würde
codexw3yh

`W3YH-0` als nicht mehr blockierend geschlossen

changed

  • **`w3yh.xyz/tasks/todo.md`**
  • `W3YH-0` aus der offenen Liste entfernt und in den erledigten Phase-0-Block verschoben

verified

  • `npx vercel domains inspect w3yh.xyz --scope vibey434s-projects`
  • Ergebnis: Domain liegt sauber im Team `vibey434s-projects`, Nameserver stimmen und es gibt keinen Pending-/Verification-Hinweis
  • `whois w3yh.xyz`
  • Ergebnis: kein Hold-Status, Registrar `Name.com, Inc`, Domain aktiv
  • `curl -I https://w3yh.xyz`
  • Ergebnis: `HTTP/2 200`

notes

  • Ich werte das als belastbaren Hinweis, dass aktuell keine offene ICANN-Mail-Verifikation mehr im Weg steht
  • `W3YH-30` bleibt dagegen bewusst offen: das Repo `w3yh.xyz` hat bislang erst den Basis-Commit `2511970` und viele uncommittete Folgeänderungen; ein Tag würde momentan also auf den falschen Stand zeigen
codexopenclaw

`spielplatzcheck`-Fix auch auf GitHub `main` nachgezogen

changed

  • **`spielplatzcheck-canonical`**
  • den zuvor nur lokal + live deployten Fix-Stand jetzt auch auf `vibeY434/spielplatzcheck` nach `main` gepusht

verified

  • `ssh -T -o BatchMode=yes -o StrictHostKeyChecking=accept-new [E-Mail]`
  • Ergebnis: SSH-Login als `vibeY434` funktioniert
  • `git -C `spielplatzcheck-canonical` push [E-Mail]:vibeY434/spielplatzcheck.git main:main`
  • Ergebnis: Remote `main` von `5bfc8af` auf `7b59d80` bewegt
  • `git -C `spielplatzcheck-canonical` show -s --format='%h %s' origin/main`
  • Ergebnis: `7b59d80 Fix playground loading with snapshot fallback`

notes

  • Fuer kuenftige Repo-Pushes auf diesem Rechner ist kein neuer GitHub-Setup noetig, solange der vorhandene SSH-Key aktiv bleibt
codexw3yh

`spielplatzcheck` GitHub-Stand mit dem Live-Fix synchronisiert

changed

  • **`spielplatzcheck-canonical`**
  • den kanonischen Repo-Stand `ahead 1` per SSH auf `vibeY434/spielplatzcheck` nach `origin/main` gepusht
  • **`w3yh.xyz/tasks/todo.md`**
  • `W3YH-43` als erledigt markiert

verified

  • `ssh -T -o BatchMode=yes -o StrictHostKeyChecking=accept-new [E-Mail]`
  • Ergebnis: vorhandener SSH-Key authentifiziert erfolgreich als `vibeY434`
  • `git -C `spielplatzcheck-canonical` push [E-Mail]:vibeY434/spielplatzcheck.git main:main`
  • Ergebnis: `5bfc8af..7b59d80 main -> main`
  • `git -C `spielplatzcheck-canonical` fetch origin`
  • Ergebnis: `origin/main` aktualisiert auf `7b59d80`
  • `git -C `spielplatzcheck-canonical` status -sb`
  • Ergebnis: `main...origin/main` ohne Drift

notes

  • Der ursprüngliche HTTPS-Push-Blocker war kein fehlender Repo-Zugriff, sondern nur fehlende HTTPS-Credentials in dieser Shell; SSH-Auth war bereits vorhanden und reicht für künftige Pushes aus
codexopenclaw

`spielplatzcheck` stabilisiert, live neu deployt und Custom-Domain auf frisches Deployment gezogen

changed

  • **`spielplatzcheck-canonical/spielplatzcheck/`**
  • kaputte Overpass-Query, fragile Client-Only-Datenladung und instabile Marker-Keys behoben
  • snapshot-basierte Startseite plus Dynamic-API-Route fuer Live-Refresh eingefuehrt
  • OSM-Snapshot-Generator mit Tile-Resume gebaut und privaten/customer-Zugang aus dem Spielplatz-Fitler ausgeschlossen
  • **Vercel**
  • bestehendes Projekt `spielplatzcheck` neu aus lokaler Arbeitskopie deployed
  • Custom-Domain `spielplatz.w3yh.xyz` manuell vom alten Deployment auf `spielplatzcheck-endb7u2ra-vibey434s-projects.vercel.app` umgehaengt

verified

  • Lokal:
  • `npm run lint` -> gruen
  • `npm run build` -> gruen
  • `http://[localhost]/api/playgrounds` -> Live-Daten statt Fehlerzustand
  • Vercel:
  • `npx vercel deploy --prod --yes --scope vibey434s-projects` fuer Projekt `spielplatzcheck`
  • `npx vercel alias set spielplatzcheck-endb7u2ra-vibey434s-projects.vercel.app spielplatz.w3yh.xyz --scope vibey434s-projects`
  • Live:
  • `curl -I -L https://spielplatz.w3yh.xyz` -> `HTTP/2 200`
  • `https://spielplatz.w3yh.xyz/api/playgrounds` -> `429` Live-Spielplaetze

notes

  • Ein versehentlich erzeugtes Nebenprojekt `spielplatzcheck-canonical` wurde direkt wieder per `npx vercel remove spielplatzcheck-canonical --yes --scope vibey434s-projects` entfernt
  • GitHub-Write fehlte in der Shell, daher erfolgte der Rollout direkt per Vercel-CLI statt per `git push`
codexw3yh

`spielplatzcheck` end-to-end gehärtet und live auf `spielplatz.w3yh.xyz` ausgerollt

changed

  • **`spielplatzcheck-canonical/spielplatzcheck/app/page.tsx`**
  • Startseite auf snapshot-basierte Initialdaten umgestellt statt den Overpass-Live-Fetch schon im Build zu erzwingen
  • **`spielplatzcheck-canonical/spielplatzcheck/app/api/playgrounds/route.ts`**
  • neue Dynamic-Route für Live-Refresh eingeführt; dadurch läuft der Overpass-Fetch erst zur Laufzeit und blockiert keine Production-Builds mehr
  • **`spielplatzcheck-canonical/spielplatzcheck/components/HomePageClient.tsx`**
  • neue Client-Shell für Snapshot-First + Live-Refresh gebaut
  • **`spielplatzcheck-canonical/spielplatzcheck/lib/playgrounds-server.ts`**
  • Query-Syntax repariert, OSM-Schlüssel auf `osmType:id` gehärtet, Live-Fallbacks über mehrere Overpass-Endpunkte plus Snapshot-Rückfall eingebaut
  • explizit private/customer-Spielplätze ausgeschlossen
  • **`spielplatzcheck-canonical/spielplatzcheck/scripts/update_mainz_snapshot.py`**
  • gekachelten OSM-API-Snapshot-Generator mit Retry/Resume gebaut
  • **`spielplatzcheck-canonical/spielplatzcheck/data/mainz-playgrounds.snapshot.json`**
  • aktueller Mainz-Snapshot (`423` öffentlich erreichbare Spielplätze, Stand `2026-04-10`) ins Repo gelegt
  • **`w3yh.xyz/tasks/todo.md`**
  • `W3YH-41` um den echten Stabilitätszustand von `spielplatzcheck` ergänzt

verified

  • Lokal in der sauberen Git-Kopie:
  • `npm run lint` -> grün
  • `npm run build` -> grün
  • `PORT=3015 npm run start`
  • `http://[localhost]/api/playgrounds` -> `424` Live-Spielplätze, Quelle `z.overpass-api.de`, Warnung über Fallback-Endpoint
  • Production-Deploy:
  • `npx vercel link --yes --scope vibey434s-projects --project spielplatzcheck`
  • `npx vercel deploy --prod --yes --scope vibey434s-projects`
  • anschließend manueller Alias-Fix:
  • `npx vercel alias remove spielplatz.w3yh.xyz --yes --scope vibey434s-projects`
  • `npx vercel alias set spielplatzcheck-endb7u2ra-vibey434s-projects.vercel.app spielplatz.w3yh.xyz --scope vibey434s-projects`
  • Live:
  • `curl -I -L https://spielplatz.w3yh.xyz` -> `HTTP/2 200`
  • `curl -s https://spielplatz.w3yh.xyz | rg -o '<title>[^<]+' -m 1` -> `Spielplatzcheck Mainz | Finde den perfekten Spielplatz`
  • `https://spielplatz.w3yh.xyz/api/playgrounds` -> `429` Live-Spielplätze, Quelle `overpass.private.coffee`, keine Warnung

notes

  • Ein direkter GitHub-Push war aus dieser Shell nicht möglich, weil für `https://github.com` kein schreibfähiger Terminal-Credential-Helper vorhanden war; der Live-Rollout lief deshalb bewusst direkt über Vercel CLI
  • Ein versehentlich angelegtes Vercel-Nebenprojekt `spielplatzcheck-canonical` wurde nach dem Rollout sofort wieder entfernt
  • Der größere Mainz-Count gegenüber alten Texten kommt nicht aus einem Bug, sondern aus der jetzt wieder funktionierenden Datenpipeline; private/customer-Flächen werden bereits herausgefiltert, eine spätere inhaltliche Normalisierung gegen offizielle Stadtquellen bleibt trotzdem sinnvoll
codexopenclaw

Vercel-Alias fuer `spielplatz.w3yh.xyz` auf `spielplatzcheck` korrigiert

changed

  • **Vercel Alias-Stand**
  • `spielplatz.w3yh.xyz` war versehentlich auf das Production-Deployment von `spielideengenerator` gesetzt
  • Alias entfernt und auf `spielplatzcheck-lur6b1ltb-vibey434s-projects.vercel.app` neu gesetzt

verified

  • `npx vercel@50.43.0 alias remove spielplatz.w3yh.xyz --yes --scope vibey434s-projects --token ...`
  • Ergebnis: alter Alias erfolgreich entfernt
  • `npx vercel@50.43.0 alias set spielplatzcheck-lur6b1ltb-vibey434s-projects.vercel.app spielplatz.w3yh.xyz --scope vibey434s-projects --token ...`
  • Ergebnis: Alias neu auf `spielplatzcheck`
  • `curl -I -L https://spielplatz.w3yh.xyz`
  • Ergebnis: `HTTP/2 200`
  • `curl -s https://spielplatz.w3yh.xyz | rg -o '<title>[^<]+' -m 1`
  • Ergebnis: `Spielplatzcheck Mainz | Finde den perfekten Spielplatz`

notes

  • Vercel-Projekte und Domains waren korrekt vorhanden; nur die Alias-Zuordnung fuer die Subdomain war falsch
  • damit zeigt der Hub-Link jetzt wieder auf die beabsichtigte Familien-App statt auf den alten Spielgenerator
codexw3yh

`spielplatz.w3yh.xyz` vom falschen Spielgenerator-Alias auf `spielplatzcheck` korrigiert

changed

  • **Vercel Alias**
  • `spielplatz.w3yh.xyz` vom Production-Deployment `spielideengenerator-eyapkux5m-vibey434s-projects.vercel.app` gelöst
  • denselben Host auf `spielplatzcheck-lur6b1ltb-vibey434s-projects.vercel.app` gesetzt
  • **`w3yh.xyz/tasks/todo.md`**
  • `W3YH-41` auf den echten Zielzustand korrigiert: `spielplatzcheck` statt `spielideengenerator`

verified

  • `npx vercel@50.43.0 alias remove spielplatz.w3yh.xyz --yes --scope vibey434s-projects --token ...`
  • Ergebnis: alter Alias erfolgreich entfernt
  • `npx vercel@50.43.0 alias set spielplatzcheck-lur6b1ltb-vibey434s-projects.vercel.app spielplatz.w3yh.xyz --scope vibey434s-projects --token ...`
  • Ergebnis: `spielplatz.w3yh.xyz` zeigt jetzt auf das Production-Deployment von `spielplatzcheck`
  • `npx vercel@50.43.0 alias ls --scope vibey434s-projects --token ... | rg 'spielplatz\\.w3yh\\.xyz'`
  • Ergebnis: Alias listet `spielplatzcheck-lur6b1ltb-vibey434s-projects.vercel.app -> spielplatz.w3yh.xyz`
  • `curl -I -L https://spielplatz.w3yh.xyz`
  • Ergebnis: `HTTP/2 200`
  • `curl -s https://spielplatz.w3yh.xyz | rg -o '<title>[^<]+' -m 1`
  • Ergebnis: `Spielplatzcheck Mainz | Finde den perfekten Spielplatz`

notes

  • Der Fehler war kein Cache, sondern eine echte Fehlzuordnung aus Phase 3
  • Der Link im Hub führt damit jetzt auf die richtige App, allerdings auf den zuletzt produktiv deployten Stand von `spielplatzcheck` vom `2026-01-19`
codexopenclaw

Hosted-Supabase-Auth fuer Tyrone live auf `terminal.w3yh.xyz` gepatcht

changed

  • **`.openclaw/workspace/projects/tyrone-terminal/supabase/apply-hosted-auth-config.sh`**
  • der vorbereitete Live-Pfad wurde jetzt tatsaechlich gegen das geteilte Supabase-Projekt ausgefuehrt
  • **`.openclaw/workspace/projects/tyrone-terminal/supabase/README.md`**
  • der dokumentierte Patch-Pfad ist damit nicht mehr nur theoretisch, sondern der reale produktive Zustand

verified

  • User-Run: `./supabase/apply-hosted-auth-config.sh --allow-shared-project`
  • Ergebnis: Supabase lieferte den aktualisierten Hosted-Auth-Block zurueck
  • Rueckgabe aus Supabase
  • `site_url=https://terminal.w3yh.xyz`
  • `uri_allow_list=https://terminal.w3yh.xyz/login,https://terminal.w3yh.xyz/auth/callback,http://localhost:3000/**,https://*-vibey434s-projects.vercel.app/**`
  • Tyrone-Subjects und HTML-Templates fuer Magic Link, Confirmation und Recovery sind live
  • `smtp_host`, `smtp_port`, `smtp_user`, `smtp_pass`, `smtp_admin_email` und `smtp_sender_name` bleiben `null`

notes

  • die Shared-Supabase-Auth ist damit bewusst auf Tyrone ausgerichtet, obwohl `meindeinunser.com` noch dasselbe Projekt nutzt
  • der verbleibende Rest ist rein operativ: eigener SMTP-/Resend-Versand fuer hoehere Zuverlaessigkeit und weniger Rate-Limit-Reibung
codexw3yh

W3YH-64 per Hosted-Supabase-Patch abgeschlossen

changed

  • **`w3yh.xyz/docs/auth.md`**
  • Live-Status der Hosted-Supabase-Auth auf den echten Remote-Patch gezogen
  • festgehalten, dass `site_url`, Redirect-Allowlist und Tyrone-Mail-Templates jetzt produktiv auf `terminal.w3yh.xyz` zeigen
  • SMTP-Restzustand explizit dokumentiert: Default-Mailversand noch aktiv, alle `smtp_*`-Felder weiter `null`
  • **`w3yh.xyz/tasks/todo.md`**
  • `W3YH-64` als erledigt markiert
  • `W3YH-65` auf den verbleibenden SMTP-/Resend-Rest eingegrenzt

verified

  • User-Run: `./supabase/apply-hosted-auth-config.sh --allow-shared-project`
  • Ergebnis: Hosted-Auth-Config antwortet mit `site_url=https://terminal.w3yh.xyz`
  • Rückgabe aus Supabase
  • `uri_allow_list` enthält `https://terminal.w3yh.xyz/login` und `https://terminal.w3yh.xyz/auth/callback`
  • `mailer_subjects_magic_link`, `mailer_subjects_confirmation` und `mailer_subjects_recovery` sind Tyrone-gebrandet
  • `mailer_templates_magic_link_content`, `mailer_templates_confirmation_content` und `mailer_templates_recovery_content` enthalten die Tyrone-HTML-Templates
  • `smtp_host`, `smtp_port`, `smtp_user`, `smtp_pass`, `smtp_admin_email` und `smtp_sender_name` sind weiterhin `null`

notes

  • `W3YH-64` ist damit nicht mehr nur vorbereitet, sondern produktiv vollzogen
  • `W3YH-65` bleibt der nächste klare Betriebs-Schritt: eigener SMTP-/Resend-Versand statt Supabase-Default-Mailer
codexw3yh

Projekt-Kacheln im Hub direkt klickbar gemacht

changed

  • **`w3yh.xyz/src/components/landing/project-card.tsx`**
  • Live- und Auth-Kacheln als direkte Links umgesetzt
  • Ziel-Host unten rechts visuell als Link markiert
  • Navigation öffnet bewusst in einem neuen Tab, damit der Hub als Startpunkt stehenbleibt

verified

  • `npm run build`
  • Ergebnis: Produktions-Build erfolgreich
  • `curl -I https://w3yh.xyz`
  • Ergebnis: `HTTP/2 200`
  • `curl -s https://w3yh.xyz | rg 'href="https://(terminal|gym|spielplatz)\.w3yh\.xyz"'`
  • Ergebnis: Live-HTML enthält direkte Links für `terminal`, `gym` und `spielplatz`

notes

  • Dadurch fällt das Copy-and-paste der Subdomains aus dem Hub weg; `w3yh.xyz` funktioniert jetzt auch als echte Routing-Oberfläche
  • `soon`-Karten bleiben absichtlich nicht klickbar
codexopenclaw

Tyrone-Hosted-Auth-Patch fuer das geteilte Supabase-Projekt guardiert und reproduzierbar gemacht

changed

  • **`.openclaw/workspace/projects/tyrone-terminal/supabase/apply-hosted-auth-config.sh`**
  • neues Guard-Script fuer Hosted-Supabase-Auth angelegt
  • rendert reproduzierbar den PATCH-Payload fuer `site_url`, Redirect-Allowlist und Tyrone-Mail-Templates
  • blockt Live-Patches ohne explizites `--allow-shared-project`
  • kann optional SMTP-Daten (`TYRONE_SMTP_*`) in denselben PATCH aufnehmen
  • **`.openclaw/workspace/projects/tyrone-terminal/supabase/README.md`**
  • Script-Nutzung, Shared-Project-Guard und SMTP-Env-Variablen dokumentiert

verified

  • `curl -I -L https://www.meindeinunser.com`
  • Ergebnis: `HTTP/2 200`; Projekt ist weiterhin live, der Shared-Guard ist also aktuell bewusst notwendig
  • `.openclaw/workspace/projects/tyrone-terminal/supabase/apply-hosted-auth-config.sh` --dry-run | jq ...`
  • Ergebnis: Payload enthaelt `site_url=https://terminal.w3yh.xyz`, die erwartete Redirect-Allowlist und alle drei Tyrone-Mail-Templates
  • Dry-Run mit gesetzten `TYRONE_SMTP_*`-Variablen
  • Ergebnis: SMTP-Felder (`smtp_host`, `smtp_port`, `smtp_user`, `smtp_admin_email`, `smtp_sender_name`) werden sauber in den Payload aufgenommen
  • `.openclaw/workspace/projects/tyrone-terminal/supabase/apply-hosted-auth-config.sh`
  • Ergebnis: verweigert absichtlich den Live-Patch ohne `--allow-shared-project`

notes

  • es gibt lokal weiterhin keinen echten `SUPABASE_ACCESS_TOKEN`; ohne den bleibt der Remote-Schritt bewusst bei Dry-Run
  • damit ist der letzte Hosted-Auth-Schritt jetzt vorbereitet, aber nicht versehentlich schon gegen das noch geteilte Projekt angewendet
codexw3yh

W3YH-64 und W3YH-65 auf einen echten Hosted-Patch-Workflow mit Shared-Guard gehoben

changed

  • **`w3yh.xyz/docs/auth.md`**
  • Hosted-Patch-Guard für Tyrone dokumentiert
  • klar festgehalten, dass ohne `SUPABASE_ACCESS_TOKEN` nur Dry-Run möglich ist
  • Shared-Supabase-Risiko explizit beschrieben, solange `meindeinunser.com` noch live ist
  • **`w3yh.xyz/tasks/todo.md`**
  • W3YH-64 und W3YH-65 auf den neuen Stand gezogen: reproduzierbarer Patch-Pfad steht, Remote-Apply und echte SMTP-Zugangsdaten fehlen noch

verified

  • `curl -I -L https://www.meindeinunser.com`
  • Ergebnis: `HTTP/2 200`
  • `./supabase/apply-hosted-auth-config.sh --dry-run | jq ...`
  • Ergebnis: Payload für `site_url`, Redirect-Allowlist und Tyrone-Templates ist konsistent
  • SMTP-Dry-Run mit Beispielwerten
  • Ergebnis: SMTP-Felder werden korrekt in denselben Payload aufgenommen
  • Guard-Verhalten ohne Flags
  • Ergebnis: Script verweigert absichtlich den Live-Patch gegen das geteilte Projekt

notes

  • der Rest für W3YH-64 ist damit kein unscharfer Dashboard-Task mehr, sondern ein klarer letzter Remote-Apply mit bewusstem Go
  • der Rest für W3YH-65 ist jetzt auf eine konkrete Voraussetzung reduziert: echte SMTP-/Resend-Zugangsdaten plus gültiger Supabase-Management-Token
codexopenclaw

Tyrone-Auth auf expliziten Public-Origin und projekt-eigene Supabase-Mail-Assets gehoben

changed

  • **`.openclaw/workspace/projects/tyrone-terminal/src/lib/supabase/auth-config.ts`**
  • expliziten Public-Origin `NEXT_PUBLIC_TYRONE_APP_ORIGIN` fuer Auth-Redirects ergaenzt
  • Helfer eingebaut, der den konfigurierten Tyrone-Origin gegen Proxy-Header/Fallback bevorzugt
  • **`.openclaw/workspace/projects/tyrone-terminal/src/app/api/auth/magic-link/route.ts`**
  • Magic-Link-Redirects auf den neuen Public-Origin-Helfer umgestellt
  • **`.openclaw/workspace/projects/tyrone-terminal/src/app/auth/callback/route.ts`**
  • Callback-Redirects ebenfalls auf den expliziten Tyrone-Origin gehoben
  • **`.openclaw/workspace/projects/tyrone-terminal/src/__tests__/lib/auth-config.test.ts`**
  • Tests fuer expliziten App-Origin und invalides Origin-Handling ergaenzt
  • **`.openclaw/workspace/projects/tyrone-terminal/.env.local`**
  • produktiven Public-Origin `https://terminal.w3yh.xyz` explizit gesetzt
  • **`.openclaw/workspace/projects/tyrone-terminal/.env.example`**
  • Beispiel-Env fuer Supabase, Public-Origin, Direktzugriff und Allowlist neu angelegt
  • **`.openclaw/workspace/projects/tyrone-terminal/supabase/README.md`**
  • Supabase-Runbook fuer Redirects, Templates und SMTP festgehalten
  • **`.openclaw/workspace/projects/tyrone-terminal/supabase/email-templates/magic-link.html`**
  • **`.openclaw/workspace/projects/tyrone-terminal/supabase/email-templates/confirm-signup.html`**
  • **`.openclaw/workspace/projects/tyrone-terminal/supabase/email-templates/reset-password.html`**
  • Tyrone-eigene Mail-Templates angelegt, damit der Shared-Supabase-Stack lokal nicht mehr an `meindeinunser`-Assets haengt

verified

  • `cd `.openclaw/workspace/projects/tyrone-terminal` && npm test -- --runInBand src/__tests__/lib/auth-config.test.ts`
  • Ergebnis: `15` Tests gruen
  • `cd `.openclaw/workspace/projects/tyrone-terminal` && npm run build`
  • Ergebnis: Build gruen
  • `pm2 restart [process] --update-env`
  • Runtime mit neuem Origin-Env neu geladen
  • `curl -I https://terminal.w3yh.xyz/login`
  • Ergebnis: `200`
  • `curl -I https://terminal.w3yh.xyz/`
  • Ergebnis: `307 /login?next=%2F`

notes

  • damit ist die produktive Tyrone-Runtime nicht mehr nur auf Forwarded-Header und ein historisch geteiltes Supabase-Dashboard angewiesen
  • der verbleibende Rest fuer die komplette Entkopplung ist jetzt bewusst ein manueller Dashboard-/SMTP-Schritt und keine versteckte lokale Altlast mehr
codexw3yh

W3YH-64 und W3YH-65 auf explizites Tyrone-Runbook und ehrlichen Shared-Supabase-Restzustand gehoben

changed

  • **`w3yh.xyz/docs/auth.md`**
  • Stand auf `2026-04-10` gehoben
  • dokumentiert, dass Tyrone jetzt eine explizite Public-Origin-Konfiguration nutzt
  • projekt-eigene Supabase-Assets im Tyrone-Workspace verlinkt
  • verbleibenden Rest für das Shared-Supabase-Projekt auf den echten Dashboard-/SMTP-Abgleich eingegrenzt
  • **`w3yh.xyz/tasks/todo.md`**
  • W3YH-64 und W3YH-65 präzisiert: lokaler Code/Runbook stehen, offen sind Dashboard-Sync und echtes SMTP-Setup

verified

  • `cd `.openclaw/workspace/projects/tyrone-terminal` && npm test -- --runInBand src/__tests__/lib/auth-config.test.ts`
  • Ergebnis: `15` Tests grün
  • `cd `.openclaw/workspace/projects/tyrone-terminal` && npm run build`
  • Ergebnis: Build grün
  • `pm2 restart [process] --update-env`
  • Runtime neu geladen
  • `curl -I https://terminal.w3yh.xyz/login`
  • Ergebnis: `200`
  • `curl -I https://terminal.w3yh.xyz/`
  • Ergebnis: `307 /login?next=%2F`

notes

  • W3YH-64 ist damit lokal technisch weitgehend entwirrt, aber noch nicht vollständig abgeschlossen, solange das gemeinsame Supabase-Dashboard nicht bewusst auf die neuen Tyrone-Assets gezogen wurde
  • W3YH-65 ist jetzt als klarer Betriebs-Schritt sichtbar: SMTP/Resend hinterlegen statt weiter auf Default-Rate-Limits zu hoffen
codexw3yh

Public/Private-Split und den privaten Hub als Zielbild dokumentiert

changed

  • **`w3yh.xyz/docs/private-hub.md`**
  • Public/Private-Split für `w3yh.xyz` festgezogen
  • festgelegt, dass sensible Tools nicht unter `w3yh.xyz/private/...` laufen
  • privaten Hub als schlanken Launcher beschrieben
  • bevorzugten Einstieg `private.w3yh.xyz` plus Fallback `vault.w3yh.xyz` dokumentiert
  • Regeln für App-Grenzen, Cookies und Minimalumfang des privaten Hubs festgelegt
  • **`w3yh.xyz/tasks/todo.md`**
  • W3YH-62 und W3YH-63 auf erledigt gesetzt

notes

  • das ist absichtlich noch keine Implementierung des privaten Hubs, sondern die Architekturentscheidung davor
  • dadurch bleiben spätere private Tools sauber getrennt, ohne den öffentlichen Hub aufzublähen
codexw3yh

Public-Journal-Regeln, Export-Takt und `/notes`-Entscheid festgezogen

changed

  • **`w3yh.xyz/docs/public-journal.md`**
  • Zielbild für das öffentliche Journal definiert
  • Journal bewusst als redigierten Layer statt Rohlog beschrieben
  • Export-Modell auf inkrementelle Wochen-/Monats-Batches festgelegt
  • Entscheid dokumentiert, dass das Journal vorerst unter `w3yh.xyz/notes` bleibt
  • Redaktions- und Anonymisierungsregeln plus Review-Checkliste festgezogen
  • **`w3yh.xyz/tasks/todo.md`**
  • W3YH-53, W3YH-54, W3YH-55 und W3YH-56 auf erledigt gesetzt

notes

  • das ist bewusst eine Produkt- und Redaktionsentscheidung, keine neue Deploy-Fläche
  • die Notes können damit weiter wachsen, ohne dass später interne Operativdaten rückwirkend aus öffentlichen Texten herausoperiert werden müssen
codexw3yh

Notes-Layer mit MDX, drei ersten Texten und Live-Routen auf Production gehoben

changed

  • **Dependencies / Config**
  • `@next/mdx`, `@mdx-js/loader`, `@mdx-js/react`, `@types/mdx`, `remark-frontmatter`, `remark-mdx-frontmatter` installiert
  • **`w3yh.xyz/next.config.ts`**
  • MDX-Support via `createMDX(...)` aktiviert
  • `pageExtensions` um `md` und `mdx` erweitert
  • Frontmatter-Exports über Remark-Plugins aktiviert
  • **MDX / Notes-Infrastruktur**
  • **`w3yh.xyz/src/mdx-components.tsx`**
  • globale MDX-Komponenten für Headings, Listen, Links, Code und Blockquotes angelegt
  • **`w3yh.xyz/src/lib/notes.ts`**
  • serverseitige Notes-Sammlung, Sortierung, Datumsformatierung und Slug-Lookup gebaut
  • **`w3yh.xyz/src/components/notes/note-card.tsx`**
  • **`w3yh.xyz/src/components/notes/note-list.tsx`**
  • **`w3yh.xyz/src/components/notes/notes-shell.tsx`**
  • neue Notes-Komponenten für Index, Teaser und Detailseiten
  • **Routen**
  • **`w3yh.xyz/src/app/notes/page.tsx`**
  • Notes-Index mit Archiv-Grid angelegt
  • **`w3yh.xyz/src/app/notes/[slug]/page.tsx`**
  • Detailroute mit `generateStaticParams` und Seiten-Metadaten angelegt
  • **Content**
  • **`w3yh.xyz/content/notes/signal-statt-lärm.mdx`**
  • **`w3yh.xyz/content/notes/vibecoding-mit-ownership.mdx`**
  • **`w3yh.xyz/content/notes/kleine-systeme-klare-kanten.mdx`**
  • erste drei Notes zu Geopolitik, Vibecoding und Systemdesign angelegt
  • **Landing**
  • **`w3yh.xyz/src/app/page.tsx`**
  • Notes-Panel auf echte Live-Teaser umgestellt
  • **`w3yh.xyz/src/components/landing/terminal-hero.tsx`**
  • Phase-/Next-Move-Texte auf den aktuellen Projektstand gehoben
  • **`w3yh.xyz/src/components/landing/project-grid.tsx`**
  • Projekt-Headline aktualisiert
  • **`w3yh.xyz/src/components/landing/footer.tsx`**
  • Footer-Text auf `routing hub + notes` gehoben
  • **`w3yh.xyz/tasks/todo.md`**
  • W3YH-50, W3YH-51 und W3YH-52 auf erledigt gesetzt

verified

  • `cd `w3yh.xyz` && npm run build`
  • Ergebnis: Build grün, statische Routen `/notes` plus drei `notes/[slug]`-Seiten generiert
  • `npx vercel@50.43.0 deploy --prod --yes --scope vibey434s-projects --token ...`
  • Deployment: `dpl_Esn4ptWMv8qQ3bjNrfX2T8LJkfwu`
  • Production-URL: `[vercel-preview]`
  • Alias: `https://w3yh.xyz`
  • `curl -I https://w3yh.xyz`
  • Ergebnis: `HTTP/2 200`
  • `curl -I https://w3yh.xyz/notes`
  • Ergebnis: `HTTP/2 200`
  • `curl -I https://w3yh.xyz/notes/signal-statt-lärm`
  • Ergebnis: `HTTP/2 200`
  • `curl -s https://w3yh.xyz/notes`
  • Live-HTML enthält den Notes-Index und alle drei Note-Titel
  • `curl -s https://w3yh.xyz/notes/signal-statt-lärm`
  • Live-HTML enthält Titel und Zwischenüberschriften der Detailseite

notes

  • der Content-Layer ist jetzt bewusst kurzformatig gestartet und noch kein öffentliches Dev-Journal
  • die nächsten offenen Punkte in Phase 4 sind damit eher redaktionell und organisatorisch: Journal-Zuschnitt, Exportregeln und Anonymisierung
codexw3yh

Phase 3 Domains für gym und spielplatz live geschaltet und den Hub neu deployed

changed

  • **Vercel Domains**
  • `gym.w3yh.xyz` per Vercel CLI dem Projekt `gym-tracker` hinzugefügt
  • `spielplatz.w3yh.xyz` per Vercel CLI dem Projekt `spielideengenerator` hinzugefügt
  • **`w3yh.xyz/src/lib/projects.ts`**
  • `gym`-Status von `soon` auf `live` gesetzt
  • `spielplatz`-Status von `soon` auf `live` gesetzt
  • **`w3yh.xyz/tasks/todo.md`**
  • W3YH-40, W3YH-41 und W3YH-42 auf erledigt gesetzt

verified

  • `npx vercel@50.43.0 domains add gym.w3yh.xyz gym-tracker --scope vibey434s-projects --token ...`
  • Ergebnis: Domain erfolgreich hinzugefügt und auf das aktuelle Production-Deployment gelegt
  • `npx vercel@50.43.0 domains add spielplatz.w3yh.xyz spielideengenerator --scope vibey434s-projects --token ...`
  • Ergebnis: Domain erfolgreich hinzugefügt und auf das aktuelle Production-Deployment gelegt
  • `dig +short gym.w3yh.xyz`
  • Ergebnisse: `216.198.79.1`, `64.29.17.65`
  • `dig +short spielplatz.w3yh.xyz`
  • Ergebnisse: `64.29.17.65`, `64.29.17.1`
  • `curl -I -L https://gym.w3yh.xyz`
  • Ergebnis: `HTTP/2 200`
  • `curl -I -L https://spielplatz.w3yh.xyz`
  • Ergebnis: `HTTP/2 200`
  • `cd `w3yh.xyz` && npm run build`
  • Ergebnis: Build grün
  • `npx vercel@50.43.0 deploy --prod --yes --scope vibey434s-projects --token ...`
  • Deployment: `dpl_DAGnZtwWNfCiPCwo5wN3BPZRAqk8`
  • Production-URL: `[vercel-preview]`
  • Alias: `https://w3yh.xyz`
  • `curl -s https://w3yh.xyz | rg 'gym\\.w3yh\\.xyz|spielplatz\\.w3yh\\.xyz|terminal\\.w3yh\\.xyz'`
  • Live-HTML enthält die neuen Zielhosts im ausgelieferten Hub

notes

  • beide alten Domains bleiben vorerst parallel bestehen; die Umhängung ist additive und nicht destruktiv
  • `W3YH-30` bleibt separat offen, weil im `w3yh.xyz`-Repo bisher nur der `phase-0-baseline`-Commit existiert und ein `phase-2-tyrone-live`-Tag auf dem aktuellen Git-Stand noch falsch wäre
codexw3yh

W3YH-0 auf feste Deadline und klares Dashboard-/Support-Runbook aktualisiert

changed

  • **`w3yh.xyz/tasks/todo.md`**
  • allgemeinen Stand auf `2026-04-10` gehoben
  • W3YH-0 mit harter Frist `2026-04-24` statt nur "15 Tage ab Kauf" konkretisiert
  • aktuellen Live-Status auf `2026-04-10 ` nachgezogen
  • nächsten produktiven Schritt konkretisiert:
  • im Vercel-Dashboard nach `Pending verification` / Registrant-Hinweis schauen
  • Verifikationsmail neu senden oder Registrant-Email aktualisieren
  • bei weiterem Ausbleiben Vercel-Support mit Kaufzeit + Domain-ID anschreiben

verified

  • `whois w3yh.xyz`
  • Creation Date: `2026-04-09`
  • Registry Domain ID: `D629032888-CNIC`
  • Registrar: `Name.com, Inc`
  • Nameserver: `NS1.VERCEL-DNS.COM`, `NS2.VERCEL-DNS.COM`
  • Domain Status: aktuell nur `serverTransferProhibited`, `clientTransferProhibited`, `addPeriod`; kein Hold-Status sichtbar
  • Vercel-Doku `Troubleshooting domains`
  • pending verification soll im Team-Domain-Dashboard sichtbar sein
  • von dort aus lassen sich Verifikationsmail erneut senden oder Registrant-Daten aktualisieren

notes

  • technisch gibt es Stand jetzt keinen Hinweis darauf, dass die Domain bereits deaktiviert oder in einen Hold-Zustand gefallen ist
  • der verbleibende Rest ist kein DNS- oder Deploy-Problem mehr, sondern ein Registrar-/Kontaktverifikationsschritt über Dashboard, Mailbox oder Support

Incidents

W3YH / Vercel Production Deploy
~20 mincodex

Problem: `w3yh.xyz` blieb trotz Pushes auf einem alten Production-Stand; neue Journal-Seiten waren live nicht sichtbar

Ursache: Vercel blockierte Deploys mit `COMMIT_AUTHOR_REQUIRED`, weil die bisherigen Commits auf `[E-Mail]` liefen und der Commit-Autor vom Hobby-Team nicht als verifizierter Git-User aufgeloest wurde

Fix: neuen leeren Trigger-Commit mit `vibeY434 <[E-Mail]>` erzeugt, erneut deployed, Alias auf `w3yh.xyz` verifiziert und den Repo-lokalen Git-Author fuer kuenftige Commits auf dieselbe Mail umgestellt

spielplatzcheck / Mainz Loading + Map
~150 mincodex

Problem: `spielplatz.w3yh.xyz` zeigte nur noch "Spielplätze konnten nicht geladen werden" und keine Karte; zusätzlich hing die Custom-Domain nach dem Fix-Deploy zunächst noch am alten Deployment

Ursache: Die Overpass-Query enthielt kaputte Kommentare, der Fetch lief fragil direkt im Client/Build gegen überlastete Drittendpunkte, und die Domain-Aliasierung blieb nach dem neuen Production-Deploy manuell auf dem alten Build stehen

Fix: Datenpfad auf Snapshot-First + Dynamic-API-Refresh umgebaut, Overpass-Fallbacks und OSM-Snapshot-Generator ergänzt, private/customer-Flächen ausgeschlossen, Marker-Keys gehärtet, Projekt neu auf Vercel deployed und `spielplatz.w3yh.xyz` explizit auf `spielplatzcheck-endb7u2ra-vibey434s-projects.vercel.app` umgehängt

W3YH / Spielplatz-Domainrouting
~15 mincodex

Problem: Der Hub-Link `spielplatz.w3yh.xyz` landete auf dem alten Spielgenerator statt auf `spielplatzcheck`

Ursache: In Phase 3 wurde die Subdomain als Vercel-Alias versehentlich auf das Production-Deployment von `spielideengenerator` gesetzt, obwohl der Plan das separate Projekt `spielplatzcheck` vorsah

Fix: alten Alias entfernt, `spielplatz.w3yh.xyz` auf `spielplatzcheck-lur6b1ltb-vibey434s-projects.vercel.app` gesetzt und den Live-Stand per Alias-Liste plus `HTTP/2 200` und Seitentitel verifiziert

Tyrone Terminal / Hosted Supabase Auth
~10 mincodex

Problem: Der letzte Shared-Supabase-Schritt fuer Tyrone war vorbereitet, aber noch nicht produktiv angewendet; dadurch blieb unklar, ob `site_url`, Redirect-Allowlist und Mail-Templates wirklich live auf `terminal.w3yh.xyz` zeigen

Ursache: Der Guard-Pfad und die lokalen Tyrone-Assets standen bereits, aber ohne echten Management-Token und bewussten Remote-Apply blieb der produktive Hosted-Auth-Zustand nur ein Dry-Run

Fix: Hosted-Auth per Management-API bewusst gepatcht und die Rueckgabe geprueft: `site_url` jetzt `https://terminal.w3yh.xyz`, Redirect-Allowlist plus Tyrone-Subjects/Templates live; offener Rest auf eigenes SMTP eingegrenzt

Tyrone Terminal / Shared Supabase Auth Entkopplung
~35 mincodex

Problem: Tyrone-Auth hing lokal weiter an impliziten Shared-Supabase-Annahmen und alten `meindeinunser`-Mail-Assets, obwohl der produktive Login schon auf `terminal.w3yh.xyz` lief

Ursache: Redirects wurden bisher nur aus Proxy-Headern/Fallbacks gebaut und die projekt-eigenen Supabase-Templates lagen nicht im Tyrone-Workspace, wodurch die verbleibende Kopplung schlecht sichtbar blieb

Fix: expliziten `NEXT_PUBLIC_TYRONE_APP_ORIGIN` fuer Auth-Redirects eingebaut, Magic-Link-/Callback-Routen darauf gehoben, `.env.example` plus Supabase-Runbook angelegt und Tyrone-eigene Mail-Templates in `tyrone-terminal/supabase/email-templates/` abgelegt; Runtime nach Build mit `pm2 restart [process] neu geladen

kuratiert

Redaktionelle Notes zu diesem Tag

journaljournal / spielplatz / incident / vercel

Spielplatzcheck lädt wieder stabil

TL;DR

`spielplatz.w3yh.xyz` zeigte erst nur noch eine Fehlermeldung und keine Karte. Stabil wurde die Seite erst wieder, als der Datenpfad von einer fragilen Client-Abfrage auf einen Snapshot-First-Ansatz mit serverseitigem Refresh umgebaut wurde.

Basis in den Logs

  • w3yh-Changelog vom 10. April 2026: Phase-3-Fix und Stabilisierung für spielplatzcheck
  • Incident-Log vom 10. April 2026: Mainz Loading + Map

Was gemacht wurde

  • Die kaputte Overpass-Abfrage ersetzt und den Datenpfad serverseitig neu aufgebaut.
  • Einen Snapshot-First-Ansatz mit Dynamic-Refresh eingeführt, damit die Seite nicht an einer einzelnen Live-Abfrage hängt.
  • Private und ungeeignete Flächen aus den Treffern gefiltert und die Marker-Keys robuster gemacht.
  • Das Production-Deployment neu ausgerollt und die Domain wieder auf das richtige Deployment gezogen.

Verifiziert

  • Der lokale Build und die Lint-Prüfung liefen wieder sauber durch.
  • `spielplatz.w3yh.xyz` antwortete danach wieder mit `HTTP 200`.
  • Die Karte und die Spielplatzdaten waren live wieder sichtbar statt nur die Fehlermeldung.

Warum

Der sichtbare Fehler war zwar nur eine leere Karte, aber die eigentliche Schwäche saß tiefer. Ohne robusteren Datenpfad wäre derselbe Ausfall beim nächsten Overpass-Hänger einfach wiedergekommen.

journaljournal / auth / tyrone / supabase

Tyrone-Auth hängt nicht mehr halb an meindeinunser

TL;DR

Tyrone lief öffentlich bereits auf `terminal.w3yh.xyz`, aber Redirects, Hosted-Auth und Mailtexte waren noch nicht sauber auf die neue Heimat ausgerichtet. Der eigentliche Schritt war deshalb die Entkopplung vom alten meindeinunser-Kontext.

Basis in den Logs

  • w3yh-Changelog vom 10. April 2026: Hosted-Supabase-Auth für Tyrone live gepatcht
  • Incident-Log vom 10. April 2026: Shared Supabase Auth Entkopplung und Hosted Auth

Was gemacht wurde

  • Die öffentliche Origin für Tyrone explizit auf `terminal.w3yh.xyz` gezogen.
  • Die Hosted-Supabase-Konfiguration mit passender `site_url` und Redirect-Allowlist auf den neuen Stand gepatcht.
  • Mail-Subjects und Templates für Tyrone auf den tatsächlichen Produktnamen und die neue Domain umgestellt.
  • Das verbleibende Restthema sauber auf echten SMTP-Versand reduziert.

Verifiziert

  • `https://terminal.w3yh.xyz/login` lieferte erfolgreich die Login-Seite.
  • Die Root von `terminal.w3yh.xyz` leitete wieder sauber auf `/login`.
  • Die Hosted-Auth-Rückgabe zeigte `site_url=https://terminal.w3yh.xyz`.

Warum

Ohne diesen Schritt wäre Tyrone zwar live auf der neuen Domain gewesen, aber gedanklich und technisch immer noch halb im alten System hängen geblieben. Genau diese halben Übergänge werden später teuer.

journaljournal / deploy / vercel / github

Vercel deployt nur, wenn der Commit-Author zuordenbar ist

TL;DR

`w3yh.xyz` war auf GitHub aktuell, live aber noch alt. Die eigentliche Ursache lag nicht im Code, sondern in einem blockierten Production-Deploy mit `COMMIT_AUTHOR_REQUIRED` und einer Commit-Mail, die Vercel nicht dem GitHub-Account zuordnen wollte.

Basis in den Logs

  • w3yh-Changelog vom 10. April 2026: Production-Deploy nach Commit-Author-Fix wieder freigeschaltet
  • Incident-Log vom 10. April 2026: Vercel Production Deploy

Was gemacht wurde

  • Den blockierten Deploy bis auf die Commit-Author-Zuordnung und die unpassende Commit-Mail zurückverfolgt.
  • Einen neuen Trigger-Commit mit einer dem GitHub-Account zuordenbaren Mail erzeugt und gepusht.
  • Den lokalen Git-Author fuer das Repo auf dieselbe zuordenbare Mail umgestellt, damit der Fehler nicht bei jedem weiteren Push wiederkommt.

Verifiziert

  • Der neue Production-Deploy wurde auf `w3yh.xyz` aliasiert.
  • Die Journal-Tagesseite war danach live erreichbar statt `404`.
  • GitHub und Live-Stand lagen danach wieder auf demselben Produktzustand.

Warum

Ein sauberer Git-Stand hilft wenig, wenn Deploy und Realität auseinanderlaufen. Der eigentliche Fix war deshalb weniger „nochmal deployen“ als das Aufräumen einer stillen Lücke zwischen Commit-Metadaten und Plattform-Regeln.

journaljournal / domains / architektur / vercel

Gym und Spielplatz laufen jetzt unter w3yh

TL;DR

`gym.w3yh.xyz` und `spielplatz.w3yh.xyz` sind die ersten beiden Projekte, die als eigene Subdomains unter der Dachmarke laufen. Die Umhängung war bewusst keine stille Alias-Änderung, sondern ein Architekturschritt.

Basis in den Logs

  • w3yh-Changelog vom 10. April 2026: Phase-3-Domain-Umhaengung fuer gym-tracker und spielplatzcheck

Was gemacht wurde

  • Beide Apps ueber Vercel-Aliasing auf ihre jeweilige Subdomain gezogen.
  • DNS-Eintraege und Vercel-Domain-Zuordnung sauber konfiguriert.
  • Einen Alias-Fehler korrigiert, bei dem die falsche Domain auf das falsche Deployment zeigte.
  • Die spielplatzcheck-Datenpipeline nach der Umhaengung stabilisiert und den GitHub-Stand nachgezogen.

Verifiziert

  • `gym.w3yh.xyz` und `spielplatz.w3yh.xyz` antworteten mit `HTTP 200`.
  • Beide Apps waren inhaltlich korrekt und nicht vertauscht.
  • Der spielplatzcheck-Fix lag sowohl lokal als auch auf GitHub auf demselben Stand.

Warum

Subdomains unter einer Dachmarke sind kein Selbstzweck. Sie machen sichtbar, welche Projekte zusammengehoeren, ohne sie in eine gemeinsame Codebasis zu zwingen. Gleichzeitig halten sie Cookie-Zonen und Deployment-Zyklen sauber getrennt.

Persönliches Build-Journal. Aufgaben werden über ein Agentensystem (OpenClaw, verschiedene LLMs) per Cron- und Telegram-Trigger ausgeführt; die Heatmap zeigt eine relative Compute-Aktivität in fünf Stufen.