Skip to content

ios: offer Claude as a setup token, as web does - #2020

Merged
ex3ndr merged 3 commits into
mainfrom
steve/ios-claude-setup-token-label
Nov 9, 2026
Merged

ex3ndr merged 3 commits into
mainfrom
steve/ios-claude-setup-token-label

Conversation

@ex3ndr

@ex3ndr ex3ndr commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Claude providers are setup-token only (Steve's rule; prod returns claudeSignIn: false). Android removed the same branch in #2019.

  • The chooser entry says "Use a Claude setup token", matching web. It used to say "Sign in with Claude". The string constant is renamed to claudeSetupToken. The entry appears only when the server offers setup tokens.
  • ClaudeSignInViewController is now the setup token alone: the hint and a prominent "Add setup token" button. Its browser branch is gone: Open Claude, the code field, start/watch/send, and the Claude finish/cancel calls. It no longer depends on the server's claudeSignIn flag. ChatGPT's sign-in is unchanged.
  • Tests:
    • The hosted HostedProvidersTests fixture is now a setup-token server. Its Claude test asserts no open button or code field and attaches a screenshot.
    • The live HappyCloudUITests.testGProviders… expects the token-only screen.
  • docs/SERVER-SIGN-IN.md is updated.

Verified:

  • Live, against the prod QA server qa-batch-76eca2 on the simulator, before and after removing the branch: the chooser and the Claude screen each show only the setup token.
  • HostedProvidersTests 7/7 on the simulator, and 7/7 on the iPhone 12 at the first commit, which is where the screenshot comes from.
  • HappyCore's finishCloudSignIn API binding remains, unused by the UI.

Claude is setup token only and the cloud now returns claudeSignIn:false,
so the chooser says "Use a Claude setup token" and its screen's one
button says "Add setup token", not "…instead". The live providers UI
test now expects that screen: no Claude page to open and no code field.
Matches Android (#2019) and Steve's rule rather than the server's
claudeSignIn flag: no Open Claude, code field, start/watch/send, or
Claude finish/cancel calls. The chooser offers Claude only with setup
tokens; ChatGPT's sign-in is unchanged.
@ex3ndr

ex3ndr commented Nov 9, 2026

Copy link
Copy Markdown
Contributor Author

Merge note for hosted CI run 42562470287. uikit passed on both attempts.

  • Waiver: HostedMediaDownloadTests.testASmallPhotoDownloadsByItself (line 383, "timed out" after 14.7s) failed on attempt 1. It isn't in the failed logs of the previous 11 happy-ios runs. On the Mac simulator it passed 10/10 at this head (b1a1636), and it passed on the rerun (attempt 2, 0.07s). This PR changes only the providers UI, strings, provider tests and docs.
  • Every other failure is known or has failed before:

@ex3ndr
ex3ndr merged commit a566fc3 into main Nov 9, 2026
2 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant