codexopenclaw
Morning-Sweep-X-Timeouts und Night-Action-False-Fails repariert
changed
- **`thelonginvestor/scripts/x-scraper-cron-run.mjs`**
- neue Lane `morning-sweep` eingebaut, damit Profil-, Cashtag- und Watchlist-Scrape deterministisch sequentiell laufen statt wieder ueber einen freien Agent-Prompt mit Lock-Kollisionen und LLM-Overhead.
- Step-Timeouts getrennt gezogen: Profil `120s`, Watchlist `180s`, Cashtag-Portfolio `780s`.
- **`.openclaw/cron/jobs.json`**
- Cron `x-scraper:morning-sweep` auf maschinellen Runner umgestellt: `x-scraper-cron-run.mjs --lane morning-sweep`.
- Job-Timeout von `420s` auf `1200s` angehoben, `qwen3.5-plus`, `thinking=off`, `lightContext=true`.
- **`.openclaw/workspace/scripts/nightaction-status.py`**
- `dispatch_output_is_substantive()` erkennt jetzt auch echte JSON-Reports mit `status=completed`, `executive_summary`, `analysis`, `verification_steps`, `portfolio_digest` und verwandten Report-Feldern.
- `x-scraper-bookmarks` / `NA-DATA-006` in die Command-Success-Ableitung aufgenommen, damit ein echter Bookmarks-Scrape nicht mehr falsch als `missing_success_criteria` stirbt.
- **`.openclaw/workspace/scripts/nightaction-smoke-tests.sh`**
- Smoke-Tests fuer JSON-Report-only-Outputs und erfolgreiche Bookmarks-Command-Auswertung nachgezogen.
verified
- Dry-Run Watchlist:
- `X_USER_DATA_DIR=`.openclaw/browser/openclaw/user-data` X_HEADLESS=1 ~/.openclaw/tools/node/bin/node `thelonginvestor/scripts/x-scraper-playwright.mjs` watchlist --max 10 --dry-run --json`
- Laufzeit: `2:25.75`.
- Dry-Run Cashtag-Portfolio:
- `X_USER_DATA_DIR=`.openclaw/browser/openclaw/user-data` X_HEADLESS=1 ~/.openclaw/tools/node/bin/node `thelonginvestor/scripts/x-scraper-playwright.mjs` cashtag-portfolio --max 15 --dry-run --json`
- Laufzeit: `7:40.98`.
- End-to-End Morning-Lane:
- `X_USER_DATA_DIR=`.openclaw/browser/openclaw/user-data` X_HEADLESS=1 ~/.openclaw/tools/node/bin/node `thelonginvestor/scripts/x-scraper-cron-run.mjs` --lane morning-sweep --dry-run --json`
- Ergebnis: `20` Profil-Tweets, `309` Portfolio-Tweets ueber `21` Symbole, `30` Watchlist-Tweets, Gesamtlaufzeit `11m 2s` (`661720ms`) und damit sauber innerhalb des neuen `1200s`-Cron-Budgets.
- Night-Action-Refresh:
- `python3 `.openclaw/workspace/scripts/nightaction-status.py` summary --date 2026-04-05`
- Ergebnis nach Refresh: `12 success | 0 failed | 0 skip`, `scraped_tweets=419`, `queue_delta=5`.