变更日志¶
本文档记录 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时暂存验证上下文,Rustandroid::v391::Client::complete_two_factor(code)/ Pythonclient.complete_two_factor(code)提交验证码完成two_step_verification.entrypoint→verify_code.async;新增IG-Set-AuthorizationBearer 令牌捕获。 - 新增 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登录流程.md与docs/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 支持
http、https、socks4、socks4a、socks5、socks5h,Android/iOS 当前支持http/https。 - 同步更新 Python/Rust 测试、代理配置文档和
docs/llms*.txtAPI 摘要。
v0.1.6 - 2026-07-03¶
- 修复 SOCKS5 代理支持:为
wreq启用socksfeature,使代理配置能够使用 SOCKS5 地址。 - 更新锁文件以同步依赖 feature 解析结果。
- 补充代理 fixture 示例,便于后续代理相关验证。