- Add S2A_API_MODE configuration option to enable browser-less authorization
- Implement S2AApiAuthorizer class using curl_cffi for browser fingerprint simulation
- Add Sentinel PoW (Proof of Work) solver with FNV-1a hashing algorithm
- Implement OAuth flow via direct API calls instead of browser automation
- Add s2a_api_authorize() function to handle email/password authentication
- Support proxy configuration for API requests
- Add requirements token generation for API authentication
- Update browser_automation.py to check S2A_API_MODE and route to API or browser flow
- Update config.py to load S2A_API_MODE from configuration
- Add api_mode option to config.toml.example with documentation
- Improves performance and stability by eliminating browser overhead while maintaining compatibility with existing browser-based flow
- Add `allow_fallback` parameter to `register_openai_account_auto()` to control fallback behavior
- Return `"retry_new_email"` status when API registration fails without fallback enabled
- Return `"domain_blacklisted"` status when domain is blacklisted during registration
- Update `register_only()` to handle and propagate `"retry_new_email"` status
- Update `register_and_authorize()` to handle and propagate `"retry_new_email"` status
- Add retry logic in `process_accounts()` to regenerate email and reinvite on API failures
- Add retry logic in `_process_single_account_worker()` to regenerate email and reinvite on API failures
- Improve error handling to distinguish between domain blacklist and API failures requiring email regeneration
- Add automatic email retry logic when verification code times out (5-second timeout)
- Implement new email creation and team invitation for failed verification attempts
- Add max_email_retries parameter to control retry attempts (default: 3)
- Add team_name parameter to enable automatic team invitations for new emails
- Return special "new_email:xxx@xxx.com:password" format when new email is used
- Update register_openai_account_auto() to support team_name parameter
- Update register_and_authorize() to support team_name parameter and return new email info
- Improve verification code timeout handling with configurable retry intervals
- Add nonlocal verification_timeout flag to track timeout state across retries
- Update docstrings to document new parameters and return value changes
- Add `_send_photo_to_all()` async method to send photos to all admin chat IDs
- Add `send_screenshot()` async method for sending debug screenshots via Telegram
- Add `send_screenshot_sync()` synchronous wrapper for non-async code integration
- Add `save_debug_screenshot()` function to capture and send screenshots when DEBUG_SCREENSHOT=true
- Add debug screenshot directory creation and timestamp-based file naming
- Improve browser initialization with automation detection bypass and realistic User-Agent
- Add `--disable-blink-features=AutomationControlled` flag to hide automation characteristics
- Set Mozilla/5.0 User-Agent string to mimic real Chrome browser
- Enhance OpenAI account registration flow with better error handling and debugging
- Add screenshot capture on page load failures and popup abnormalities
- Improve popup detection with additional CSS and text selectors for better reliability
- Increase timeout values for popup loading and form detection (1-3s to 2-5s)
- Add multiple fallback selectors for login form detection (email input fields, welcome text)
- Improve signup button retry logic with longer wait times and additional selector options
- Add screenshot capture on critical failures (popup retry failed, signup button not found)