Status: 2026-05-23 21:51 | Balance: €0.10 (Account 2700434 Test) / €3.73 (Hauptaccount 2525530) | Pipeline: Heypiggy → PureSpectrum → Cint → Provider X
Plan 27 P2.1 ✅ ERFÜLLT — 1 Heypiggy-Survey end-to-end completed (Survey 68025989, 173s, 18 decisions, +0.03 €).
# Install
cd survey-cli && pip install -e ".[dev]"
# Start Chrome with Stealth-Flags (P0.4)
PROFILE_DIR="/tmp/heypiggy-bot-$(date +%s)"
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
--remote-debugging-port=9999 --remote-allow-origins="*" \
--user-data-dir="$PROFILE_DIR" \
--no-first-run --no-default-browser-check \
--disable-blink-features=AutomationControlled \
--disable-features=IsolateOrigins,site-per-process \
--accept-lang=de-DE,de,en-US,en --lang=de \
--disable-dev-shm-usage --disable-extensions --disable-default-apps \
about:blank &>/dev/null &
# Inject cookies + navigate to Heypiggy
python3 -c "
from survey.chrome import inject_heypiggy_cookies_to_tab
import json, urllib.request, websocket, time
tabs = json.loads(urllib.request.urlopen('http://localhost:9999/json').read())
tab = next(t for t in tabs if t['type']=='page')
inject_heypiggy_cookies_to_tab(tab['webSocketDebuggerUrl'])
ws = websocket.create_connection(tab['webSocketDebuggerUrl'])
ws.send(json.dumps({'id':1,'method':'Page.navigate','params':{'url':'https://www.heypiggy.com/?page=dashboard'}}))
ws.recv(); ws.close()
"
# Run 1 survey (strict mode — 1 attempt, no retries)
cd survey-cli && python3 -m survey.skills.autonomous_loop 1survey-cli/survey/skills/autonomous_loop.py— Entry-Point (1 attempt = 1 attempt strict mode)survey-cli/survey/skills/deterministic_solver.py— Survey-Loop, kein Self-Abortsurvey-cli/survey/skills/cdp_engine.py— 3-Tier Click-Backend (CGEvent → CDP-Input → JS), aktuellprefer_cgevent=Falsesurvey-cli/survey/skills/smart_page_solver.py— DOM-Scan, fillt radios/text/captchas/drag-dropssurvey-cli/survey/skills/decision_engine.py— 3-Tier Dispatcher: Workflow → action_cache → LLM-Helpersurvey-cli/survey/skills/auto_stealth_injector.py— patcht navigator.webdriver auf neuen Tabs (P0.2)survey-cli/survey/stealth/bezier_path.py— Bezier mouse-path mit Overshoot+Korrektur
solve_word_association.py— Sentry/CloudResearch (P1.11b)_solve_purespectrum_number_drag— drag-drop number-captcha mit Vision-OCR (P1.12)_solve_drag_drop— generic CDK drag puzzles_set_select_by_value— Birthday-Dropdown handler (P1.11d)_check_pre_submit_block— verhindert Forward ohne Antwort (P1.11e)_check_consent_checkboxes— Datenschutz-Checkboxes (P1.8)_dismiss_cookie_banner— Cookie-Banner-Dismiss (P1.0)
data/workflows/heypiggy/start-survey-modal.json— modal-button-clickdata/workflows/purespectrum/advance.json— strict v2.0 mitbody_text_must_not_contain(P1.12)data/workflows/_generic/advance.json— fallback Forward-Click
data/personas/jeremy_schulze_de.yaml— Jeremy Schulze, 32, Berlin, Meister, mittleres Einkommen, PLZ 10785, birth 1993-05-15
- Text-Reasoning:
nvidia/nemotron-3-nano-omni-30b-a3b-reasoning(NIM) - Vision-OCR:
meta/llama-3.2-11b-vision-instruct(NIM) - Decision Tier-3:
google/gemini-3.1-flash-lite(Vercel AI Gateway)
API-Keys in data/: nim-api-key.txt, vercel-ai-gateway-key.txt
survey/reliability/— CircuitBreaker, TokenBucket, DLQ Health, Full Stability Gate (Welle-3 primitives, teil-wireup'ed)
- ✅
navigator.webdriverpatched auf jedem neuen Tab (P0.2) - ✅ CDP
Input.dispatchMouseEventfür alle Klicks (isTrusted=true) - ✅ Bezier-Mouse-Path mit Overshoot + Korrekturschleife
- ✅ Gauss-Click-Position-Jitter (size-aware σ=2.5/6/12)
- ✅ Reading-Time pro Page (1.5–6s, Gauss-jittered)
- ✅ Variable Scroll während Reading
- ✅ Click-Hold 30-90ms (Liu et al. 2021)
- ✅ Settle vor Click 50-120ms
- playstealth, webauto-nodriver, skylight-cli, agent-toolbox/FastAPI (gelöscht 2026-05-13)
- 8 verwaiste Daemon-Files (gelöscht 2026-05-23, P0.3)
AGENTS.md ist die einzige Wahrheit ROADMAP.md für aktuelle Pläne (27 ERFÜLLT, 28+29 deferred)