Repository navigation
feat(investor): maturity reminders, accreditation renewal, pool subscriptions, auto-rollover - #563
Merged
TS-mfon merged 4 commits intoOct 22, 2026
Conversation
…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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #542
Closes #543
Closes #544
Closes #545
Summary
Four Stellar Wave issues delivered on one branch, one commit per issue.
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.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 carriesexpires_at.67f4ecc): Invest once / Subscribe tabs on the pool invest panel. The Subscribe tab callscreate_subscription(daily / weekly / monthly), previews next execution and projected annual investment, and shows the active subscription with total invested andcancel_subscription.7da1605): an Auto-Rollover panel in settings for sector, minimum yield, maximum invoice age and maximum amount. Save callsset_rollover_config. Disabling asks for confirmation and callsdisable_rollover. The active criteria card andRolloverExecutedactivity sit below the form.Notes for reviewers
/profile#accreditation, which this PR adds. If a renewal flow exists elsewhere, pointACCREDITATION_RENEWAL_ROUTEinlib/accreditationRenewal.tsat it.useAccreditationStatususesstaleTime: Infinity, so the banner clears after a renewal only once the accreditation query is invalidated. The renewal flow should callinvalidateQueries({ queryKey: ACCREDITATION_QUERY_KEY })on success./pools/:id/subscription,/rollover/config,/rollover/disable,/rollover/events,maturity_reminder_dayson alert preferences, andexpires_aton accreditation. Confirm these match the backend before merging.