Skip to content

feat(investor): maturity reminders, accreditation renewal, pool subscriptions, auto-rollover - #563

Merged
TS-mfon merged 4 commits into
StellarState:devfrom
andrepaul1099-stack:feature/stellar-wave-investor-batch
Oct 22, 2026
Merged

TS-mfon merged 4 commits into
StellarState:devfrom
andrepaul1099-stack:feature/stellar-wave-investor-batch

Conversation

@andrepaul1099-stack

Copy link
Copy Markdown
Contributor

Closes #542
Closes #543
Closes #544
Closes #545

Summary

Four Stellar Wave issues delivered on one branch, one commit per issue.

  • Build invoice maturity reminder notification settings page #542 Maturity reminders (fa8dfd0): a Maturity Reminders section under alert preferences with 30 / 14 / 7 / 1 day toggles. Save submits the reminder days with the existing alert toggles. A preview lists upcoming maturities from holdings, sorted by nearest date, with the reminders still ahead.
  • Build investor accreditation renewal prompt with countdown #543 Accreditation renewal (083097e): a renewal banner on the dashboard and profile once accreditation expires within 60 days. It escalates yellow (60d) → amber (30d) → red (7d), shows a days/hours countdown, and links to the profile accreditation section. The accreditation status now carries expires_at.
  • Implement invoice subscription investment setup on invoice detail page #544 Pool subscriptions (67f4ecc): Invest once / Subscribe tabs on the pool invest panel. The Subscribe tab calls create_subscription (daily / weekly / monthly), previews next execution and projected annual investment, and shows the active subscription with total invested and cancel_subscription.
  • Add invoice auto-rollover configuration in investor settings #545 Auto-rollover (7da1605): an Auto-Rollover panel in settings for sector, minimum yield, maximum invoice age and maximum amount. Save calls set_rollover_config. Disabling asks for confirmation and calls disable_rollover. The active criteria card and RolloverExecuted activity sit below the form.

Notes for reviewers

  • Renewal destination (Build investor accreditation renewal prompt with countdown #543): the codebase had no accreditation renewal flow, so "Renew now" links to /profile#accreditation, which this PR adds. If a renewal flow exists elsewhere, point ACCREDITATION_RENEWAL_ROUTE in lib/accreditationRenewal.ts at it.
  • Renewal refresh (Build investor accreditation renewal prompt with countdown #543): useAccreditationStatus uses staleTime: Infinity, so the banner clears after a renewal only once the accreditation query is invalidated. The renewal flow should call invalidateQueries({ queryKey: ACCREDITATION_QUERY_KEY }) on success.
  • Backend contract (Build invoice maturity reminder notification settings page #542–Add invoice auto-rollover configuration in investor settings #545): the new endpoints and fields are inferred from the existing auto-invest and pool patterns: /pools/:id/subscription, /rollover/config, /rollover/disable, /rollover/events, maturity_reminder_days on alert preferences, and expires_at on accreditation. Confirm these match the backend before merging.
  • Not run locally: lint, type-check, tests and build were not run in the authoring environment. CI runs them on this PR. Tests were added alongside each change and updated where the alert-preferences payload changed.

…tellarState#542)

Adds a Maturity Reminders section under alert preferences with toggles for
30, 14, 7 and 1 days before maturity. Saving submits the reminder days with
the existing alert toggles, and a preview lists upcoming maturities from the
investor's holdings sorted by nearest date, with the reminders still ahead.
…larState#543)

Shows a renewal banner on the dashboard and profile once accreditation
expires within 60 days. The banner escalates from yellow (60 days) to amber
(30 days) to red (7 days), shows days and hours remaining, and links to the
renewal flow. Renewing moves the expiry out of range, which hides the banner.

Adds the expiry date to the accreditation status and an accreditation section
on the profile page that the renew link targets.
…el (StellarState#544)

Adds Invest once and Subscribe tabs to the pool invest panel. The Subscribe
tab sets up a daily, weekly or monthly investment (create_subscription), shows
the next execution date and projected annual investment as a preview, and lists
the active subscription with total invested to date and a cancel action
(cancel_subscription).
…tellarState#545)

Adds an Auto-Rollover panel to investor settings. Investors pick a sector and
set a minimum yield, maximum invoice age and maximum amount for reinvesting a
matured position. Save submits set_rollover_config, and the form blocks saving
until the required fields are valid.

The enable toggle asks for confirmation before disable_rollover. An active
criteria card and the RolloverExecuted activity feed sit below the form.
@TS-mfon
TS-mfon merged commit 6ac5c8f into StellarState:dev Oct 22, 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