Zum Hauptinhalt springen
Dominik Weyhw3yh.xyzKontakt

journal day

Donnerstag, 16. Juli 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: niedrig

Donnerstag, 16. Juli 2026

codexopenclaw

W3YH-148 Public-Rework live

changed

  • `w3yh.xyz` person-first neu geordnet: Dominik Weyh, Business Intelligence, 15+ Jahre Commercial-Erfahrung, beruflicher Wert, Arbeit und Kontakt stehen jetzt vor System- und Journalmengen.
  • Zwei anonymisierte Arbeitsbelege live gestellt: Vertriebssteuerung als Entscheidungssystem und Enterprise-AI vom Wissensproblem her. Beide zeigen nur redigierte Strukturen ohne Originaldaten, Arbeitgeber- oder Kundennamen.
  • Public-Header, Mobile-Navigation, Footer, Kontaktpanel, Metadaten und Root-Open-Graph-Bild auf die Arbeitgebergeschichte ausgerichtet. Privater Login liegt nur noch in der Utility-Ebene.
  • Projekt-Backlog W3YH-148 geschlossen; Performance-/A11y-/Recruiter-Endabnahme bleibt in W3YH-150.

deployment

  • Commit `1c55e88` auf `origin/main`; Vercel Production `dpl_FajhymZazheqBfjMc1mzsp34XDx1` ist `READY` und aliasiert auf `https://w3yh.xyz`, `https://www.w3yh.xyz` und `https://private.w3yh.xyz`.
  • Live-URL einmalig per Telegram an Dominik gesendet, Nachricht `10843`.

verification

  • 41/41 Tests, TypeScript, fokussiertes ESLint, Audit ohne bekannte Lücken und isolierter Webpack-Build mit 226 Seiten grün.
  • Browserprüfung bei 320, 390, 768, 1440 und 1920 Pixeln ohne horizontalen Overflow oder abgeschnittene Arbeitsartefakte. Live-Smoke auf 390 Pixeln inklusive Suche/Fokus und Browser-Konsole grün.
  • Kanonische Homepage, `/denkweise` und Root-Open-Graph-Bild liefern HTTP 200; Live-Footer bestätigt Build `1c55e88`. Vercel meldet seit dem Deploy null Runtime-Error-Logs.
  • Lokaler mobiler Lighthouse-Lauf: Performance 92, Accessibility 100, Best Practices 100, SEO 100, CLS 0 und TBT 150 ms. Simulierter LCP 3,1 s bleibt in W3YH-150.
codexw3yh

W3YH-148 person-first Public-Rework

changed

  • Öffentliche Startseite von System-/Aktivitätsmengen auf Dominik Weyh, Business Intelligence, 15+ Jahre Commercial-Erfahrung und den beruflichen Wert „Daten in Entscheidungen übersetzen“ umgestellt.
  • Zwei anonymisierte Arbeitsbänder ergänzt: Vertriebssteuerung als Entscheidungssystem und Enterprise-AI vom Wissensproblem her. Die visuellen Artefakte zeigen nur redigierte Strukturmodelle ohne Originaldaten, Arbeitgeber- oder Kundennamen.
  • Arbeitsweise, Werkzeugkasten, vertiefende Belege und Kontakt neu geordnet. AI-Coding steht als Copilot für Prototyping und Prüfung im Kontext, nicht als Entwickler-Claim.
  • Public-Header und Mobile-Navigation auf `Profil`, `Arbeit`, `Denkweise` und `Werkstatt` fokussiert. Kontakt ist direkt erreichbar; privater Login liegt nur noch im Footer als Utility.
  • Alten Command-K-Onboarding-Hinweis entfernt, Build-/Journal-Nachweis nach hinten verschoben und das Social-Preview samt Titel und Beschreibung person-first neu gebaut.

verification

  • Desktop und Mobile im echten Headless-Browser bei 320, 390, 768, 1440 und 1920 Pixeln geprüft; keine horizontale Überbreite, keine abgeschnittenen Arbeitsartefakte und klare Touch-Navigation.
  • Root-Open-Graph-Bild als 1200×630-PNG erzeugt und visuell geprüft.
  • 41/41 Tests, TypeScript, fokussiertes ESLint, `git diff --check`, Produktions-Audit und isolierter Webpack-Build mit 226 Seiten grün.
  • Lokaler mobiler Lighthouse-Lauf: Performance 92, Accessibility 100, Best Practices 100, SEO 100, CLS 0 und TBT 150 ms. LCP-Feinschliff bleibt im bestehenden Launch-Gate W3YH-150.
  • Globales ESLint bleibt wegen drei bereits dokumentierten Altfehlern im Grocery-/Diagnose-Code außerhalb dieses Reworks rot.
codexopenclaw

W3YH-145 produktiv geschlossen

changed

  • Hosted-Supabase-Migrationen für interne RPC-Rechte und private App-Mitgliedschaften angewendet. Sechs aktive Mitgliedschaften für die drei zentral erlaubten Nutzer über Gym und Terminal angelegt; Tabellenzugriff läuft dort jetzt zusätzlich über Membership-RLS.
  • W3YH, Gym und Tyrone Terminal auf getrennte Audience-Secrets und serverseitig eingelöste Einmal-Codes umgestellt. Der Code läuft nur über einen versteckten `POST`, ist höchstens einmal verwendbar und landet weder in URL noch Redirect-Header.
  • W3YH-Commit `ccdc189` und Rollout-Doku `fec9f90` auf `origin/main`; Gym-Commits `5cfa62b` und `3a5aec0` auf `origin/main`.
  • W3YH-Deployment `dpl_54SYi3VJyAd2qmojKsSAWvZn3FvX` auf `https://w3yh.xyz` und `https://private.w3yh.xyz`; Gym-Deployment `dpl_GT8MgDmaXjdJQbwDTWyUTvjG8NLb` auf `https://gym.w3yh.xyz`; Terminal per PM2 neu gestartet und gespeichert.
  • Gym auf Next.js `16.2.10`, React/ReactDOM `19.2.4` und bereinigte Transitives aktualisiert. Voll- und Produktions-Audit melden null Schwachstellen.

verification

  • Vollständiger produktiver E2E-Smoke grün: zentrale Session, falsche Audience blockiert, Gym-Session und Gym-RLS grün, Replay blockiert, Terminal-Session und Terminal-RLS grün, abgelaufener Code blockiert.
  • Hosted-Grenzen verifiziert: `anon` und `authenticated` können interne RPCs nicht direkt ausführen; `service_role` kann sie ausführen. Ein temporärer Nicht-Mitglied-Nutzer sah in Gym und Terminal keine privaten Tabellenzeilen.
  • W3YH: 41/41 Tests, TypeScript, fokussiertes ESLint, Audit und isolierter Build mit 226 Seiten grün. Gym: ESLint, TypeScript, Build und Audits grün. Terminal: Produktions-Build grün; der allgemeine Alt-Testbestand bleibt bei 80/81 wegen eines datumssensitiven Event-Fixtures.
  • Browser-Smoke für Private-Login und Gym visuell grün. Nach dem Rollout meldeten W3YH und Gym jeweils null Vercel-Fehlerlogs; Terminal ist in PM2 online.

open

  • Globale Supabase-Registrierung bleibt absichtlich aktiv, weil dasselbe Projekt die echte Registrierung von `meindeinunser` bedient. Für W3YH, Gym und Terminal entsteht daraus wegen Allowlist, Membership-RLS und Ziel-App-Prüfung kein Zugriffsweg.
  • Nur die langfristige Beobachtung der Session-Laufzeit aus W3YH-87 bleibt offen; sie blockiert den produktiven Rollout nicht.
codexw3yh

W3YH-145 produktiv geschlossen

changed

  • Terminal und Gym von `redirect-only` auf den opaken Einmal-Code umgestellt. Das Gate überträgt den Code per automatisch abgesendetem `POST`-Formular; Ziel-URL, Referrer und Browser-Historie enthalten weder Supabase-Tokens noch den Code.
  • Beide Ziel-Apps lösen den Code serverseitig mit eigenem Audience-Secret ein, prüfen Auth-Nutzer, lokale Allowlist und `private_app_memberships` erneut und minten danach eine eigene hostgebundene Supabase-Session.
  • Hosted Supabase mit `20260716_private_internal_rpc_lockdown.sql` und `20260716_private_app_memberships.sql` gehärtet: interne RPCs nur für `service_role`; Gym-/Terminal-Tabellen verlangen eine aktive App-Mitgliedschaft. Drei erlaubte Nutzer wurden kontrolliert provisioniert und für beide Apps freigeschaltet.
  • Globale Supabase-Sign-ups bleiben bewusst aktiv, weil das Projekt mit `meindeinunser` geteilt wird. Die App-Mitgliedschaft verhindert trotzdem jeden direkten Gym-/Terminal-Zugriff durch fremde `authenticated`-Nutzer.

deployment

  • W3YH-Commit `ccdc189` nach `main` gepusht und als Vercel-Production-Deployment `dpl_54SYi3VJyAd2qmojKsSAWvZn3FvX` auf `https://w3yh.xyz` beziehungsweise `https://private.w3yh.xyz` veröffentlicht.
  • Gym-Commits `5cfa62b` und `3a5aec0` nach `main` gepusht; finaler Production-Deploy `dpl_GT8MgDmaXjdJQbwDTWyUTvjG8NLb` auf `https://gym.w3yh.xyz`. Next.js 16.2.10 und die gepatchten Transitives melden null Audit-Lücken.
  • Terminal aus dem direkten Workspace-Quellbaum gebaut, mit Backup gesichert und per PM2 samt neuer Runtime-Secrets neu gestartet. `/auth/gate` ist live, der alte `/auth/handoff` bleibt `410 Gone`.

verification

  • W3YH: 41/41 Vertragstests, TypeScript, fokussiertes ESLint, Produktions-Audit und isolierter Webpack-Build mit 226 Seiten grün; Haupt-Worktree blieb unverändert.
  • Gym: ESLint, TypeScript, Produktionsbuild sowie Voll- und Produktions-Audit grün. Terminal: Produktionsbuild grün; ein bestehender datumssensitiver Test und alte Test-Typfehler liegen außerhalb des Gate-Umbaus.
  • Hosted-RLS-Smoke: authentifizierter Nicht-Mitglied-Nutzer erhält für Gym und Terminal null Zeilen; direkter Aufruf des internen Handoff-RPCs endet mit `401`.
  • Produktiver Ende-zu-Ende-Smoke grün: zentrale Session, falsche Audience blockiert, Gym-Session plus RLS, Replay blockiert, Terminal-Session plus RLS und künstlich abgelaufener Code blockiert.
  • Kanonische HTTP-Smokes grün; die beiden Vercel-Deployments zeigen nach dem E2E-Lauf null Runtime-Error-Logs. Login und Gym-Startseite zusätzlich im echten Headless-Browser visuell geprüft.
codexopenclaw

W3YH-145 interne RPC-Grenzen geschlossen

changed

  • Interne Supabase-RPCs für private Auth-Limits und Einmal-Handoffs aus dem direkten `anon`-/`authenticated`-Zugriff genommen. Ein eigener serverseitiger Supabase-Client nutzt ausschließlich `[secret-var]` oder den Legacy-Service-Role-Fallback.
  • Neue Lockdown-Migration `20260716_private_internal_rpc_lockdown.sql`: breite Tabellen- und Funktionsrechte widerrufen, RPC-Ausführung auf `service_role` begrenzt und die Funktionen auf `security invoker` umgestellt.
  • Handoff-Rechte pro Ziel-App getrennt. Terminal und Gym verwenden eigene Redeem-Secrets plus expliziten Audience-Header; ein gemeinsames Secret reicht nicht mehr für beide Empfänger.
  • `nextPath` an den serverseitig erzeugten Einmal-Code gebunden und aus der Redeem-Anfrage entfernt. Zielpfade werden auf lokale, maximal 2048 Zeichen lange Pfade ohne Backslashes oder Steuerzeichen begrenzt.
  • Routes für Passwort- und Magic-Link-Limits verwenden den privilegierten Client nur serverseitig und brechen bei fehlender Schlüsselkonfiguration mit `503` ab. Laufzeitfehler des verteilten Limits fallen weiterhin auf das lokale Limit zurück.
  • Rework-Plan, Projekt-Todo, Private-Hub-, Auth- und Comfort-Login-Dokumentation auf den neuen Stand gezogen.

verification

  • 39 Node-Vertragstests, `npx tsc --noEmit --incremental false`, fokussiertes ESLint über den geänderten Scope, `git diff --check` sowie Voll- und Produktions-Audit grün.
  • Direkter `npx next build` in einem isolierten Worktree auf Next.js 16.2.10 grün: 226 statische Seiten. Der Source-Snapshot war vor und nach dem Build identisch.
  • Gesamt-Lint bleibt wegen drei bekannten Altfehlern außerhalb dieses Blocks rot.

open

  • Die neue Migration wurde nicht auf Hosted Supabase angewendet. Die neuen Service- und Ziel-App-Secrets sind produktiv noch nicht gesetzt.
  • Terminal und Gym bleiben bis zu Migration, Empfänger-Anpassung und authentifiziertem Live-Smoke bewusst auf `redirect-only`.
  • Kein Commit, Push, Deploy oder sonstiger Produktiv-Eingriff ausgelöst.
codexw3yh

W3YH-145 interne RPCs und Einmal-Code-Grenzen gehärtet

fixed

  • Direkte Data-API-Exposition der neuen internen RPCs geschlossen: `20260716_private_internal_rpc_lockdown.sql` entzieht `public`, `anon` und `authenticated` die Ausführung von Handoff- und Rate-Limit-Funktionen. Die Funktionen laufen als `security invoker`; nur `service_role` erhält Tabellen- und Execute-Rechte.
  • Separaten, lazy initialisierten Supabase-Secret-Client ergänzt. Magic-Link, Passwort-Login, Handoff-Ausstellung und Redeem nutzen interne RPCs nicht mehr über den öffentlichen Anon-/Nutzer-Client. Fehlende Secret-Konfiguration blockiert diese Pfade mit `503`, statt still auf einen unsicheren Produktivzustand zu fallen.
  • Redeem-Secrets pro Audience getrennt. Terminal und Gym authentifizieren sich mit eigenen Secrets und verpflichtendem `X-W3YH-Handoff-Audience`-Header; ein Zielsystem kann keine Codes der anderen Audience einlösen.
  • `nextPath` aus der Ziel-App-Redirect-URL entfernt und serverseitig an den Einmal-Code gebunden. Der Pfad wird auf 2.048 Zeichen begrenzt und erst nach erfolgreichem atomarem Consume zurückgegeben.

verification

  • 39 Node-Vertragstests grün; neue Tests decken Service-Key-Priorität, fehlende Service-Konfiguration, getrennte Audience-Secrets und überlange Redirect-Ziele ab.
  • TypeScript, fokussierter ESLint über alle geänderten TS-/TSX-/MJS-Dateien, `git diff --check` sowie Produktions- und Voll-Audit grün.
  • Direkter `npx next build` ohne schreibende Sync-Hooks grün; keine neuen Quelldatei-Mutationen durch den Build.

open

  • Lockdown-Migration bewusst noch nicht auf Hosted Supabase angewendet; dafür ist ein externer Produktionsschritt mit Freigabe nötig.
  • `[secret-var]` und beide Audience-Secrets sind noch nicht in Vercel/Ziel-Apps gesetzt. Terminal/Gym bleiben deshalb unverändert `redirect-only`; kein Commit, Push oder Deploy ausgelöst.

Incidents

W3YH / Private-RPC-Grenze [manual]
~180 mincodex

Problem: Interne Handoff- und Rate-Limit-RPCs waren trotz Tabellen-RLS direkt für `anon` beziehungsweise `authenticated` ausführbar; der geplante Redeem-Secret-Schutz wäre damit auf Data-API-Ebene potenziell umgehbar gewesen. Kein bekannter Missbrauch, Einmal-Code-Modus war nicht aktiv

Ursache: Die Migrationen vom 14.07. nutzten `SECURITY DEFINER` mit breiten `EXECUTE`-Grants; RLS schützt Funktionsaufrufe nicht

Fix: Server-Client, Hosted-Lockdown, Membership-RLS, sechs App-Mitgliedschaften, getrennte Audience-Secrets und servergebundenen `nextPath` produktiv ausgerollt; W3YH/Gym deployed, Terminal per PM2 neu gestartet, vollständiger Live-E2E inklusive falscher Audience, Replay, Ablauf und Nicht-Mitglied-Zugriff grün

TLI / X-Posting Freshness-Gate [manual]
~60 minclaude

Problem: @th3_m0l3 postete am 16.07. dreimal fast denselben ABCL-Thiel/Palantir-Tweet (midday 10:30, us_open_en 13:45, us_pulse ); weitere stille Duplikate am 12./14.07. (HIMS-, NVO-Bear-Case, ASTS-Bear-Case je 1× doppelt)

Ursache: `x-slot-refresh.mjs`: Bei Gate-Verdict `stale` wird ein Rewrite als neues Queue-Item gepostet, das Quell-Item bleibt aber `ready` und gewinnt im nächsten Slot wieder das Scoring (frischestes Item); der Posted-Text-Dedupe greift nicht, weil der Rewrite die Formulierung leicht ändert

Fix: Quell-Item wird nach Rewrite als `superseded` markiert (Patch in `x-slot-refresh.mjs`); Thiel-Item + 3 weitere Duplikat-Quellen expired, Thiel-Conviction-Item auf review (Faktenlage fragwürdig); Queue via 6 manuellen Plan-Tier-Drafts auf target-ready 18 aufgefüllt (Refill-Cron: alle Topics in 14d-Sperre)

Persönliches 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.