Skip to content

feat: homeserver mgmt - #357

Draft
pwltr wants to merge 1 commit into
mainfrom
feat/homeserver-mgmt
Draft

feat: homeserver mgmt#357
pwltr wants to merge 1 commit into
mainfrom
feat/homeserver-mgmt

Conversation

@pwltr

@pwltr pwltr commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds homeserver management to the Edit Pubky sheet.

The Edit Pubky flow now supports selecting an existing homeserver, adding a new homeserver, and editing saved homeservers inside the same sheet flow. The default Synonym homeserver is always available, cannot be deleted, and can only have its invite code edited.

Changes

  • Refactored EditPubkySheet into routed sheet screens:
    • EditPubkyMain
    • EditPubkySelectServer
    • EditPubkyAddServer
    • EditPubkyEditServer
  • Added reusable EditPubky flow state for selected homeserver and per-homeserver draft invite codes.
  • Added reusable server form UI with invite code formatting, validation, success border, and checkmark.
  • Added ServerCard and ServerCardSmall components for server selection and selected-server display.
  • Added Redux homeserver state:
    • default Synonym homeserver
    • add/update/remove custom homeservers
    • selector that always includes the default homeserver
  • Added migration to backfill older signed-up pubkys that used an empty homeserver to mean the default homeserver.
  • Updated EditPubky submit logic:
    • skips signup when already signed up to the selected homeserver
    • only saves name changes when no homeserver auth is needed
    • keeps invite codes as transient EditPubky flow state instead of persisting them from this flow
    • handles invite-token signup errors without incorrectly falling back to signin
  • Added translations for the new server screens and actions.
  • Added tests for EditPubky submit behavior.
Simulator.Screen.Recording.-.iPhone.17.-.2026-08-03.at.18.05.30.mov

Testing

  • yarn typecheck
  • yarn test __tests__/editPubkyAction.test.ts
  • yarn lint

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant