v0.6.0
v0.6.0 — CDP Integration, Session Pool Stability, File Uploads
This release introduces full CDP (Chrome DevTools Protocol) integration to bypass AliCloud WAF and baxia bot detection, major session pool stability fixes, automatic large-payload file uploads, and Chromium memory optimization.
Highlights
- CDP Integration: All Qwen API calls route through real Chrome via CDP, automatically bypassing WAF/baxia bot detection without manual header capture
- Zero Setup: Auto-launches headless Chrome on port 26404 — no manual configuration needed
- Session Pool Stability: Fixed hanging acquires, double-release bugs, zombie sessions, and inFlight tracking leaks
- File Uploads: Automatically uploads large payloads as Qwen file attachments instead of truncating
- Chromium Memory: 11 memory-reduction flags keep Chrome under 512MB headless
Features
- Route Qwen API through real Chrome via CDP to bypass baxia WAF
- Per-account CDP browser contexts with proper startup ordering
- Headless detection evasion, UA rotation, and improved warmup
- Route ALL API calls through Node.js fetch — removed browser CDP Fetch domain
- CDP Fetch domain interception for large request bodies + FAIL_SYS_USER_VALIDATE handling
- Bot detection logging and account routing fixes
- Auto-upload large payloads as Qwen file attachments at token limit
- Keep latest user message inline, upload only history as file
- Unlock timestamp in throttle logs and API responses
- XML tool result format,
.txtfile uploads, updated system prompt with Chromium memory flags - Typed config with password master key, health endpoint, rate limiting
Fixes
- Session Pool: Prevent hanging acquires, empty stream responses, browser context leaks (orphan processes)
- Throttling: Auto-switch accounts on rate limit, remove prewarm pool, persist throttle across restarts, release session on stream timeout
- CDP: Fix streaming hang for large bodies, two-phase body storage for 132KB+ requests, fire-and-forget CDP fetch, store profileCookies for Node.js fetch
- File Uploads: Use natural user message for payload reference, upload full conversation context, deduplicate upload logic
- Auth: Account auth architecture — throttle on bot detection, timeout skip, LSP connection fixes, login flow, CDP init, system reminder handling
- Dashboard: Loads when API_KEY is set, CDP status display
- Captcha: Handle Qwen CAPTCHA detection (FAIL_SYS_USER_VALIDATE)
- Streaming: One-chunk buffer prevents XML tool call leaks across SSE chunk boundary
- Stability: Stray TypeScript
as-anystatements, missing browser context state lookup, Playwright browser install + robust watchdog startup
Performance
- Streaming parse optimization + sliding window fix
- Skip filter pipeline when inside tool call block (depth > 0)
Refactoring
- Remove dead
toolResultContentsfield across pipeline - Remove logs page from dashboard
Tests
- Prevent throttleAccount tests from touching real
.qwen/accounts.json - Avoid API_KEY env override in getAll test
- Clean up test artifacts after run
Quality
- Biome format fixes, dead code removal, docs audit
- Remove console.log from cdpClient.ts
- Update stale documentation to match current codebase
Full Changelog: v0.5.0...v0.6.0