2025-05-16 - 2026-05-16

Overview

32 Active Pull Requests
36 Active Issues
Excluding merges, 3 authors have pushed 131 commits to master and 132 commits to all branches. On master, 163 files have changed and there have been 32556 additions and 17954 deletions.

32 Pull requests merged by 2 users

Merged #69 feat(infra): pass Blossom S3 config to Zooid with schema key prefix 2026-05-13 15:47:08 +00:00

Merged #67 fix: stripe portal dead-end with callback return flow 2026-05-11 20:48:55 +00:00

Merged #66 chore: improve billing customer name using Nostr kind 0 with pubkey fallback 2026-05-08 22:52:14 +00:00

Merged #64 feat: open payment modal immediately on relay plan upgrade 2026-05-07 18:35:25 +00:00

Merged #58 chore: encrypt tenant NWC URL at rest and stop secret exposure in tenant APIs 2026-05-05 20:42:12 +00:00

Merged #54 fix: manual Lightning payment reconciliation with Stripe invoice state 2026-05-01 23:38:58 +00:00

Merged #56 fix: relay sync create/update classification to prevent false create mode on updates 2026-05-01 14:21:37 +00:00

Merged #53 fix: silent relay state drift when activity bus drops events 2026-04-29 18:36:36 +00:00

Merged #51 chore: prevent duplicate Lightning charges by adding durable invoice-level NWC payment guard 2026-04-25 13:02:56 +00:00

Merged #49 fix: add idempotency keys to all Stripe mutation calls 2026-04-25 12:34:35 +00:00

Merged #46 fix: silent NWC auto-payment failure messaging in invoice.created fallback 2026-04-23 16:09:51 +00:00

Merged #45 fix: relay sync failures with delayed bounded retries 2026-04-23 15:32:10 +00:00

Merged #43 fix: enforce relay member capacity limits from plan definitions 2026-04-22 20:56:04 +00:00

Merged #44 feat: add missing SQLite indexes for billing and API hot-path queries 2026-04-22 16:40:10 +00:00

Merged #42 chore: strict Subdomain Validation with Detailed Error Messages 2026-04-21 13:09:37 +00:00

Merged #40 feat: encourage payment setup for paid relays without making it required 2026-04-21 13:07:27 +00:00

Merged #41 feat: add confirmation dialog for relay deactivate/reactivate with explicit warnings 2026-04-20 21:25:24 +00:00

Merged #35 docs: document delinquent relay status across spec 2026-04-20 18:14:14 +00:00

Merged #39 feat: display relay provisioning errors in UI 2026-04-20 18:08:47 +00:00

Merged #27 Add tenant create endpoint 2026-04-20 15:56:03 +00:00

Merged #26 fix: relay secret rotation on infra sync updates 2026-04-18 13:24:09 +00:00

Merged #23 fix: make stripe webhooks explicitly toggleable with mandatory secret validation 2026-04-17 22:57:38 +00:00

Merged #24 chore: replace placeholder letter badges with actual SVG logos 2026-04-17 18:36:35 +00:00

Merged #22 feat: add Nostrord to recommended apps 2026-04-17 15:23:20 +00:00

Merged #20 chore: harden relay plan validation to prevent billing bypass and plan-state drift 2026-04-16 21:35:44 +00:00

Merged #16 docs(auth): document intentional session-style NIP-98 model 2026-04-16 15:40:50 +00:00

Merged #17 fix: invoice error mapping so Stripe 4xx responses are not returned as 500 2026-04-16 15:39:36 +00:00

Merged #14 fix: respect activity_type in set_relay_status and include activate_relay 2026-04-15 20:39:06 +00:00

Merged #11 feat(frontend): handle bolt11 generation failures in payment dialog 2026-04-14 23:35:14 +00:00

Merged #5 fix(billing): ensure all tenants have valid Stripe customer IDs 2026-04-14 23:06:49 +00:00

Merged #10 fix: invoice.paid reactivating manually deactivated relays 2026-04-14 22:10:41 +00:00

Merged #7 fix: fiat invoice to Lightning msat conversion by applying real-time BTC FX quotes 2026-04-13 21:05:22 +00:00

32 Issues closed from 2 users

Closed #68 Use s3 backend 2026-05-13 15:47:08 +00:00

Closed #62 Stripe portal dead-ends 2026-05-11 20:48:55 +00:00

Closed #61 Improve billing name 2026-05-08 22:52:14 +00:00

Closed #60 Pop up payment modal when switching plan 2026-05-07 18:35:25 +00:00

Closed #59 Failed sync due to schema requirements 2026-05-06 00:47:25 +00:00

Closed #57 NWC wallet connection secrets are stored in plaintext 2026-05-05 20:42:12 +00:00

Closed #52 Manual Lightning payment flow is not reconciled to Stripe invoice state 2026-05-01 23:38:58 +00:00

Closed #55 Relay sync path misclassifies update/deactivate flows as create flows 2026-05-01 14:21:38 +00:00

Closed #48 Internal activity bus can drop events and cause silent state drift 2026-04-29 18:36:36 +00:00

Closed #50 Duplicate Lightning charge risk in invoice processing 2026-04-25 13:02:56 +00:00

Closed #47 Stripe mutation calls are not idempotent 2026-04-25 12:34:35 +00:00

Closed #38 NWC payment failure is swallowed silently, error context never reaches the user 2026-04-23 16:42:46 +00:00

Closed #34 Relay sync failures are never retried, relay stays broken indefinitely 2026-04-23 15:32:10 +00:00

Closed #33 Relay member capacity limit defined in plans but never enforced 2026-04-22 20:56:04 +00:00

Closed #36 Missing database indexes, all billing-critical queries are full table scans 2026-04-22 16:40:10 +00:00

Closed #37 Subdomain validation has no length limit and allows reserved names 2026-04-21 13:09:37 +00:00

Closed #30 No confirmation dialog on relay deactivate/reactivate 2026-04-20 21:25:24 +00:00

Closed #28 No payment setup enforcement before paid relay creation 2026-04-20 20:31:14 +00:00

Closed #29 No relay upgrade flow (free → paid) -> plan change fires no payment validation 2026-04-20 20:31:10 +00:00

Closed #32 Relay sync errors stored in DB but never surfaced in UI 2026-04-20 18:08:47 +00:00

Closed #25 Relay secret rotates on every infra sync 2026-04-18 13:24:09 +00:00

Closed #19 Stripe webhook signature verification allows empty secret, enabling forged events 2026-04-17 22:57:38 +00:00

Closed #21 Add nostrord to recommended apps 2026-04-17 15:23:21 +00:00

Closed #18 Plan ID is not validated, enabling billing bypass and paid-feature drift 2026-04-16 21:35:44 +00:00

Closed #15 Improve Stripe error mapping for invoice fetches 2026-04-16 15:39:36 +00:00

Closed #12 Harden NIP-98 HTTP auth to exact URL/method with replay protection 2026-04-16 08:55:16 +00:00

Closed #13 Relay activation logged as deactivate_relay due to hardcoded activity type 2026-04-15 20:39:06 +00:00

Closed #9 Payment dialog hides bolt11 fetch failures and can stay forever on Generating invoice 2026-04-14 23:35:14 +00:00

Closed #2 New tenants are created with an empty stripe_customer_id in the identity onboarding path 2026-04-14 23:06:49 +00:00

Closed #8 Invoice.paid reactivates all inactive paid relays, including manually deactivated relays 2026-04-14 22:10:41 +00:00

Closed #6 Incorrect fiat-to-msat conversion causes wrong Lightning invoice amounts in manual and auto-pay billing 2026-04-13 21:05:22 +00:00

Closed #3 Support npub format in ADMINS environment variable for admin authentication 2026-04-13 16:58:15 +00:00

36 Issues created by 2 users

Opened #1 Federation 2026-03-17 23:00:43 +00:00

Opened #2 New tenants are created with an empty stripe_customer_id in the identity onboarding path 2026-04-11 08:15:42 +00:00

Opened #3 Support npub format in ADMINS environment variable for admin authentication 2026-04-11 09:50:52 +00:00

Opened #6 Incorrect fiat-to-msat conversion causes wrong Lightning invoice amounts in manual and auto-pay billing 2026-04-11 13:32:21 +00:00

Opened #8 Invoice.paid reactivates all inactive paid relays, including manually deactivated relays 2026-04-13 11:58:29 +00:00

Opened #9 Payment dialog hides bolt11 fetch failures and can stay forever on Generating invoice 2026-04-13 12:46:09 +00:00

Opened #12 Harden NIP-98 HTTP auth to exact URL/method with replay protection 2026-04-15 08:00:36 +00:00

Opened #13 Relay activation logged as deactivate_relay due to hardcoded activity type 2026-04-15 08:31:52 +00:00

Opened #15 Improve Stripe error mapping for invoice fetches 2026-04-15 13:51:42 +00:00

Opened #18 Plan ID is not validated, enabling billing bypass and paid-feature drift 2026-04-16 12:10:49 +00:00

Opened #19 Stripe webhook signature verification allows empty secret, enabling forged events 2026-04-16 13:30:55 +00:00

Opened #21 Add nostrord to recommended apps 2026-04-16 21:47:35 +00:00

Opened #25 Relay secret rotates on every infra sync 2026-04-17 17:52:41 +00:00

Opened #28 No payment setup enforcement before paid relay creation 2026-04-20 11:40:37 +00:00

Opened #29 No relay upgrade flow (free → paid) -> plan change fires no payment validation 2026-04-20 11:41:01 +00:00

Opened #30 No confirmation dialog on relay deactivate/reactivate 2026-04-20 11:41:21 +00:00

Opened #31 No relay deletion endpoint or UI 2026-04-20 11:41:33 +00:00

Opened #32 Relay sync errors stored in DB but never surfaced in UI 2026-04-20 11:53:19 +00:00

Opened #33 Relay member capacity limit defined in plans but never enforced 2026-04-20 12:01:16 +00:00

Opened #34 Relay sync failures are never retried, relay stays broken indefinitely 2026-04-20 12:04:51 +00:00

Opened #36 Missing database indexes, all billing-critical queries are full table scans 2026-04-20 12:31:36 +00:00

Opened #37 Subdomain validation has no length limit and allows reserved names 2026-04-20 12:36:22 +00:00

Opened #38 NWC payment failure is swallowed silently, error context never reaches the user 2026-04-20 12:40:20 +00:00

Opened #47 Stripe mutation calls are not idempotent 2026-04-23 18:12:09 +00:00

Opened #48 Internal activity bus can drop events and cause silent state drift 2026-04-23 18:27:34 +00:00

Opened #50 Duplicate Lightning charge risk in invoice processing 2026-04-25 10:48:08 +00:00

Opened #52 Manual Lightning payment flow is not reconciled to Stripe invoice state 2026-04-27 19:07:10 +00:00

Opened #55 Relay sync path misclassifies update/deactivate flows as create flows 2026-04-30 16:34:06 +00:00

Opened #57 NWC wallet connection secrets are stored in plaintext 2026-05-01 10:43:53 +00:00

Opened #59 Failed sync due to schema requirements 2026-05-06 00:29:20 +00:00

Opened #60 Pop up payment modal when switching plan 2026-05-06 00:50:01 +00:00

Opened #61 Improve billing name 2026-05-06 00:50:47 +00:00

Opened #62 Stripe portal dead-ends 2026-05-06 00:52:33 +00:00

Opened #63 Billing sync failing 2026-05-06 00:58:56 +00:00

Opened #65 Move billing banner 2026-05-07 18:39:49 +00:00

Opened #68 Use s3 backend 2026-05-12 21:45:36 +00:00