Files
autoreg-skills-max/skills/ai-provider-autoreg/references/newapi-relay-farm-wave-ops.md

33 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# New-API relay farm: wave ops (regfarm/github_oauth)
Farm location: `C:/Users/User/tmp/regfarm/github_oauth` — registers GitHub accounts onto free New-API relay panels via per-panel GitHub OAuth apps. GHSession goes through a rotating proxy pool; panels are hit DIRECT (panel-side 403s proxy IPs).
## Pre-wave checklist
1. **Smoke-test existing pool keys before treating the pool as an asset.** Free relay panels periodically purge/revoke user tokens — an entire aggregated pool (30 panels, ~1000 keys) can go 401 `Invalid token` in days. Test 2-3 keys per panel with `POST /v1/chat/completions` (cheap model). Keys in pool CSVs are often stored WITHOUT the `sk-` prefix — auth needs `Bearer ***`, try both forms before declaring a key dead.
2. **Regenerate `_gh_proxies.json`:** select `alive=1` from `C:/Users/User/Desktop/proxy_bot/proxies.db` (table `pool`), live-test each against `https://github.com/login` (ThreadPool 40, ~12s timeout), write a flat JSON list of proxy URLs. GHSession round-robins this list and auto-rotates on network errors (-1).
3. **Check per-panel frontiers:** `_idx4_<panel>.txt` line count = GH accounts consumed on that panel. Accounts are reusable ACROSS panels (each panel = a different GitHub OAuth client_id), so per-panel capacity = pool_size − idx4_count.
## Wave run
- Runner: `OUTNAME=wave_<panel> PYTHONIOENCODING=utf-8 PYTHONPATH="" <Python311> reg_proxy100.py <panel> <start_idx> <count>`; results in `out/<OUTNAME>.json`, redirect stdout to `wave_<panel>.log`.
- `PYTHONIOENCODING=utf-8` is MANDATORY when redirecting to a file — the runner prints `→` and crashes under cp1252 on the first print, silently killing the whole wave (exit=1, near-empty log).
- Run waves SEQUENTIALLY in one bash loop. Parallel waves = concurrent OAuth authorize hits from the same exit-IP pool → GitHub `state fail: POST 429` rate explodes.
- Before a long background run, do a 2-3 account sanity wave on the target panel and read the log — pipeline drift (dead proxies, panel changes) shows up in the first minutes, not hours.
## Log-line classification
- Success: `user_id=N quota=... mode=token key=YES`.
- `authorize redirect without code: github.com/account/unverified-email` — account email unverified; PERMANENT for that account, skip.
- `callback http=200 Unable to connect to GitHub server` — panel-side OAuth exchange failure; RETRYABLE.
- `state fail: POST 429` — GitHub OAuth app/IP rate limit; retryable later with pacing (runner already forces sleep ≥20s).
- `WinError 10060` proxy timeouts — auto-rotated, count as retryable if the account never got a code.
- Expect ~30-50% yield per pass; plan a retry pass over retryable classes after the wave.
## Pool quality
- The TAIL of `gh_accounts.json` (high indices) tends to be unverified-email accounts — don't assume remaining idx capacity is usable; a 2-account probe reveals it.
- Pool record shape: `{login, email, password, totp}`.
## Panel liveness rules
- 401 `Invalid token` (new-api error format) = panel ALIVE, keys dead → re-register.
- HTTP 500 `Database error` = panel broken → skip.
- 403 `request blocked` / Cloudflare HTML = panel fronted/blocked → skip or browser path.
- Never trust a forwarded post's model list — smoke-test with the panel's SMOKE_MODEL (see `reg_proxy100.py`) immediately after registering.