Skip to content

feat: 增加账号池维护服务,修复 Linux Keyring 弹窗与 onboarding 流程#42

Open
Y1nshe wants to merge 2 commits into
yukkcat:mainfrom
Y1nshe:feat/account-pool
Open

feat: 增加账号池维护服务,修复 Linux Keyring 弹窗与 onboarding 流程#42
Y1nshe wants to merge 2 commits into
yukkcat:mainfrom
Y1nshe:feat/account-pool

Conversation

@Y1nshe

@Y1nshe Y1nshe commented Jan 21, 2026

Copy link
Copy Markdown

变更内容

本 PR 主要包含两部分改动:

1)新增账号池自动维护(清理 + 补号)

  • 新增 PoolService:自动维护账号池,使可用账号数保持 >= pool_target_accounts
  • 自动清理明显不可用账号:
    • 已过期(expires_at <= now)
    • 缺少必需字段(secure_c_ses/csesidx/config_id)
    • 运行时永久错误禁用(非 429 冷却)
    • 可选:当 pool_prune_disabled=true 时自动删除 disabled=true 的账号
  • 当账号池不足时自动触发注册补号:
    • 计算缺口 need = target - healthy
    • 触发注册任务补齐缺口(注册服务自身有单次 count 上限)
  • 启动时自动后台轮询:
    • 池未达标/注册进行中:快速轮询(便于首次启动快速补齐)
    • 池已达标:慢速轮询(降低开销)
  • 增加管理端接口:
    • GET /admin/pool/status:查看维护状态
    • POST /admin/pool/maintain:手动执行一次维护

2)自动化注册/刷新稳定性修复

  • 避免 Linux/WSL 环境下出现 “Authentication required / Unlock Keyring” 弹窗导致自动化阻塞

  • 处理 https://business.gemini.google/admin/create onboarding 流程:

    • 自动填写全名
    • 点击「同意并开始使用」
    • 然后继续进入带 /cid/ 的业务页并提取参数
  • DP 引擎在关键失败点补充调试落盘(截图/HTML/元信息),便于页面结构变更时排查

    测试情况

  • 本地端到端验证通过:

    • PoolService.maintain_once() 在账号池不足时可触发注册并成功落盘新账号
    • 自动化流程可通过 /admin/create 并成功进入提取参数阶段(/cid/)

备注

  • 默认 pool_target_accounts=0 时自动维护关闭,不影响现有使用方式
  • 补号/清理逻辑尽量保守:只删除明确不可用账号,避免误删可恢复账号

@yukkcat

yukkcat commented Jan 23, 2026

Copy link
Copy Markdown
Owner

感谢pr,我弄完那个clash再合并

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants