- Shipped
- April 17, 2026 at 1:59 AM UTC
- Author
- kamo
- Commit
- be420d9
BillingManager (account billing tab): - Replaced 100% local-state mock with real Stripe-backed payment method management via billingApi - Loads payment methods from GET /api/billing/payment-methods on mount - Add payment method flow uses createSetupIntent → StripeProvider + PaymentMethodForm → confirmCardSetup → attachPaymentMethod (identical flow to PlansBillingTab) - Set default via **************** with optimistic star icon and in-flight spinner per row - Delete via billingApi.deletePaymentMethod with ConfirmationDialog; default card delete is blocked with tooltip - Card brand icons (Visa/Mastercard/Amex/Discover) shown from existing SVG assets; generic CreditCard icon fallback for unknown brands - Skeleton loading, per-section error with retry, snackbar feedback RelationshipManager (account relationships tab): - Replaced empty local state with GET /api/security/org/my-networks - Classifies networks: isOwner=false → Parent Networks (orgs the user belongs to), isOwner=true → Child Networks (orgs the user manages) - Shows Avatar initials, org title, type/domain meta, and role chip - Profile action links to org domain when available - Access rights action disabled with tooltip (managed via org admin) - Summary chips show live parent/child counts - Add/remove is intentionally read-only; info alert directs to Network page for relationship management (no backend CRUD endpoint exists)