2025-12-09 - 2026-06-09

Overview

32 Active Pull Requests
36 Active Issues
Excluding merges, 3 authors have pushed 203 commits to master and 204 commits to all branches. On master, 216 files have changed and there have been 45337 additions and 27921 deletions.

1 Release published by 1 user

Published v0.1.0 2026-06-03 21:27:57 +00:00

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