New Features and Enhancements
Member Management
- Added delete functionality to the Members Controller and exposed a delete action in the All Members table in the dashboard.
- Introduced a user-friendly error page when a non-dashboard user attempts to access the dashboard, replacing the previous blank/dead page.
- Removed filters and the default 7-day window from the All Members report to make the listing more intuitive and complete.
Activity and Brand Improvements
- Updated activity listing to use the new API format, including clearer display of brand names within activity names.
- Added implode and explode utilities to the React library to support new activity/segment workflows.
- Tidied up Activities and Segments UI and connected forms to the updated backend logic.
Segments and Umbrella Support
- Major refactor of the segment lookup function. All variations now work consistently.
- Segment lists on forms now load significantly faster and more reliably.
- Added caching to the Segments API query to further improve performance.
- Improved handling of similar activities across different brands so they no longer overwrite each other in forms.
- Updated Segment holder page to include a single BSL segment for umbrella configurations.
API and Backend Enhancements
- Revised Brand Activities endpoint to use an IN query filter for better performance over looping approaches.
- Added an index to applications to prevent duplicate creation and implemented dashboard-level error messaging when a name is reused.
- Added scenario comments throughout the codebase to support easier future debugging.
Infrastructure, Stability and Behavior Fixes
Web Triggers and Async Behavior
- Implemented fix for new boolean-based request statuses and improved logging to show boolean values as readable text.
- Retries now work as expected; all web triggers functioning correctly after fixes.
- Updated asyncRequest handling to improve reliability under load.
Authentication and User Flow
- Fixed the password-reset redirect issue to ensure users land on the correct page.
- Overrode SilverStripe’s default redirect behavior for the Change Password form, resulting in a smoother, more predictable user flow.
Miscellaneous Fixes
- Used SilverStripe’s Connection API instead of manual transactions, producing more stable and predictable writes.
- Updated Recaptcha on Sign Up form to stop bot submissions

