SIGN IN SIGN UP

release: 2.0.90 — #114 OTT 端点全坏 紧急绕路 sessionToken 直接当 apiKey

lnqdev 在 v2.0.89 又报 ERR_TOKEN_FETCH_FAILED。e2e 实测 3 账号 × 4
OTT host 组合 = 12/12 全 401 invalid_token。Auth1 + PostAuth 链路前段
都 200 OK 给 sessionToken 但任何 sessionToken 在任何 OTT host 都被
拒。v2.0.61 / v2.0.75 / v2.0.79 三层 fallback 救不了 — 是上游
GetOneTimeAuthToken 端点本身废了。

反向工程 windsurf-assistant v17.42.20 (2026-04-27 仍活跃) 走 Devin-only:
Auth1 → PostAuth → sessionToken 直接当 IDE auth credential,跳过 OTT
+ RegisterUser。实测 Cascade gRPC backend (server.codeium.com /
server.self-serve.windsurf.com) 接受裸 sessionToken 当 metadata.apiKey
4/4 200 OK 拿到 planName=Trial。

修法:windsurfLoginViaAuth1 链路从 Auth1 → PostAuth → OTT →
registerWithCodeium → apiKey (sk-ws-01-) 塌成 Auth1 → PostAuth → apiKey
= sessionToken。删 60 行加 10 行净减 20 行。

Firebase signInWithPassword 现在被 Google App Check 挡了 server-side
也走不通,dispatcher 实际 fall through 到 Auth1 路径,所以邮箱密码登录
功能完整恢复。

测试 904 → 910 (+6 source-level invariants v2090-ott-bypass.test.js)
全测 0 fail / 0 回归。

升级 docker compose pull && docker compose up -d --force-recreate
D
dwgx committed
c1acab6aaea81ad959ea1275fd5d6195a7124586
Parent: d972b07