Skip to content

Login Credentials: Atmosphere branding + show handle with DID (v0.4.3)#108

Merged
sergeychernyshev merged 2 commits into
mainfrom
fix/atproto-credentials-display
Jun 29, 2026
Merged

Login Credentials: Atmosphere branding + show handle with DID (v0.4.3)#108
sergeychernyshev merged 2 commits into
mainfrom
fix/atproto-credentials-display

Conversation

@sergeychernyshev

Copy link
Copy Markdown
Member

Login Credentials section — Atmosphere branding + handle

On the profile page's Login Credentials section, an atproto credential still rendered the old Bluesky butterfly, the bare label "Atproto", and only the DID (no handle).

Fixes (server + client renderers — the client re-renders over the SSR output, so both must match)

  • Icon → the Atmosphere "union" mark. A stale butterfly remained in profile.html's client-side getProviderIcon; the SSR copy was already updated in 0.4.1.
  • Label"Atmosphere / ATproto" instead of the capitalized provider key.
  • Identifier → the handle with the DID in parentheses, e.g. alice.bsky.social (did:plc:…), falling back to the bare DID when no handle is stored.

Supporting change

The handle wasn't persisted. Added UserProfile.handle, set it from the resolved identity in exchange(), and surfaced it from UserDO.listCredentials().

Note: credentials created before this change have no stored handle and will show the DID alone until the next login.

Tests

  • The handle is persisted on login.
  • The SSR'd profile page shows Atmosphere / ATproto + tester.bsky.social (did:plc:abc123) and never the butterfly path.
  • Also verified the client profile.html functions in isolation (correct label/identifier/icon + graceful no-handle fallback).

tsc + eslint clean; full suite 129/129. Bumps to 0.4.3.

🤖 Generated with Claude Code

sergeychernyshev and others added 2 commits June 29, 2026 00:16
The "Login Credentials" section on the profile page still showed, for an
atproto credential, the old Bluesky butterfly, the bare label "Atproto",
and only the DID. Fixes (in both the server and client renderers, which
must match — the client re-renders over the SSR output):

- Icon: the Atmosphere "union" mark (a stale butterfly remained in
  profile.html's client-side getProviderIcon; the SSR copy was already
  updated).
- Label: "Atmosphere / ATproto" instead of the capitalized provider key.
- Identifier: show the handle with the DID in parens, e.g.
  "alice.bsky.social (did:plc:...)", falling back to the bare DID when no
  handle was stored.

To support that, persist the atproto handle at login: add UserProfile.handle,
set it from the resolved identity in exchange(), and surface it from
UserDO.listCredentials(). Existing credentials (logged in before this
change) have no stored handle and show the DID alone until next login.

Tests: assert the handle is persisted, and that the SSR'd profile page
shows the branded label + "handle (did)" and never the butterfly mark.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
startup-api b363f76 Jun 29 2026, 04:16 AM

@sergeychernyshev sergeychernyshev merged commit 68daa0f into main Jun 29, 2026
2 checks passed
@sergeychernyshev sergeychernyshev deleted the fix/atproto-credentials-display branch June 29, 2026 04:19
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