fix: 修复无头服务器环境下手机登录失败问题
在无桌面 Linux 服务器上使用手机验证码登录时,多处 Chrome 启动/重启 调用默认使用有头模式(headless=False),导致 Chrome 在无 DISPLAY 环境 中无法启动。chrome_launcher.py 已有 has_display() 检测函数,但调用处 未使用。 修复点: - _connect() / _connect_existing():ensure_chrome 改为传递 headless=not has_display(),所有子命令统一受益 - cmd_send_code RateLimitError 重启:restart_chrome 改为传递 headless=not has_display(),避免重启时切换为有头模式 - _headless_fallback():加入 has_display() 判断,无桌面时不再 尝试重启 Chrome,改为返回明确错误提示引导用户使用 send-code 新增 scripts/test_headless_login.py,包含 7 个单元测试,通过 mock has_display() 在 Windows 环境中模拟 Linux 无桌面场景,覆盖三处修复 的正反两个方向,确保桌面用户行为不受影响。 同步更新 skills/xhs-auth/SKILL.md,在手机登录两步流程前加入强制交互 说明,要求 Claude 必须先向用户询问手机号/验证码再执行命令,避免占位 符被误当参数传入。
Showing
5 changed files
with
355 additions
and
181 deletions
scripts/test_headless_login.py
0 → 100644
-
Please register or login to post a comment