Spaces:
Paused
Paused
Commit History
-
feat: add proxy pool for per-account proxy routing
icebear0828 +1: Claude Opus 4.6Add proxy pool system allowing different accounts to route through different upstream proxies for IP diversity and risk isolation. Backend: - ProxyPool manager with CRUD, assignment, round-robin, health checks - TlsTransport interface accepts per-request proxyUrl parameter - Both curl-cli and libcurl-ffi transports support per-request proxy - CodexApi forwards proxy through the request chain - REST API at /api/proxies for proxy + assignment management - Periodic health checks (default 5min) via api.ipify.org Frontend: - ProxyPool management section in dashboard - Per-account proxy selector dropdown in AccountCard - Four assignment modes: Global/Direct/Auto(Round-Robin)/Specific Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>4ebb914
-
refactor: extract startServer() + path abstraction for Electron reuse
icebear0828 +1: Claude Opus 4.6- Export startServer(options?) from src/index.ts so Electron can import it - Add src/paths.ts: centralized path getters (getConfigDir, getDataDir, etc.) with setPaths() hook for Electron to redirect to userData - Replace all process.cwd() calls with path getters across src/ - Extract shared/ from web/ (i18n, theme, hooks, utils) for desktop reuse - Add /desktop route in web.ts (serves desktop UI if built, no-op otherwise) CLI behavior is unchanged — all path getters default to process.cwd(). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>4a940a5
-
fix: Docker container auto-detect host proxy via host.docker.internal
icebear0828 +1: Claude Opus 4.6Docker containers can't reach host proxies on 127.0.0.1 (container loopback). Now probes both 127.0.0.1 and host.docker.internal so Docker users get automatic proxy detection without any configuration. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>d7d7389
-
fix: use known-profile list instead of runtime detection for TLS impersonation
icebear0828 +1: Claude Opus 4.6The previous testProfile() approach using `curl -V` never validated the --impersonate target. Worse, v1.5.x silently accepts unknown profiles but applies NO impersonation (JA3 fingerprint = bare curl). Replace runtime detection with a deterministic known-profile list. Any configured chromeN is mapped to the nearest supported version (e.g. chrome137 → chrome136). This works reliably across all curl-impersonate versions. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>38895cf -
fix: auto-fallback for unsupported TLS impersonate profiles
icebear0828 +1: Claude Opus 4.6curl-impersonate skips Chrome versions when the TLS fingerprint is unchanged (e.g. chrome137 doesn't exist, chrome136 covers it). Previously, configuring an unsupported profile like chrome137 caused `curl: (43) Unknown impersonation target` at runtime. Now `detectImpersonateSupport()` validates the configured profile by test-running it, and automatically descends to the nearest supported Chrome version. Also unified the FFI transport to use the resolved profile instead of a hardcoded "chrome136". Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>27e0738
-
feat: add pnpm/bun package manager support for local development
icebear0828 +1: Claude Opus 4.6Replace hardcoded npm calls in scripts with npx to be PM-agnostic, update error messages to mention all three package managers. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>d3a5a81 -
feat: add libcurl-impersonate FFI transport for Chrome TLS fingerprint
icebear0828 +1: Claude Opus 4.6Windows lacks curl-impersonate CLI, so use koffi FFI to call libcurl-impersonate DLL directly. Introduces TlsTransport abstraction with auto-selection: FFI on Windows, CLI subprocess on macOS/Linux. All three API protocols (OpenAI/Anthropic/Gemini) verified working. - New: src/tls/transport.ts (interface + singleton factory) - New: src/tls/curl-cli-transport.ts (extracted from codex-api.ts) - New: src/tls/libcurl-ffi-transport.ts (koffi FFI, curl_multi streaming) - New: scripts/poc-libcurl-ffi.ts (POC verification script) - Updated: setup-curl.ts auto-downloads DLL + cacert.pem on Windows - Updated: codex-api.ts uses transport abstraction (~200 lines removed) - Updated: curl-fetch.ts delegates to transport singleton Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>3d01305
-
refactor: fingerprint alignment, auto-maintenance, Docker deployment
icebear0828 +1: Claude Opus 4.6Phase 1 - Eliminate fingerprint detection gaps: - Dynamic sec-ch-ua from config chromium_version (aligned with TLS profile) - Inject full fingerprint headers into curl-fetch (OAuth/appcast) - Unify Accept-Encoding based on curl-impersonate detection - Optimize header ordering (single sort pass) Phase 2 - Auto-maintenance: - Structured YAML mutation utility (replace regex hacks) - Auto full-update pipeline on new version detection - Config hot-reload after updates - Exponential backoff token refresh (5 attempts + 10m recovery) - Immediate persistence for critical data (tokens, cf_clearance) - Cookie v2 format with expiry timestamps - Graceful shutdown with 10s timeout protection - Usage counters auto-reset on rate limit window rollover Phase 3 - Docker deployment: - Dockerfile, docker-compose.yml, .dockerignore - Deployment docs in README Fixes: - Extract planType from JWT /auth claim (was looking in /profile) - Backfill missing planType on startup for existing accounts - Show full d…347f81b -
feat: auto-detect local proxy (mihomo/clash/v2ray)
icebear0828 +1: Claude Opus 4.6On startup, probe common local proxy ports (7890, 7897, 10809, 1080, 10808) and automatically use the first one found. No config needed — just have a proxy running and it works. Priority: config proxy_url > HTTPS_PROXY env > auto-detect. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>e7285df -
feat: auto proxy detection for curl + tighten dashboard layout
icebear0828 +1: Claude Opus 4.6- Add tls.proxy_url config + HTTPS_PROXY env var support - Inject proxy args into both curlPost() and getUsage() curl calls - Explicitly set Accept-Encoding to gzip,deflate for system curl compat - Include setup-curl.ts postinstall script (was gitignored) - Tighten dashboard font sizes and spacing for compact layout - Rename dashboard1.html → dashboard.html, fix web.ts reference Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>d85b21d -
feat: desktop context injection, multi-turn sessions, TLS impersonation & auto-update
icebear0828 +1: Claude Opus 4.6- Inject Codex Desktop system prompt into every request for full feature parity - Add previous_response_id for multi-turn conversation continuity - Add curl-impersonate auto-detection with Chrome TLS fingerprint fallback - Fix appcast XML parsing for element-style Sparkle tags - Remove private maintenance scripts from public repo - Add README with setup and usage instructions Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>22a7de1