跳转至

变更日志

本文档记录 igapi-rs 的版本级变更。每次创建或推送 release-v* / test-v* 标签前,必须先更新对应版本条目。

未发布 (Unreleased)

  • 新增 Android v391.0.0.42.82 版本基线,与现有 v428 并存(多版本可选):
  • Rust:版本命名空间 igapi_core::android::v391::Client / igapi_core::android::v428::Client / igapi_core::android::latest::Client
  • Python:版本命名空间 igapi.android.v391.Client / igapi.android.v428.Client / igapi.android.latest.Client
  • CLI:版本选择后续按平台版本子命令或等价版本命名空间表达,不保留无版本全局入口。
  • 实现 v391 的 7 步 CAA 登录流程:mobileconfig → create_android_keystore → process_client_data_and_redirect → phone_number_prefill → oauth_token_fetch → send_login_request → dual_tokens。
  • 新增 v391 2FA 二次验证login() 返回 TwoFactorRequired 时暂存验证上下文,Rust android::v391::Client::complete_two_factor(code) / Python client.complete_two_factor(code) 提交验证码完成 two_step_verification.entrypointverify_code.async;新增 IG-Set-Authorization Bearer 令牌捕获。
  • 新增 v391 登录后 init 收尾序列(best-effort 预热 aed/current、loom/fetch_config、get_account_family、ndx_ig_steps、fetch_onetap、process_contact_point_signals 等),失败不阻断登录。
  • 新增可插拔 keystore attestation 签名接口 AndroidAttestationProvider(默认 SoftwareAttestationProvider),支持版本客户端 with_attestation_provider(...) 注入真机硬件 attestation。
  • 已知边界:默认软件 attestation 会被 v391 登录风控拒绝(SLR error);端到端登录成功需注入真机硬件 attestation。详见 docs/api/android/v391登录流程.md
  • 同步更新 Rust/Python 测试、docs/api/android/v391登录流程.mddocs/llms*.txt

v0.1.7 - 2026-07-03

  • 将代理配置从裸字符串升级为结构化对象:Rust 使用 ProxyConfig / ProxyType,Python 使用 Proxy / ProxyType
  • Python 客户端构造参数 proxy 改为只接受 Proxy 对象,推荐 Proxy(proxy_type=ProxyType.SOCKS5H, host=..., port=...) 关键字写法,避免代理协议拼写和 HTTPS 目标站语义混淆。
  • Web 客户端在未显式传入代理时禁用系统代理环境变量;代理 CONNECT 失败时返回脱敏后的中文诊断信息。
  • 明确代理协议支持边界:Web 支持 httphttpssocks4socks4asocks5socks5h,Android/iOS 当前支持 http / https
  • 同步更新 Python/Rust 测试、代理配置文档和 docs/llms*.txt API 摘要。

v0.1.6 - 2026-07-03

  • 修复 SOCKS5 代理支持:为 wreq 启用 socks feature,使代理配置能够使用 SOCKS5 地址。
  • 更新锁文件以同步依赖 feature 解析结果。
  • 补充代理 fixture 示例,便于后续代理相关验证。