Skip to content

fix: governance delegation, receipt title, embed resize, recurring billing - #746

Merged
dotunv merged 1 commit into
Savitura:mainfrom
p4uld4vid016-code:fix/issues-735-733-734-738
Aug 31, 2026
Merged

fix: governance delegation, receipt title, embed resize, recurring billing#746
dotunv merged 1 commit into
Savitura:mainfrom
p4uld4vid016-code:fix/issues-735-733-734-738

Conversation

@p4uld4vid016-code

Copy link
Copy Markdown
Contributor

Summary

Resolves #735, #733, #734, and #738.

Issue Fix
#735 Governance vote weight ignores delegation chain Added an off-chain vote delegation chain: a new governance_delegations table + set/revoke/vote-weight routes. Effective vote weight now aggregates delegator token balances recursively through the chain, with circular-delegation and self-delegation prevention. token_balance_at_vote reflects the aggregated power.
#733 Contribution receipt email sends wrong campaign title after rename The receipt path already reads the title live from campaigns at send time; added a regression test to lock that in, and invalidated the campaigns:id cache on rename so no downstream consumer (receipts, embeds) ever serves a stale title.
#734 Embed widget iframe resizes incorrectly on mobile Safari Hardened iframe height reporting for iOS: measure both documentElement and body, observe both with ResizeObserver, and re-measure on window.resize, font-load, and image-load.
#738 Recurring monthly contributions with automated billing Each due schedule is run through the real custodial Stellar payment flow (not a phantom row); sends upcoming/charged/failed email notices; failed charges retry with exponential backoff (new failure_count/last_error columns); recurring contributions are surfaced in creator analytics.

Notes

  • Built on the existing Stellar-based recurring engine (the platform bills via Stellar, not Stripe).
  • #733's main code path was already reading the title fresh; the fix hardens cache invalidation and adds coverage.

Testing

  • Backend: added/updated tests for governance delegation (multi-level chains, circular prevention, self-delegation, revocation), recurring billing (charge flow, backoff scheduling), and receipt title. All pass (node --test).
  • Frontend: CampaignEmbed resize tests updated and passing (vitest).
  • eslint clean on all changed files.

Closes #735
Closes #733
Closes #734
Closes #738

…lling

Resolves Savitura#735, Savitura#733, Savitura#734, Savitura#738.

- governance (Savitura#735): add off-chain vote delegation chain. New
  governance_delegations table plus set/revoke routes; effective vote
  weight now aggregates delegator token balances recursively with
  circular/self-delegation prevention; vote weight stored per proposal.
- receipt title (Savitura#733): contribution receipts already read the title live;
  lock it in with a regression test and invalidate the campaign cache on
  rename so no downstream consumer serves a stale title.
- embed resize (Savitura#734): harden iframe height reporting for iOS Safari by
  measuring both documentElement and body, observing both with
  ResizeObserver, and re-measuring on window resize, font, and image loads.
- recurring billing (Savitura#738): automate monthly charges by running each due
  schedule through the custodial Stellar payment flow; send upcoming/charged/
  failed email notices; apply exponential backoff on failed charges via new
  failure_count/last_error columns; surface recurring contributions in
  creator analytics.

🤖 Generated with Codebuff
Co-Authored-By: Codebuff <noreply@codebuff.com>
@drips-wave

drips-wave Bot commented Aug 30, 2026

Copy link
Copy Markdown

@p4uld4vid016-code Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@dotunv
dotunv merged commit 48bfdb6 into Savitura:main Aug 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants