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

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.

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.

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.