Kiro.rs 0.5.8
主题:IP 代理池从「仅能增删改查 + 手动分配」升级为具备主动健康检查、失败累计自动剔除、轮询批量分配的完整代理管理能力。此前加完代理只能等真实请求才知道是否可用,代理失效也不会被记录或自动禁用,且只能逐个手动分配给凭据。
✨ 新功能 — 主动健康检查与连通性测试
- 探测连通性与延迟:
ProxyEntry新增health / latencyMs / lastCheckedAt / consecutiveFailures / autoDisabled字段(serde(default)向后兼容旧proxy_pool.json)。通过该代理请求轻量公网端点https://www.gstatic.com/generate_204(8s 超时)验证「能否走通 + 往返延迟」,不依赖上游 Kiro。 - 后台健康检查调度器:照搬
start_balance_refresher模式新增start_proxy_health_checker,每 5 分钟对所有已启用代理用join_all并发探测一次。 - 新接口
POST /proxy-pool/{id}/check与/proxy-pool/check-all:分别供 UI「测试」按钮即时探测单个代理、以及手动触发全量健康检查。
✨ 新功能 — 失败累计与自动剔除
- 连续探测失败自动禁用:探测失败累计
consecutive_failures,达阈值(3 次,与凭据MAX_FAILURES_PER_CREDENTIAL对齐)即自动enabled=false, auto_disabled=true;探测成功立即清零。用户手动重新启用时清除自动禁用标记与失败计数。仅由健康检查触发,不侵入provider.rs请求热路径。
✨ 新功能 — 轮询批量分配
- 新接口
POST /proxy-pool/assign-round-robin:取「已启用且非 Unhealthy」的可用代理,对目标凭据(默认全部)按取模轮询写入proxy_url,复用token_manager.update_credential,免去逐个手动分配。
⚡ 优化 — HTTP Client 缓存
- 缓存容量上限淘汰:
provider.rs的client_cache原为无界HashMap,代理数增长会令每个代理常驻一个reqwest::Client导致内存无界增长。改为带容量上限(64)的ClientCache,按插入顺序淘汰最旧的非全局代理 client,全局代理 client 常驻不被淘汰。
🎨 前端
- 代理池弹窗每行新增健康状态徽章(绿:可用 + 延迟 ms / 红:异常 + 连续失败次数 / 灰:未检测)与最近检测时间,并区分「自动禁用」与用户「手动禁用」。
- 每行新增「测试」按钮,顶部新增「全部检测」「轮询分配」按钮。
Docker image:
zyphrzero/kiro-rs:0.5.8
zyphrzero/kiro-rs:latest
Release assets include SHA256SUMS.txt for checksum verification.