merge: sync origin/dev into pr-112

This commit is contained in:
Ryan Liu
2026-04-24 09:35:07 +08:00
22 changed files with 1698 additions and 84 deletions
+34
View File
@@ -312,6 +312,7 @@
6. 上报完成后再异步点击提交,避免页面跳转打断响应通道
7. 延迟提交真正触发前会再次检查 Stop 状态,避免用户已停止时页面仍继续自动提交
8. 后台在真正确认 Step 3 完成前,会额外检查提交后是否切换页面;如果出现认证页 `Try again / 重试` 页面,或 `/email-verification` 上的 `405 / Route Error` 重试页,会先通过共享恢复逻辑最多自动点击 5 次 `重试` 尝试恢复,再继续后续链路
9. Step 3 收尾阶段如果页面切换导致旧内容脚本失联,后台会把单次消息等待收口到当前收尾预算内,优先尽快重试重连;若最终仍未恢复,则输出中文的步骤级错误,而不是直接暴露底层英文通信超时
### Step 4 / Step 8
@@ -419,6 +420,7 @@
-`2925 provide` 而言,Step 8 仍不依赖验证码页显示邮箱做收件匹配,而是直接测试所有命中 ChatGPT / OpenAI 过滤条件的邮件。
-`2925 receive` 而言,Step 8 会把当前目标注册邮箱一并传给 2925 内容脚本;只有当邮件里显式写出了其他邮箱时才会跳过,从而在不破坏历史兼容性的前提下,尽量降低误收验证码的概率。
-`custom` provider 而言,Step 8 仍使用手动验证码确认弹窗;弹窗当前额外提供“出现手机号验证”按钮,点击后会直接抛出与真实 `add-phone` 页面一致的 fatal 错误,供 Auto 按既有 add-phone 分支继续下一邮箱。
### Step 9
@@ -492,6 +494,35 @@ Codex2API 补充:
- `gmailBaseEmail`
- `mail2925BaseEmail`
### 7.1.1 2026-04-23 补充:自定义邮箱池链路
本轮新增 `custom-pool` 生成方式,用于把一批已准备好的邮箱按顺序并入现有自动流,而不是继续为每种邮箱页面单独适配一套“新地址生成器”。
当前行为约定:
1. sidepanel 在 `邮箱生成` 中新增 `自定义邮箱池` 选项,并显示多行 `邮箱池` 输入框
2. 输入框中的邮箱会按“每行一个”归一化为数组,写入持久配置 `customEmailPool`
3. Auto 启动前会先保存当前配置;如果当前生成方式是 `custom-pool`,则自动把总轮数锁定为邮箱池长度
4. 后台在每个目标轮次开始前,会按 `targetRun` 从邮箱池读取对应邮箱,并写入当前 `state.email`
5. 同一目标轮次里的失败重试会继续复用该轮邮箱,不会提前跳到下一个
6. 如果当前目标轮次超出了邮箱池数量,后台会直接报错提示数量不一致
7. 自定义邮箱池只负责“本轮注册邮箱分配”,实际收码仍由当前 `mailProvider` 对应的既有链路负责
### 7.1.2 2026-04-23 补充:自定义邮箱服务号池链路
本轮给 `mailProvider = custom` 这条链路补上了“号池式注册邮箱分配”,目标是让“手动验证码模式”也能稳定跑多轮不同邮箱,而不是每轮都手动改一次注册邮箱。
当前行为约定:
1. sidepanel 在 `邮箱服务 = 自定义邮箱` 时,会额外显示 `自定义号池` 文本框
2. 文本框中的邮箱会按“每行一个”归一化为数组,写入持久配置 `customMailProviderPool`
3. 如果当前 `Mail = 自定义邮箱` 且号池不为空,Auto 启动前会把总轮数锁定为号池长度
4. 后台在每个目标轮次开始前,会按 `targetRun``customMailProviderPool` 读取对应邮箱,并写入当前 `state.email`
5. 只要当前邮箱还没成功认证、也没出现 `add-phone / 手机号验证`,Auto 就会继续复用该邮箱重试,不会提前切到下一个
6. 只有当当前邮箱成功完成整轮,或明确进入 `add-phone / 手机号验证` fatal 分支时,Auto 才会切到号池中的下一个邮箱
7. 如果当前目标轮次超出了号池数量,后台会直接报错提示数量不一致
8. 这条链路只影响“注册邮箱分配”;Step 4 / Step 8 仍然走 `custom` provider 既有的手动验证码确认逻辑
### 7.2 共享模块分工
- `managed-alias-utils.js`
@@ -518,6 +549,7 @@ Codex2API 补充:
- Duck
- Cloudflare
- Cloudflare Temp Email
- 自定义邮箱池
- iCloud 隐私邮箱
### 7.2 Hotmail
@@ -668,6 +700,8 @@ Codex2API 补充:
2. 为本轮自动流程分配唯一 `autoRunSessionId`
3. 计算是否从中断点继续
4. 每轮执行前重置必要运行态
- 如果当前 `Mail = 自定义邮箱` 且配置了 `customMailProviderPool`,会先按当前目标轮次把号池中的对应邮箱写回运行态
- 如果当前生成方式是 `custom-pool`,会先按当前目标轮次把邮箱池中的对应邮箱写回运行态
5. 执行 `runAutoSequenceFromStep`
- 步骤 7 内部仍保留登录态恢复的有限重试,但 `add-phone / 手机号页` 属于立即跳出的不可重试错误
- 步骤 8 若在验证码提交后进入 `add-phone / 手机号页`,会直接抛出 fatal 错误,不再先标记步骤成功