docs: confirmed beta bug — account creation uses legacy path (not v0.23 passkey-at-birth)#416
Conversation
… path, not v0.23 Confirmed while running the transfer-replay e2e: - CreateAccountDialog calls the LEGACY createWithP256Guardians (Tier-1, account NOT deployed), never the v0.23 passkey-at-birth prepare/submit-create-with-passkey (deploy-at-birth) that the backend already exposes and the live DEMO used → fresh accounts can't deploy on their first gasless transfer (v0.22 factory rejects initCode-deploy) → onboarding broken. - Creation passes only a global dailyLimit, never the SDK-supported initialTokenConfigs, so T1/T2/T3 tiers are 0 at birth → forced into the aPNTs-gated tier-setup (AA33 for new users). Fix plan + cos72 verification steps in the doc. The transfer-replay spec is test.fixme'd (blocked by this bug — no successful first submit to replay until creation deploys at birth).
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
clestons
left a comment
There was a problem hiding this comment.
Review: #416 — docs: confirmed beta bug (legacy creation path)
发现并记录了一个 beta blocker,值得优先跟进。
Bug 分析(CREATE_FLOW_BETA_BUG.md)
两个根因均已在代码中核实:
Root cause 1(beta blocker): CreateAccountDialog.tsx 调用 createWithP256Guardians(legacy:Tier-1,账户不部署,counterfactual)。后端已有完整的 prepareCreateWithPasskey → submitCreateWithPasskey(v0.23 deploy-at-birth,DEMO 用过的路径),UI 从未调用。新账户首次转账在 prepareTransfer 阶段报错(v0.22 factory 拒绝 counterfactual 账户的 initCode-deploy),而 transfer/page.tsx 告诉用户"第一笔交易会自动部署"——UI 承诺与实际行为矛盾。
Root cause 2: 创建时只传全局 dailyLimit,从不传 initialTokenConfigs,导致 T1/T2/T3 tier limits 为 0,新用户被推入 aPNTs 门控的 tier-setup,形成鸡鸭蛋死锁。
Fix plan 优先级正确:#1(passkey-at-birth)是 beta 上线前必须修复的阻塞项。
transfer-replay.spec.ts(fixme'd,正确)
replaySucceeded 判断准确覆盖三种场景:
- HTTP 4xx/5xx → rejected ✓
- HTTP 200 +
success: false→ rejected ✓ - HTTP 200 + tx hash → 真正成功 ✓
recipient balance 未翻倍作为双重兜底 ✓
test.fixme() 正确标注阻塞原因(注释引用 CREATE_FLOW_BETA_BUG.md)✓
总结
docs + fixme 组合是正确做法:先记录 bug + 验证路径,等 creation bug 修复后 un-fixme。
APPROVE
| 轮次 | 执行者 | 裁决 |
|---|---|---|
| R1 | Sonnet 4.6 | APPROVE(beta blocker 记录准确,replay spec 逻辑正确) |
Confirmed beta bug (found running the transfer-replay e2e). Two root causes, both verified:
CreateAccountDialoguses the LEGACY create (createWithP256Guardians— Tier-1, account not deployed), never the v0.23 passkey-at-birthprepare/submit-create-with-passkey(deploy-at-birth) that the backend already exposes and the live DEMO used. → a fresh account can't make its first gasless transfer (v0.22 factory rejects deploy-in-initCode;prepareTransfererrors) even though the UI says it deploys automatically.initialTokenConfigs(SDK-supported) — passes only a globaldailyLimit→ T1/T2/T3 tiers are 0 at birth → forced intotier-setup, which is aPNTs-gated (AA33 for new users).Fix plan (in doc): switch creation to passkey-at-birth (the blocker fix) + bake default tiers via
initialTokenConfigs+ give tier-setup a self-pay fallback. Includes a cos72 verification step. Thetransfer-replaye2e is committed astest.fixme(blocked by #1 — no successful first submit to replay until creation deploys at birth).