2026-02-18
Audit Logging
Log Event Activities
All event actions are now logged.
The system logs:
- Event created
- Event updated
- Event deleted
Tracked Updates:
- Title
- Start time
- End time
- Any other field updates
Action Source:
- System → background job or exception flow
- Host → manual creation or update
Test: Create event → update title/start/end → delete event → verify logs created with correct action source.
Create Audit Logging Extension
Adds lightweight audit logging for event and guest activity.
Tracks:
- Event creation, updates, deletion
- Guest registration
- Guest transactions
- Guest participation
Features:
- Records who initiated each action
- Stores event/guest metadata
- Timestamps every change
- Uses etag-based detection to log only meaningful updates
- Supports reliable resync and debugging
- Does not impact core event flows
Test: Update event with real change → verify new log entry. Update without change → no duplicate log created.
Log Guest Activities
Guest actions are now tracked in audit logs.
Includes registrations, ticket updates, and participation.
Test: Update guest status → verify log entry created with correct metadata.
Create Connection Object
Connection object added for linking audit events to their source.
Ensures all logs have traceable references.
Test: Trigger event or guest action → verify connection object created and linked in logs.
Atomcal Dashboard
Location / Link Saved in Calendar Settings
Event location or meeting link can now be saved in Calendar Settings.
Automatically applied to all new events.
Test: Save meeting link in settings → create new event → verify location auto-filled.
Confusing Plugin Sync Setup
Plugin sync UI improved for clarity.
Improvements:
- Clear sync status
- Clear indication of connected vs not connected
- Clear next steps
- Reduced confusion with help buttons
Test: Open plugin sync screen → verify clarity of setup status.
Allow Super Admins to Add “Popular” Flag to System Templates
Super Admins can mark templates as popular.
Frontend:
- POPULAR section displayed first → sorted by
times_used
Test: Mark template popular → verify appears in Popular section. Use template multiple times → verify sorting updates.
Allow Special Members to Add New System Templates & Upload Icons
Moderator-level members can now add templates and upload icons.
Test: Grant moderator access → verify template & icon upload allowed.
Bug | Atomcal Dashboard
Fix System Uploaded Icon Issue
Uploaded system icons now display correctly on Discord.
Test: Upload new icon → create Discord event → verify icon displays correctly.
Guest Invitation Flow
Email Invitations Sent Only for Non-Ticket Events
Now works for:
- Non-ticket events
- Free ticket events
- Paid events
- Basic events
- Template-based events
- Events with or without roles
Acceptance Criteria:
- Invitations sent successfully for all event types
- Deliverability consistent across paid, free, and non-ticket events
Test: Create paid, free, and non-ticket events → send invitations → verify successful delivery.
Event Invitation Emails Going to Spam Folder
Invitation emails no longer land in spam.
Now:
- Delivered to primary inbox
- Proper email authentication applied
Acceptance Criteria:
- Emails delivered to primary inbox
- Not marked as spam
Test: Send invite → verify email lands in inbox (Gmail/Outlook).
Create Selectable List of Frequently Invited Emails
Users can select from frequently used emails when sending invites.
Test: Open invite list → verify frequently invited emails appear for selection.
Allow Resending Email if Invitation Status is Failed
Failed invitations can now be resent.
Acceptance Criteria:
- Resend option visible
- Status updates correctly after resend
Test: Trigger failed invite → click resend → verify success.
Store Error Messages When Invitation Fails & Show Info Icon
System stores failure reason and shows info icon on frontend.
Acceptance Criteria:
- Users can see exact reason for failure
Test: Send invite to invalid email → verify error reason displayed.
Show Correct Reason When Invitation Fails
Frontend now displays correct failure reason for invites.
Test: Send invalid invite → verify accurate reason shown.
Filter Searched Members (Exclude Already Invited Members)
Already invited members are filtered out during search.
Test: Invite member → search same member → verify not shown again.
Create Calendar Member Search Backend Endpoint
New backend endpoint allows searching by email or name.
Test: Search partial name/email → verify correct filtered results.
Filter Table to Show Only Invited Guests
Invitation table shows only invited guests.
Test: Open invitation table → verify only invited guests shown.
Add Pagination to Invitation Table
Invitation table supports pagination.
Test: Invite 50+ guests → verify pagination works correctly.
Create Scrims Member if Invited by Email and Not Found
New members auto-created if email not found.
Test: Invite new email → verify Scrims member created → verify magic link login works.
Add Trackers to Invitation Plugins
Invitation plugin now tracks send/failure status for each email.
Test: Send multiple invites → verify individual status tracking. Exceed limit → blocked.
Use Tracking Links with TID Instead of Normal Links
CTA links now use tracking ID for logging clicks.
Test: Click invite CTA → verify redirect + click logged.
Add Email Open Tracker
Email includes invisible tracker → logs open event.
Test: Open email → verify event recorded.
Create Invite Extension Component for Email IDs & Text
Component allows entering email IDs and custom text for invites.
Test: Enter emails & text → send invite → verify delivery.
Create Clickable Link to Send in Email Invite
Invite emails include clickable accept/reject links.
Test: Click Accept → invite.status = ACCEPTED. Click Reject → invite.status = REJECTED.
Create Invitation Extension for Sending Emails
Invitation extension created for sending emails to members & non-members.
Test: Send invite → verify delivery.
Show List of Calendar Members to Send Invite
Displays all members in calendar for invitation.
Test: Open invite extension → verify list populated.
Invitee is Added as Guest to Event
Accepted invitees auto-added as guests.
Test: Accept invite → verify guest created.
Paid Events & Multi-Step Register Form
Waitlist Auto Refund Not Triggered Within 1 Minute
Auto refund now triggers correctly within 1 minute after seat availability.
Acceptance Criteria:
- Refund triggered automatically
- Status updated correctly
- No manual action required
Test: Add user to waitlist → release seat → verify refund processed within 1 minute.
Discord Top-Up Flow
Discord now redirects to top-up page instead of directly opening Discord.
Acceptance Criteria:
- User redirected to top-up page
- No automatic Discord redirect
Test: Trigger top-up → verify redirection.
Guest Activity & History
Add Timeline / History View Showing Guest Activity
Timeline displays:
- Guest ticket status updates
- Guest status updates
- Grouped actions
- “Time ago” format
Test: Update guest status → verify timeline entry created.
Bug
Announcement Self-Destruct Not Working
Fixed issue with announcement auto-destruction.
Test: Create announcement → verify self-destruct triggers correctly.