Skip to content

Improve OAuth connections for Claude, ChatGPT, and native apps - #9

Merged
dzucconi merged 5 commits into
mainfrom
codex/oauth-client-validation
Oct 21, 2026
Merged

dzucconi merged 5 commits into
mainfrom
codex/oauth-client-validation

Conversation

@dzucconi

Copy link
Copy Markdown
Member

Summary

Adds support for Claude and ChatGPT’s published app identities alongside automatic client registration.

Connect an app → Review permissions → Sign in to Are.na → Return to the app
  • Add a consent screen showing the connecting app and requested access.
  • Support native-app callbacks and multiple sign-ins in the same browser.
  • Check connection details consistently and accurately report the permissions granted by Are.na.
  • Keep valid connections working when metadata caching fails.
  • Update setup instructions.

Are.na continues to issue access tokens and enforce their permissions.

Evidence

Previously, published app identities were unsupported. The updated flow supports them, with regression coverage for registration, consent, callbacks, concurrent sign-ins, and caching failures.

Typecheck, 128 application tests, 8 review-policy tests, formatting, and diff checks pass. Complete sign-in flows still need testing in the supported apps.

Merge Danger

Door: Two-way. No storage migration.

Blast Radius: Connections.

Existing access tokens continue to work. Sign-ins underway during deployment may need restarting, and some existing app connections may need to be removed and added again.

dzucconi and others added 5 commits October 21, 2026 14:45
Co-authored-by: Cursor <cursoragent@cursor.com>
Support Claude and ChatGPT published client identities (CIMD) alongside
dynamic registration, show a consent screen bound to the browser before
Are.na sign-in, and include iss in redirects back to the client.

Validate registration metadata and redirect URIs, honor public and
client_secret_post authentication, bind codes to their client, and
require well-formed PKCE verifiers and resource values. Scopes are
validated, and the token response reports the scope Are.na granted.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Use a consent cookie per flow so starting, completing, or cancelling one
sign-in no longer invalidates another in the same browser.

Co-authored-by: Cursor <cursoragent@cursor.com>
A failed cache write no longer rejects a freshly fetched, valid Claude or
ChatGPT metadata document.

Co-authored-by: Cursor <cursoragent@cursor.com>
@dzucconi
dzucconi merged commit 3339748 into main Oct 21, 2026
3 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