mytglib 1.1.6 → 1.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -221,10 +221,11 @@ SQLite 与 StringSession 中的 endpoint 只用于交叉校验;实际创建 Po
221
221
  官方 iOS 或 Android 平台,使用相同 DC ID 的内置官方 seed,不会连接上传文件指定的地址。
222
222
  `device_token` 可以省略、设为 `null` 或留空;空值按未提供处理,不会写入连接参数。
223
223
 
224
- `minWarmSlots` 可省略,默认值为 `10`,允许范围为 `1..50`。它是正常负载下希望维持的最小
225
- 预连接槽位数,不是导入账号数,也不是无条件建立的连接数。例如导入 500 个账号且设置
226
- `minWarmSlots: 10` 时,Pool 只会先预热目标槽位,剩余账号作为持久化库存待命,不会把 500 个
227
- 账号同时上线。
224
+ `minWarmSlots` 可省略,默认值为 `10`,可设为正的 JavaScript 安全整数,不再固定限制为 50;
225
+ `minWarmSlots * 5` 也必须是 JavaScript 安全整数。
226
+ 它是正常负载下希望维持的最小预连接槽位数,不是导入账号数,也不是无条件建立的连接数。
227
+ 例如导入 500 个账号且设置 `minWarmSlots: 100` 时,Pool 只会先预热目标槽位,
228
+ 剩余账号作为持久化库存待命,不会把 500 个账号同时上线。
228
229
 
229
230
  Pool 的策略硬上限固定为 `minWarmSlots * 5`,实际连接上限还会受进程 CPU、内存、文件描述符和
230
231
  事件循环压力评估限制。忙碌槽位超过当前连接数一半时,Pool 会在资源允许的情况下异步提高目标槽位;
@@ -264,10 +265,14 @@ console.log(response.status, response.waitTime, response.error);
264
265
  未映射到上述业务状态的检测异常会被捕获并以 `OTHER_ERROR` 正常返回,`error` 仅保留可用的 `message`、`name`、
265
266
  `code`、`text` 和 `seconds`。
266
267
 
267
- 单次检测总期限固定为 10 秒。账号触发 `FLOOD_WAIT` 后会按 Telegram 返回的等待秒数退出暖槽并
268
- 进入冷却,Pool 随即从库存异步补入其他账号;当前请求最多再换用一个已经存在的 `READY` 账号,
269
- 第二次仍触发洪水时返回 `FLOOD_WAIT`。`PHONE_NUMBER_FLOOD` 只保护目标手机号 5 分钟,不处罚
270
- 账号。明确检测结果缓存 5 分钟,最多保存 10,000 条;同一手机号的并发请求会合并为一次检测,
268
+ 单次检测的所有尝试共享固定的 10 秒总期限。暖槽 RPC 触发 `FLOOD_WAIT`,或者槽位错误最终
269
+ 会映射为 `OTHER_ERROR` 时,当前请求最多在重试时已处于 `READY` 的其他暖槽上重试三次,
270
+ 即最多尝试四个暖槽;请求不会等待异步补槽。重试耗尽、没有更多 `READY` 暖槽或总期限耗尽时,
271
+ 返回最后一次已实际发生的暖槽错误;如果尚未发生任何暖槽错误就无可用槽位,则直接返回 Pool busy。
272
+ 触发 `FLOOD_WAIT` 的账号会按 Telegram 返回的等待秒数退出暖槽并进入冷却,
273
+ Pool 随即从库存异步补入其他账号。
274
+ `PHONE_NUMBER_FLOOD` 是目标手机号级错误,不换槽重试,只保护目标手机号 5 分钟且不处罚账号。
275
+ 明确检测结果缓存 5 分钟,最多保存 10,000 条;同一手机号的并发请求会合并为一次检测,
271
276
  基础设施错误不缓存,也不提供强制刷新。
272
277
 
273
278
  `abortSignal` 只取消当前调用方等待,并以 `OTHER_ERROR` 返回取消原因;它不会中断已经启动的
@@ -362,6 +367,8 @@ Rust 实现从 `grammers_core` 根模块导出 `create_phone_status_pool()`、`P
362
367
  期限耗尽、目标号码触发 `PHONE_NUMBER_FLOOD` 或检测基础设施失败均返回
363
368
  `Ok(PhoneStatusCheckResponse::Busy { .. })`。创建和管理操作的无效输入、调用取消、Pool
364
369
  生命周期错误或内部协调错误才通过 `PhoneStatusPoolError` 返回,不应转换成业务 `BUSY`。
370
+ Rust Pool 同样在共享的 10 秒总期限内对 `FLOOD_WAIT` 和暖槽 RPC 其他错误最多换槽重试三次,
371
+ 无 `READY` 槽位、期限耗尽或 `PHONE_NUMBER_FLOOD` 不会继续换槽。
365
372
  Rust 字段名使用 snake_case,通过 serde 序列化时使用 camelCase。资源上限使用 CPU、内存和文件
366
373
  描述符评估;Tokio 没有稳定的 event-loop 利用率指标,因此 Rust 状态不会伪造该项数据。
367
374