← w3yh.xyz

journal day

Donnerstag, 30. 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: mittel

Donnerstag, 30. April 2026

codexopenclaw

W3YH-118 Family-MVP Code live

added

  • **`w3yh.xyz/src/app/private/family/page.tsx`**
  • Geschützte Family-Seite mit Feed/Setup-Status.
  • **`w3yh.xyz/src/components/private/family-board.tsx`**
  • Composer, Bild-Auswahl, Feed-Anzeige und Kommentarformular.
  • **`w3yh.xyz/src/app/api/private/family/posts/route.ts`**
  • Feed-API und Post-API inklusive Bild-Upload.
  • Bilder werden serverseitig per `sharp` nach WebP normalisiert; EXIF/Metadaten werden nicht übernommen.
  • **`w3yh.xyz/src/app/api/private/family/comments/route.ts`**
  • Kommentar-API.
  • **`w3yh.xyz/src/lib/private/family.ts`**
  • Family-Rollen, Membership-Check, Board-Loader und graceful Schema-Missing-Status.
  • **`w3yh.xyz/supabase/migrations/20260430_family_private_forum.sql`**
  • Tabellen, RLS-Policies und private Storage-Policies für Family-MVP.

changed

  • **Private Hub**
  • Family-only Accounts sehen nur Family, nicht Terminal/Gym.
  • Power-Accounts sehen weiterhin Terminal/Gym plus Family.
  • **Vercel**
  • `W3YH_PRIVATE_FAMILY_EMAILS` als Production-Env gesetzt.
  • **Supabase**
  • Private Storage-Bucket `family-media` angelegt.

blocked

  • Tabellen-/Policy-Migration konnte nicht automatisch ausgeführt werden: vorhanden ist nur der Supabase Service-Role-Key; für DDL braucht es Supabase Access Token/DB-URL oder den SQL Editor. Die Live-Seite zeigt deshalb bewusst `Supabase-Schema fehlt noch`, bis die Migration läuft.

deployed

  • Production Deployment: `dpl_3vyPHDskJVfA2e4S4yqvWejXaDgL`.

verified

  • `npm run lint` grün mit bestehenden Warnungen.
  • `npm run build` grün.
  • `vercel inspect https://private.w3yh.xyz` zeigt auf `dpl_3vyPHDskJVfA2e4S4yqvWejXaDgL`.
  • `curl -I https://private.w3yh.xyz/family` -> erwarteter Auth-Redirect mit `x-matched-path: /private/family`.
  • `curl -I https://private.w3yh.xyz/api/private/family/posts` ohne Session -> `401`.
codexw3yh

W3YH-118 Family-MVP Code live

added

  • **Family MVP**
  • Geschützte Feed-Seite unter `/private/family`, auf der privaten Domain als `/family`.
  • Rollenlogik trennt Power-Apps (`Terminal`, `Gym`) von Family-only Accounts.
  • Family-only Login-Allowlist über `W3YH_PRIVATE_FAMILY_EMAILS` vorbereitet und in Vercel Production gesetzt.
  • Feed-Composer mit Text und Bild-Upload.
  • Kommentar-API.
  • Upload-API normalisiert Bilder serverseitig über `sharp` zu WebP; EXIF/Metadaten werden dabei nicht übernommen.
  • Private Supabase-Storage-Bucket `family-media` angelegt.
  • **Supabase**
  • Migration `supabase/migrations/20260430_family_private_forum.sql` ergänzt: `family_members`, `family_posts`, `family_comments`, `family_media`, RLS-Policies und private Storage-Policies.

changed

  • **Private Hub**
  • Family-Karte bleibt sichtbar für Family-Accounts; Terminal/Gym-Karten werden nur noch für Power-Accounts angezeigt.

blocked

  • Die Tabellen-/Policy-Migration konnte nicht automatisch ausgeführt werden, weil lokal nur der Supabase Service-Role-Key vorhanden ist. Für DDL braucht es Supabase Access Token/DB-URL oder den SQL Editor. Die Seite degradiert deshalb sauber auf `Supabase-Schema fehlt noch`, bis die Migration ausgeführt ist.

deployed

  • Production Deployment: `dpl_3vyPHDskJVfA2e4S4yqvWejXaDgL`.

verified

  • `npm run lint` grün mit bestehenden Warnungen (`command-palette` unused imports, Family `<img>` Hinweis).
  • `npm run build` grün.
  • `vercel inspect https://private.w3yh.xyz` zeigt auf `dpl_3vyPHDskJVfA2e4S4yqvWejXaDgL`.
  • `curl -I https://private.w3yh.xyz/family` -> erwarteter Auth-Redirect mit `x-matched-path: /private/family`.
  • `curl -I https://private.w3yh.xyz/api/private/family/posts` ohne Session -> `401`.
codexopenclaw

Private-Gate Cookie-v2 und Family-Link live

fixed

  • **`w3yh.xyz/src/lib/private/auth-config.ts`**
  • Private Gate nutzt jetzt den eigenen Supabase-Storage-Cookie `w3yh-private-auth-token`.
  • Legacy-Cleanup filtert nur noch alte `sb-*` Cookie-Namen.
  • **`w3yh.xyz/src/app/private/auth/callback/route.ts`** und **`src/proxy.ts`**
  • Expire-Header werden nicht mehr fuer die neu gesetzten Session-Cookies erzeugt, sondern nur fuer vorhandene Legacy-`sb-*` Cookies.

added

  • **`w3yh.xyz/src/components/private/private-gate-shell.tsx`**
  • Sichtbarer Family-Einstieg im Private-Gate-Hub.
  • **`w3yh.xyz/src/app/private/family/page.tsx`**
  • Neue geschuetzte Family-Route als MVP-Anker.
  • **`w3yh.xyz/src/proxy.ts`**
  • Alias-Mapping `private.w3yh.xyz/family` -> `/private/family`.

deployed

  • Production Deployment: `dpl_5cjEmGTVvXG57GwtkzSNXok4usqv`.

verified

  • `npm run lint` grün mit bestehenden Command-Palette-Warnungen.
  • `npm run build` grün.
  • `vercel inspect https://private.w3yh.xyz` zeigt auf `dpl_5cjEmGTVvXG57GwtkzSNXok4usqv`.
  • `curl -I https://private.w3yh.xyz/family` -> erwarteter Auth-Redirect mit `x-matched-path: /private/family`.
  • Callback-Smoke mit altem `sb-*` Cookie setzt nur Expire-Header für Legacy-Namen.
codexw3yh

Private-Gate Cookie-v2 und Family-Link live

fixed

  • **Private Gate Auth**
  • Private Gate nutzt jetzt einen eigenen Supabase-Storage-Cookie `w3yh-private-auth-token`.
  • Alte `sb-*` Supabase-Cookies werden nur noch als Legacy-Altlast gelöscht; neue Session-Cookies werden dabei nicht mehr per Domain-Expire getroffen.
  • Damit ist der vorherige Reload-Logout-Fix entschärft, der zu grob an den gesetzten Cookies arbeiten konnte.

added

  • **Family**
  • Neuer sichtbarer Family-Einstieg auf dem Private-Gate-Hub.
  • Neue geschützte Route `/private/family`, auf der privaten Domain erreichbar als `https://private.w3yh.xyz/family`.

deployed

  • Production Deployment: `dpl_5cjEmGTVvXG57GwtkzSNXok4usqv`.

verified

  • `npm run lint` grün mit bestehenden Command-Palette-Warnungen.
  • `npm run build` grün.
  • `vercel inspect https://private.w3yh.xyz` zeigt auf `dpl_5cjEmGTVvXG57GwtkzSNXok4usqv`.
  • `curl -I https://private.w3yh.xyz/family` -> erwarteter Auth-Redirect mit `x-matched-path: /private/family`.
  • Callback-Smoke mit altem `sb-*` Cookie setzt nur Expire-Header für die Legacy-Namen.
codexopenclaw

Private-Gate Fix live deployed

deployed

  • **`w3yh.xyz`**
  • Reload-Logout-Fix per `npx vercel deploy --prod --yes` produktiv ausgerollt.
  • Deployment: `dpl_LzJfy3irzoskEY4T3cDZ244kDbvV`.
  • Production URL: `[vercel-preview]`.
  • Aliases laut `vercel inspect`: `https://w3yh.xyz`, `https://www.w3yh.xyz`, `https://private.w3yh.xyz`.

verified

  • `vercel inspect https://private.w3yh.xyz` zeigt auf `dpl_LzJfy3irzoskEY4T3cDZ244kDbvV`.
  • `curl -I https://private.w3yh.xyz/private` -> `307` Auth-Redirect.
  • `curl -I https://private.w3yh.xyz/private/login` -> `200`.
codexw3yh

Private-Gate Fix live deployed

deployed

  • **Production**
  • Reload-Logout-Fix per `npx vercel deploy --prod --yes` produktiv ausgerollt.
  • Deployment: `dpl_LzJfy3irzoskEY4T3cDZ244kDbvV`.
  • `private.w3yh.xyz` zeigt laut `vercel inspect` auf genau dieses Deployment.

verified

  • `https://private.w3yh.xyz/private` antwortet mit erwarteter Auth-Weiterleitung.
  • `https://private.w3yh.xyz/private/login` antwortet mit `200`.
  • `vercel inspect https://private.w3yh.xyz` listet `private.w3yh.xyz` als Alias des neuen Production-Deployments.
codexopenclaw

Private-Gate Reload-Logout gefixt

fixed

  • **`w3yh.xyz/src/lib/private/auth-config.ts`**
  • Private-Gate-Cookies auf `private.w3yh.xyz` werden jetzt host-only gesetzt statt mit explizitem `domain=private.w3yh.xyz`.
  • Legacy-Domain-Cookie-Optionen als separater Cleanup-Pfad ergänzt.
  • **`w3yh.xyz/src/lib/private/client.ts`** und **`src/components/private/login-client.tsx`**
  • Passwort-Login und fragmentbasierter Magic-Link-Abschluss löschen alte Supabase-`sb-*` Domain-Cookies vor und nach dem Setzen der neuen Session.
  • **`w3yh.xyz/src/app/private/auth/callback/route.ts`** und **`src/proxy.ts`**
  • Server-Antworten, die Supabase-Cookies setzen oder refreshen, hängen zusätzlich Expire-Header für die alten Domain-Cookie-Varianten an.

verified

  • `npm run lint` grün mit bestehenden Command-Palette-Warnungen.
  • `npm run build` grün.
codexw3yh

Private-Gate Reload-Logout gefixt

fixed

  • **Private Gate Auth**
  • Gate-Cookies werden auf `private.w3yh.xyz` jetzt host-only gesetzt statt mit explizitem `domain=private.w3yh.xyz`.
  • Alte Supabase-`sb-*` Domain-Cookies werden beim Passwort-Login, Magic-Link-Callback und Server-Refresh gezielt abgeräumt.
  • Damit soll der Reload-Logout nach erfolgreichem Login verschwinden, ohne globale `.w3yh.xyz`-Cookies einzuführen.

changed

  • **`src/lib/private/auth-config.ts`**
  • `getPrivateCookieOptions()` liefert für die private Domain nur noch `path=/`, `sameSite=strict`, `secure`.
  • Neuer Helper für Legacy-Domain-Cookie-Cleanup.
  • **`src/lib/private/client.ts`** und **`src/components/private/login-client.tsx`**
  • Browser-Login löscht alte Domain-Cookies vor und nach `setSession()`/`signInWithPassword()`.
  • **`src/app/private/auth/callback/route.ts`** und **`src/proxy.ts`**
  • Serverseitige Auth-Set-Cookie-Antworten hängen zusätzlich Expire-Header für alte Domain-Cookies an.

verified

  • `npm run lint` grün mit bestehenden Command-Palette-Warnungen.
  • `npm run build` grün.
codexopenclaw

Tyrone Terminal Watchlist-Scrollbar repariert

fixed

  • **`.openclaw/workspace/projects/tyrone-terminal/src/components/WatchlistPanel/WatchlistPanel.css`**
  • Watchlist-Root ist jetzt ein echter `height: 100%` Flex-Container mit `min-height: 0` und `overflow: hidden`.
  • Tabellencontainer nutzt `overflow-y: scroll`, `scrollbar-gutter: stable` und sichtbare Terminal-Scrollbar-Styles.
  • Tabellenkopf bleibt beim Scrollen sticky.

verified

  • `npm test -- --runTestsByPath src/__tests__/components/WatchlistPanel.test.tsx --runInBand`
  • `npm run build`
  • `pm2 restart [process]
  • Playwright-Smoke gegen `http://[localhost]/`: `24` Watchlist-Zeilen, `clientHeight=656`, `scrollHeight=1266`, `overflowY=scroll`, `canScroll=true`, Scroll-Test bewegt `scrollTop` von `0` auf `610`.
codexw3yh

Terminal-Watchlist scrollt wieder

fixed

  • **Tyrone Terminal**
  • Die Watchlist oben rechts hat jetzt eine echte interne Scrollfläche.
  • Root-Panel-Höhe, Tabellen-Overflow und Scrollbar-Gutter wurden sauber gesetzt; Header bleibt sticky.

verified

  • Watchlist-Unit-Test grün.
  • Tyrone-Terminal-Build grün.
  • `tli-terminal` per PM2 neu gestartet.
  • Browser-Smoke: 24 Zeilen, Scrollhöhe größer als sichtbare Höhe, `overflow-y: scroll`, Scroll-Interaktion funktioniert.
codexopenclaw

W3YH-119 Cashtag-Intraday-Rotation abgeschlossen

changed

  • **`thelonginvestor/scripts/x-scraper-cron-run.mjs`**
  • `premarket`, `nyse-open` und `market-close` wählen Portfolio-Cashtags jetzt aus dem Coverage-State statt per `--limit-symbols`/First-N.
  • Auswahlpriorität: Timeout, fällig/stale, älteste `next_due_at`/`last_attempt_at`; Ausgabe läuft über explizites `--symbols`.
  • Neuer `--plan-only --json`-Modus zeigt geplante Schritte und Symbole ohne X-Scrape.
  • Wiederholte Timeout-Ticker werden per `X_PORTFOLIO_EXTENDED_TIMEOUT_SYMBOLS` an den Child-Prozess weitergereicht.
  • **`thelonginvestor/scripts/x-scraper-playwright.mjs`**
  • `cashtag-portfolio` kann für gezielte Problem-Ticker ein erweitertes 45s-Budget nutzen; normale Ticker bleiben bei 30s.
  • Das Budget gilt jetzt auch für `page.goto`, nicht nur für den äußeren Ticker-Wrapper.
  • **Plan/TODOs**
  • `W3YH-119` in Workspace- und canonical W3YH-Todo geschlossen.
  • Plan `2026-04-30-agent-bridge-cashtags-family.md` auf finalen Rotationsstand gezogen.

verified

  • `node --check scripts/x-scraper-cron-run.mjs`
  • `node --check scripts/x-scraper-playwright.mjs`
  • `x-scraper-cron-run.mjs --lane premarket --plan-only --json`
  • `x-scraper-cron-run.mjs --lane nyse-open --plan-only --json`
  • `x-scraper-cron-run.mjs --lane market-close --plan-only --json`
  • `x-scraper-cron-run.mjs --lane cashtag-night-cycle --slot night-0130 --plan-only --json`
codexw3yh

W3YH-119 Cashtag-Intraday-Rotation abgeschlossen

changed

  • **`tasks/todo.md`**
  • `W3YH-119` geschlossen: Intraday-Rotation nach Coverage-State ist umgesetzt.
  • **TLI/OpenClaw Runtime**
  • `premarket`, `nyse-open` und `market-close` nutzen jetzt `--symbols` aus `.openclaw/cron/x-cashtag-coverage.json` statt First-N-Ticker.
  • Timeout-/stale-/due-Ticker werden priorisiert; wiederholte Timeout-Ticker bekommen gezielt 45s Budget.
  • Neuer `--plan-only --json`-Modus prüft die Auswahl ohne echten X-Scrape.

verified

  • `node --check` für `x-scraper-cron-run.mjs` und `x-scraper-playwright.mjs` grün.
  • Plan-only-Smokes für `premarket`, `nyse-open`, `market-close` und `cashtag-night-cycle` grün.
codexopenclaw

Cashtag-Coverage im Terminal und Portfolio-Draft sichtbar gemacht

changed

  • **`.openclaw/workspace/projects/tyrone-terminal/src/app/api/feed/route.ts`**
  • `/api/feed` liest jetzt `.openclaw/cron/x-cashtag-coverage.json` und liefert `coverage` top-level sowie an passenden X-Einträgen aus.
  • Statuslogik: `fresh`, `stale`, `timeout`, `unknown`; Alias-Mapping fuer Portfolio-Scrape-Symbole wie `ACTHF`, `ALV`, `KRKNF`.
  • **`.openclaw/workspace/projects/tyrone-terminal/src/lib/supabase.ts`**
  • `CashtagCoverage`-Typen und `getCashtagCoverage()` ergänzt.
  • **`.openclaw/workspace/projects/tyrone-terminal/src/components/NewsPanel/NewsPanel.tsx`** und **`NewsPanel.css`**
  • Terminal-Feed zeigt pro gewaehltem Ticker und bei X-Eintraegen Coverage-Badges (`X FRESH`, `X STALE`, `X TIMEOUT`, `X UNKNOWN`).
  • **`w3yh.xyz/scripts/lib/pressespiegel.mjs`** und **`scripts/portfolio-draft.mjs`**
  • Portfolio-Draft schreibt pro Recap-Ticker eine `X-Coverage`/`X-Coverage-Warnung` in den nicht-oeffentlichen Schreibkontext.
  • **Plan/TODOs**
  • `W3YH-119` auf aktuellen Reststatus aktualisiert: offen bleibt echte Intraday-Rotation nach `next_due`.
  • **Runtime**
  • `tli-terminal` nach erfolgreichem Build per PM2 neu gestartet.

verified

  • `node --check scripts/lib/pressespiegel.mjs && node --check scripts/portfolio-draft.mjs`
  • `npx jest src/__tests__/app/api.feed.route.test.ts src/__tests__/components/NewsPanel.test.tsx --runInBand`
  • `npm run build` im Tyrone-Terminal-Tree
  • Live-Smoke lokal: `GET http://[localhost]/api/feed?limit=1&ticker=UPS` -> `200`, `coverage.UPS.status = fresh`, X-Eintrag enthaelt `coverage`.
  • `npx tsc --noEmit` bleibt durch bestehende Test-Typfehler rot (`vi`/Vitest-Typen und alte Auth-Test-Env-Shapes), nicht durch die neuen Coverage-Dateien.
codexw3yh

Cashtag-Coverage in Terminal und Portfolio-Draft sichtbar

changed

  • **`tasks/todo.md`**
  • `W3YH-119` aktualisiert: Terminal-/Portfolio-Anzeige ist umgesetzt, offen bleibt die echte Intraday-Rotation nach `next_due`.
  • **Portfolio-Draft**
  • `scripts/portfolio-draft.mjs` schreibt pro Recap-Ticker eine `X-Coverage`/`X-Coverage-Warnung` in den nicht-öffentlichen Schreibkontext.
  • **Tyrone Terminal**
  • Umsetzung liegt im Terminal-Tree: `/api/feed` liefert Coverage mit, das `NewsPanel` zeigt Badges `X FRESH`, `X STALE`, `X TIMEOUT` oder `X UNKNOWN`.

verified

  • Betroffene Terminal-Jest-Tests grün.
  • Tyrone-Terminal-Build grün.
  • `tli-terminal` per PM2 neu gestartet; lokaler API-Smoke für `UPS` liefert `coverage.UPS.status = fresh`.
  • Portfolio-Draft-Skripte per `node --check` grün.
codexopenclaw

Cashtag-Nachtzyklus 01:30/04:00/06:30 umgesetzt

changed

  • **`thelonginvestor/scripts/x-scraper-playwright.mjs`**
  • `cashtag-portfolio` akzeptiert jetzt `--symbols ASTS,NVO,HIMS`, damit gezielte Coverage-Runs moeglich sind statt nur `--limit-symbols`/First-N.
  • **`thelonginvestor/scripts/x-scraper-cron-run.mjs`**
  • Coverage-State fuer Cashtags eingebaut: `.openclaw/cron/x-cashtag-coverage.json`.
  • Neue Lane `cashtag-night-cycle` mit Slots `night-0130`, `night-0400`, `morning-final`.
  • Portfolio-Lanes schreiben Coverage mit (`last_attempt_at`, `last_success_at`, `last_count`, `timeout_streak`, `next_due_at`, `last_status`).
  • **`.openclaw/cron/jobs.json`**
  • Neue Jobs `x-scraper:cashtag-night-0130` (`01:30 Europe/Berlin`) und `x-scraper:cashtag-night-0400` (`04:00 Europe/Berlin`) aktiviert.
  • `x-scraper:morning-sweep` von `06:03` auf `06:30 Europe/Berlin` geschoben.
  • `openclaw-gateway.service` neu gestartet, damit die Cron-Aenderungen geladen werden.
  • **Plan/TODOs**
  • `W3YH-119` und Plan auf den realen 01:30/04:00/06:30-Zyklus aktualisiert.

verified

  • `node --check `thelonginvestor/scripts/x-scraper-cron-run.mjs`
  • `node --check `thelonginvestor/scripts/x-scraper-playwright.mjs`
  • `jq empty `.openclaw/cron/jobs.json`
  • Dry-Run: `x-scraper-cron-run.mjs --lane cashtag-night-cycle --slot night-0130 --limit-symbols 1 --dry-run --json` -> waehlt `$PEP`, scrapt 8 Tweets, schreibt wegen Dry-Run keine Coverage-Datei.
  • `systemctl --user is-active openclaw-gateway.service` -> `active`.
codexw3yh

Cashtag-Nachtzyklus fuer X-Sentiment aktiviert

changed

  • **`tasks/todo.md`**
  • `W3YH-119` auf Teilstatus gesetzt: Coverage-State und Nacht-Cron sind umgesetzt, Terminal-/Portfolio-Anzeige bleibt offen.

notes

  • Technische Umsetzung liegt in TLI/OpenClaw:
  • `x-scraper-playwright.mjs` kann gezielte `--symbols` fuer `cashtag-portfolio`.
  • `x-scraper-cron-run.mjs` hat neue Lane `cashtag-night-cycle`.
  • Cron-Slots: `01:30`, `04:00`, `06:30` Europe/Berlin.
codexopenclaw

Cashtag-Cooldown fuer Catch-up-Lauf geprüft

changed

  • **`.openclaw/workspace/plans/2026-04-30-agent-bridge-cashtags-family.md`**
  • Cooldown-Befund ergänzt: X-API dokumentiert 15-Minuten-Fenster und `x-rate-limit-reset`, die lokale Playwright-Web-Suche hat aber keinen verlässlichen öffentlichen Reset-Header.
  • Empfehlung konkretisiert: kleiner `morning-catchup` ca. 2h nach dem Morning Sweep (`08:25 Europe/Berlin` / ``), zuerst Morning-Ausfälle wie `$HIMS`, `$NVO`, `$ONDS`, mit kleinerem `--max 8`.
  • **`.openclaw/workspace/tasks/todo.md`** und **`w3yh.xyz/tasks/todo.md`**
  • `W3YH-119` um den bevorzugten zweiten Catch-up-Lauf nach Cooldown erweitert.

verified

  • `x-scraper-playwright.mjs cashtag $NVO --max 3 --dry-run --json` um `` erfolgreich.
  • `x-scraper-playwright.mjs cashtag $HIMS --max 3 --dry-run --json` um `` erfolgreich.
codexw3yh

Cashtag-Catch-up nach Cooldown konkretisiert

changed

  • **`tasks/todo.md`**
  • `W3YH-119` konkretisiert: bevorzugt wird ein kleiner `morning-catchup` ca. 2h nach dem Morning Sweep (`08:25 Europe/Berlin`) für Morning-Ausfälle wie `$HIMS`, `$NVO`, `$ONDS`, danach Intraday-Rotation über Coverage-Metadaten.

verified

  • Lokale Dry-Runs nach den Morning-Sweep-Timeouts liefen erfolgreich:
  • `$NVO --max 3 --dry-run`
  • `$HIMS --max 3 --dry-run`
codexopenclaw

Agent Bridge bewertet, Cashtag-/Family-Plan erstellt

changed

  • **`.openclaw/workspace/scripts/bridge-idea-intake.sh`**
  • Bridge-Aufrufe laufen jetzt aus `BRIDGE_WORKDIR` heraus (Default: `/home/openclaw`), damit `python3 -m agent_bridge` auch aus dem Workspace funktioniert.
  • Fehler von `agent_bridge` werden nicht mehr mit `|| true` verschluckt; Scratchpad bleibt Fallback, aber der Script-Exit ist bei Bridge-Fehlern korrekt rot.
  • **`agent_bridge/storage.py`** und **`agent_bridge/router.py`**
  • Self-Loop-False-Positive im Dispatch gefixt: Pending-Nachrichten werden beim Similarity-Check nicht mehr mit sich selbst verglichen.
  • Die zuvor fehlgeschlagene Plan-Nachricht an `tyrone` wurde danach erfolgreich retried und in `agent_bridge/data/tyrone_inbox/` geschrieben.
  • **`.openclaw/workspace/plans/2026-04-30-agent-bridge-cashtags-family.md`**
  • Review von Geminis Agent-Bridge-Arbeit dokumentiert: Services laufen, 55 Unit-Tests grün, aber `/idea`-Importpfad war kaputt, Incubator-Config wird nicht aktiv genutzt und Lifecycle-Status sind inkonsistent.
  • Konzept für Cashtag-Coverage-Rotation und private Familien-Unterseite mit Bild-Uploads hinter dem w3yh Private Gate erstellt.
  • **`.openclaw/workspace/tasks/todo.md`**
  • `AB-7` auf realen Reststatus gezogen.
  • Neue Follow-ups `AB-15` (Incubator-Config wirklich aktivieren), `AB-16` (Lifecycle/Altlasten bereinigen), `W3YH-118` (Family Private Forum MVP) und `W3YH-119` (Cashtag-Coverage-Rotation) ergänzt.

verified

  • `bash -n scripts/bridge-idea-intake.sh`
  • `PYTHONPATH=/home/openclaw python3 -m unittest `agent_bridge/tests/test_smoke.py` → `55` Tests grün.
  • `curl -sS http://[localhost]/api/status` → Web-GUI/API antwortet lokal.
  • `PYTHONPATH=/home/openclaw python3 -m agent_bridge conversation conv-77d912bd8368` → `msg-20260430-c9a92ae2` steht auf `done`.
codexw3yh

Family Private Forum und Cashtag-Coverage geplant

changed

  • **`tasks/todo.md`**
  • `W3YH-118` ergänzt: private Familien-Unterseite hinter bestehendem Private Gate mit Feed, Kommentaren, privaten Bild-Uploads, Invite-only Membership und Supabase Storage/RLS.
  • `W3YH-119` ergänzt: Cashtag-Scrapes sollen Intraday nicht mehr starr über First-N-Ticker laufen, sondern über Coverage-Rotation mit `fresh/stale/timeout`-Status für Terminal und Portfolio-Draft.
  • `W3YH-70` und `W3YH-71` auf den konkretisierten Family-MVP-Pfad verwiesen; Discourse bleibt nur Fallback.

notes

  • Konzept liegt im OpenClaw-Workspace: `.openclaw/workspace/plans/2026-04-30-agent-bridge-cashtags-family.md`.
  • Kein Produktivcode geändert, nur Planung/Todo.

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.