Spaces:
Sleeping
Sleeping
Commit History
-
refactor: migrate electron from branch to npm workspace
icebear0828Electron code moved from a separate branch into packages/electron/, eliminating the fragile master→electron branch sync that caused frequent merge conflicts (package.json, lockfile, release.yml). - Add npm workspaces to root package.json - Create packages/electron/ with independent deps (electron, electron-builder, esbuild) - Desktop UI imports use @shared/ Vite alias instead of deep relative paths - Rewrite release.yml for workspace-aware build - Delete sync-electron.yml (no longer needed) - Cherry-pick setup-curl.ts fixes from electron branch (GITHUB_TOKEN, dll rename, tar fallback)178e38e -
fix: macOS Electron login error -86 (EBADARCH) due to wrong-arch curl binary (#96) (#98)
icebear +1: icebear0828Unverified signatureCI built both arm64/x64 DMGs on a single arm64 runner, bundling only the arm64 curl-impersonate into both. Intel Mac users got EBADARCH when spawning the binary during OAuth token exchange. - Split macOS CI into per-arch jobs with --arch flag for setup-curl.ts - Add --arch override to setup-curl.ts for cross-compilation - Improve spawn error message to diagnose architecture mismatch Co-authored-by: icebear0828 <icebear0828@users.noreply.github.com>6c928c9
-
fix: model store dual index, desktop UI fallback, dynamic port support
icebear0828- Model store: replace O(n) plan map with dual index (planType→models + modelId→plans), both O(1) - Desktop UI: fallback to web UI when desktop build missing, add startup path diagnostics - Server: resolve actual bound port from server.address() to support port=0 - Model fetcher: fix log message (said 5s, actually 1s) - Update Codex Desktop fingerprint to v26.311.21342 (build 993)b94940f
-
fix: chunk regex match underscore in main-XXXXX.js filename
icebear0828 +1: Claude Opus 4.6Vite chunk hashes can contain underscores (e.g. main-Dl6lTb0_.js) which the previous regex [A-Za-z0-9]+ did not match. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>b94b4e5 -
fix: harden extraction pipeline + update Codex Desktop v26.309.31024
icebear0828 +1: Claude Opus 4.6- Fallback originator scanning: try/catch extractFromMainJs, scan all .vite/build/*.js on failure instead of aborting - Webview model discovery: scan webview/assets/*.js for additional model IDs not found in main.js - Fix bracket search in extractPrompts(): limit lastIndexOf("[") to 50-char window instead of unbounded backward search - Prompt validation in savePrompt(): reject content <50 chars or with >3 garbled lines to prevent corruption - Fix corrupted title-generation.md (garbled lines 17-35) - Update Codex Desktop to v26.309.31024 (build 962) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>ea06916
-
chore: deduplicate model selector, auto-extract chromium version, harden update pipeline
icebear0828 +1: Claude Opus 4.6- Remove independent model dropdown from Anthropic SDK Setup; use shared Default Model from API Configuration - Auto-extract Chromium version from Electron via electron-to-chromium in extract-fingerprint - Add 5-min timeout kill timer for full-update child process to prevent permanent lock - Add try/finally in model-fetcher initial timer to prevent refresh loop interruption - Bump Codex Desktop to v26.228.1430 (build 760) - Update poll interval from 30min to 3 days Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>8728276 -
fix: tighten JS detection regex in extract-fingerprint to catch more minified patterns
icebear0828 +1: Claude Opus 4.6Change quantifier from * to + so bare identifier lines in markdown are not falsely matched, while consecutive punctuation sequences like backtick-comma-paren are still caught as minified JS. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>7cc27d8
-
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
-
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
-
feat: architecture audit — disguise hardening, update automation, robustness
icebear0828 +1: Claude Opus 4.6Disguise hardening (P0): - Enforce HTTP header order from fingerprint.yaml config - Add browser-level headers (Accept-Encoding, Accept-Language) - Add Codex-specific request body fields (tools, previous_response_id) - Protect /debug/fingerprint endpoint (dev/localhost only) Update automation (P0-P1): - Integrate appcast version checker into server process (30-min polling) - Expose update state via /health endpoint - Externalize model catalog to config/models.yaml - Fail fast on critical extraction failures (originator, api_base_url) - Update apply-update.ts to compare models against YAML config Robustness (P0-P1): - Add 5xx retry with exponential backoff in chat route (max 2 retries) - Wrap HTML file reads in try-catch to prevent server crashes - Add config load try-catch with friendly error messages - Log persistence errors instead of silently swallowing - Add retry (1 attempt, 5s delay) for token refresh failures Code hygiene: - Delete leftover WHAM dist files - Mark 6 backward-co…85aec43 -
Initial commit: Codex Proxy with quota API and Cloudflare bypass
icebear0828 +1: Claude Opus 4.6OpenAI-compatible proxy that translates Chat Completions API to ChatGPT's Codex Responses API. Includes multi-account management, official quota querying via curl subprocess (bypasses Cloudflare TLS fingerprinting), per-account cookie jar, and full API documentation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>5d0a52f