Angiin

fix: 隔离登录 tab 防止其他命令复用导致验证码失效

send-code/get-qrcode 保存 login tab 后清除 session tab 引用,
防止中间命令通过 _connect() 复用登录表单 tab 并将其导航走或关闭,
导致 verify-code/wait-login 找不到原始登录表单。
@@ -364,8 +364,10 @@ def cmd_get_qrcode(args: argparse.Namespace) -> None: @@ -364,8 +364,10 @@ def cmd_get_qrcode(args: argparse.Namespace) -> None:
364 364
365 qrcode_path = save_qrcode_to_file(png_bytes) 365 qrcode_path = save_qrcode_to_file(png_bytes)
366 366
367 - # 记录 tab,供 wait-login 精确reconnect 367 + # 记录 login tab,供 wait-login 精确 reconnect
368 _save_login_tab(page.target_id, args.port) 368 _save_login_tab(page.target_id, args.port)
  369 + # 清除 session tab 引用——隔离登录表单,防止其他命令复用并关闭/导航该 tab
  370 + _clear_session_tab(args.port)
369 371
370 # 只断开 CDP 连接,不关闭 tab——QR 会话保持,用户可继续扫码 372 # 只断开 CDP 连接,不关闭 tab——QR 会话保持,用户可继续扫码
371 browser.close() 373 browser.close()
@@ -413,8 +415,10 @@ def cmd_send_code(args: argparse.Namespace) -> None: @@ -413,8 +415,10 @@ def cmd_send_code(args: argparse.Namespace) -> None:
413 _output({"logged_in": True, "message": "已登录,无需重新登录"}) 415 _output({"logged_in": True, "message": "已登录,无需重新登录"})
414 return 416 return
415 417
416 - # 记录 tab,供 verify-code 精确 reconnect 418 + # 记录 login tab,供 verify-code 精确 reconnect
417 _save_login_tab(page.target_id, args.port) 419 _save_login_tab(page.target_id, args.port)
  420 + # 清除 session tab 引用——隔离登录表单,防止其他命令复用并关闭/导航该 tab
  421 + _clear_session_tab(args.port)
418 _output({ 422 _output({
419 "status": "code_sent", 423 "status": "code_sent",
420 "message": f"验证码已发送至 {args.phone[:3]}****{args.phone[-4:]},请运行 verify-code --code <验证码>", 424 "message": f"验证码已发送至 {args.phone[:3]}****{args.phone[-4:]},请运行 verify-code --code <验证码>",