Files
codex-oauth-plus-onboarding…/skill/codex-oauth-plus-onboarding/references/session-review-2925-luban-openai-onboarding-2026-05-11.md
T

4.0 KiB

Session review: 2925 + Luban OpenAI onboarding lessons (2026-05-11)

Why this reference exists

BOSS asked to actively review the conversation and update the skill library. This session produced several reusable lessons for the broader codex-oauth-plus-onboarding workflow, and they belong under the existing umbrella skill rather than as narrow one-off skills.

Class-level lessons captured

1. 2925 Webmail false negatives are a scraper problem until proven otherwise

A manual user check found OpenAI verification mail in 2925 Inbox even though automation reported candidateCount=0 for multiple resend cycles. The root cause was route-based scraping:

Wrong: https://2925.com/#/mailList?type=收件箱
Right: click the left-side 收件箱 nav, then inspect the real list at #/mailList

Reusable rule: before concluding OpenAI did not deliver to a 2925 alias, verify the scraper uses the real DOM flow:

click left 收件箱 -> toolbar 刷新 -> table.maillist-table tr -> hidden tooltip/title/textContent -> open newest matching row -> extract code from message body

Detailed reference: references/mail2925-correct-inbox-scraping-openai-code-2026-05-11.md.

2. SMS-provider tests must separate OpenAI acceptance from SMS delivery

Luban UK demonstrated a useful distinction:

OpenAI acceptance: attempts 1-9 reached phone-verification and were not rejected.
SMS delivery: 0/10 messages arrived after ~190s each.

Do not collapse these into a single “failed” label; report both dimensions. Attempt 10 stayed on add-phone, so it must be classified as submit_no_sms_page, not as a confirmed no-SMS phone-verification attempt.

Detailed reference: references/luban-uk-openai-10-attempts-no-sms-2026-05-11.md.

3. Luban release timing is provider-specific

BOSS explicitly corrected the release cadence: for real SMS-delivery testing, hold each Luban order at least 3 minutes before releasing. Immediate or too-early release can return provider errors like:

停用失败,该供应商需要在两分钟后停止.

Reusable rule: calculate release eligibility from the purchase timestamp, not from the last poll timestamp.

4. Country samples should be documented with service_id and result class

Luban country/service results are not interchangeable:

UK / service_id=537935: OpenAI usually accepted, SMS did not arrive in 10 attempts.
Chile / service_id=508058: first attempt was immediately rejected by OpenAI.

This helps future runs avoid repeating low-yield country/provider combinations without explicit BOSS approval.

Detailed reference: references/luban-chile-openai-immediate-reject-2026-05-11.md.

5. After background process completion, always process the result visibly

A prior tool turn ended with an empty response after writing a script. BOSS explicitly asked to process tool results and continue. The skill already contains the rule to always return a visible status after tool-driven steps; this session reinforces that it is not optional.

Current skill-library state after this session

Updated umbrella:

codex-oauth-plus-onboarding

New/updated references:

references/mail2925-correct-inbox-scraping-openai-code-2026-05-11.md
references/luban-uk-openai-10-attempts-no-sms-2026-05-11.md
references/luban-chile-openai-immediate-reject-2026-05-11.md

Gitea sync verified at commit:

c29567eda6e1619401d2ccdbc937e7534c35940e

Future action pattern

For new OpenAI/Codex onboarding runs using 2925 + Luban:

  1. Load this umbrella skill first.
  2. Prefer the corrected 2925 scraper flow before declaring email non-delivery.
  3. For Luban, resolve service_id dynamically and log country/provider/service_id/cost.
  4. Hold Luban orders at least 3 minutes when testing delivery.
  5. Classify outcomes precisely:
    • rejected_by_openai
    • phone_verification_no_sms
    • submit_no_sms_page
    • sms_received_but_code_rejected
    • phone_verified
  6. Write a concise reference and sync Gitea after non-trivial provider/country tests.