[Running 'cargo run']
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.28s
Running `target/debug/backend`
[2026-04-02T23:35:46Z INFO backend] Starting scheduling server on http://localhost:8080
[handler] 'sync_calendar_on_booking' registered on 'schedules'
[handler] 'sync_calendar_on_update' registered on 'schedules'
[handler] 'sync_calendar_on_delete' registered on 'schedules'
[handler] 'schedule_reminder_on_booking' registered on 'schedules'
[2026-04-02T23:35:46Z INFO backend] Aurora DB initialized successfully
[2026-04-02T23:35:46Z INFO backend::computed_fields] ✅ Computed fields configured
[2026-04-02T23:35:46Z INFO backend::computed_fields] - users.display_name: Concat name fields
[2026-04-02T23:35:46Z INFO backend::computed_fields] - event_types.total_buffer_minutes: Sum of buffer times
[2026-04-02T23:35:46Z INFO backend::computed_fields]
[2026-04-02T23:35:46Z INFO backend::computed_fields] Note: Complex computed fields (date calculations, cross-collection queries)
[2026-04-02T23:35:46Z INFO backend::computed_fields] will be available when Aurora adds Custom expression support
[2026-04-02T23:35:46Z INFO backend::workers] 🔧 Worker handlers registered in workers.rs
[2026-04-02T23:35:46Z INFO backend::jobs] Job handlers registered.
[2026-04-02T23:35:46Z INFO backend] 🔧 Integrated worker system started
[2026-04-02T23:35:46Z INFO actix_server::builder] starting 8 workers
[2026-04-02T23:35:46Z INFO actix_server::server] Actix runtime found; starting in Actix runtime
[2026-04-02T23:35:46Z INFO actix_server::server] starting service: "actix-web-service-127.0.0.1:8080", workers: 8, listening on: 127.0.0.1:8080
[2026-04-02T23:35:46Z INFO backend::workers] 👀 Waitlist listener started
[Running 'cargo run']
[2026-04-02T23:35:49Z INFO actix_server::server] SIGTERM received; starting graceful shutdown
[2026-04-02T23:35:49Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:35:49Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:35:49Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:35:49Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:35:49Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:35:49Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:35:49Z INFO actix_server::accept] accept thread stopped
[2026-04-02T23:35:49Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:35:49Z INFO actix_server::worker] shutting down idle worker
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.15s
Running `target/debug/backend`
[2026-04-02T23:35:51Z INFO backend] Starting scheduling server on http://localhost:8080
[handler] 'sync_calendar_on_booking' registered on 'schedules'
[handler] 'sync_calendar_on_update' registered on 'schedules'
[handler] 'sync_calendar_on_delete' registered on 'schedules'
[handler] 'schedule_reminder_on_booking' registered on 'schedules'
[2026-04-02T23:35:51Z INFO backend] Aurora DB initialized successfully
[2026-04-02T23:35:51Z INFO backend::computed_fields] ✅ Computed fields configured
[2026-04-02T23:35:51Z INFO backend::computed_fields] - users.display_name: Concat name fields
[2026-04-02T23:35:51Z INFO backend::computed_fields] - event_types.total_buffer_minutes: Sum of buffer times
[2026-04-02T23:35:51Z INFO backend::computed_fields]
[2026-04-02T23:35:51Z INFO backend::computed_fields] Note: Complex computed fields (date calculations, cross-collection queries)
[2026-04-02T23:35:51Z INFO backend::computed_fields] will be available when Aurora adds Custom expression support
[2026-04-02T23:35:51Z INFO backend::workers] 🔧 Worker handlers registered in workers.rs
[2026-04-02T23:35:51Z INFO backend::jobs] Job handlers registered.
[2026-04-02T23:35:51Z INFO backend] 🔧 Integrated worker system started
[2026-04-02T23:35:51Z INFO actix_server::builder] starting 8 workers
[2026-04-02T23:35:51Z INFO actix_server::server] Actix runtime found; starting in Actix runtime
[2026-04-02T23:35:51Z INFO actix_server::server] starting service: "actix-web-service-127.0.0.1:8080", workers: 8, listening on: 127.0.0.1:8080
[2026-04-02T23:35:51Z INFO backend::workers] 👀 Waitlist listener started
[2026-04-02T23:36:11Z INFO actix_web::middleware::logger] 2026-04-02T23:36:11.493632Z | 200 | 0.160000ms | 0 bytes | OPTIONS /api/auth/me HTTP/1.1
[2026-04-02T23:36:11Z INFO backend::middleware] Identity: identified user ddd0889b-51ab-4038-8864-f115a6296929 via JWT
[2026-04-02T23:36:11Z INFO backend::websocket] New websocket session
[2026-04-02T23:36:11Z INFO backend::websocket] WebSocket session identified as user: ddd0889b-51ab-4038-8864-f115a6296929
[2026-04-02T23:36:11Z INFO backend::ws_server] WebSocket client connected: ddd0889b-51ab-4038-8864-f115a6296929
[2026-04-02T23:36:11Z INFO backend::middleware] Identity: identified user ddd0889b-51ab-4038-8864-f115a6296929 via JWT
[2026-04-02T23:36:11Z INFO backend::handlers] get_me: checking identity
[2026-04-02T23:36:11Z INFO backend::handlers] get_me: found claims for ddd0889b-51ab-4038-8864-f115a6296929
AQL EXEC: query($id: Uuid!) { users(where: { id: { eq: $id } }, limit: 1) }
RESULT: Query(QueryResult { collection: "users", documents: [], total_count: None, deferred_fields: [], explain: None })
[2026-04-02T23:36:11Z INFO backend::handlers] get_me: found guest anon_id ddd0889b-51ab-4038-8864-f115a6296929
[2026-04-02T23:36:11Z INFO actix_web::middleware::logger] 2026-04-02T23:36:11.495177Z | 200 | 1.086000ms | 209 bytes | GET /api/auth/me HTTP/1.1
[Running 'cargo run']
[2026-04-02T23:36:12Z INFO actix_server::server] SIGTERM received; starting graceful shutdown
[2026-04-02T23:36:12Z INFO actix_server::worker] graceful worker shutdown; finishing 1 connections
[2026-04-02T23:36:12Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:36:12Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:36:12Z INFO actix_server::worker] graceful worker shutdown; finishing 1 connections
[2026-04-02T23:36:12Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:36:12Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:36:12Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:36:12Z INFO actix_server::accept] accept thread stopped
[2026-04-02T23:36:12Z INFO actix_server::worker] shutting down idle worker
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.53s
Running `target/debug/backend`
[2026-04-02T23:36:15Z INFO backend] Starting scheduling server on http://localhost:8080
[handler] 'sync_calendar_on_booking' registered on 'schedules'
[handler] 'sync_calendar_on_update' registered on 'schedules'
[handler] 'sync_calendar_on_delete' registered on 'schedules'
[handler] 'schedule_reminder_on_booking' registered on 'schedules'
[2026-04-02T23:36:15Z INFO backend] Aurora DB initialized successfully
[2026-04-02T23:36:15Z INFO backend::computed_fields] ✅ Computed fields configured
[2026-04-02T23:36:15Z INFO backend::computed_fields] - users.display_name: Concat name fields
[2026-04-02T23:36:15Z INFO backend::computed_fields] - event_types.total_buffer_minutes: Sum of buffer times
[2026-04-02T23:36:15Z INFO backend::computed_fields]
[2026-04-02T23:36:15Z INFO backend::computed_fields] Note: Complex computed fields (date calculations, cross-collection queries)
[2026-04-02T23:36:15Z INFO backend::computed_fields] will be available when Aurora adds Custom expression support
[2026-04-02T23:36:15Z INFO backend::workers] 🔧 Worker handlers registered in workers.rs
[2026-04-02T23:36:15Z INFO backend::jobs] Job handlers registered.
[2026-04-02T23:36:15Z INFO backend] 🔧 Integrated worker system started
[2026-04-02T23:36:15Z INFO actix_server::builder] starting 8 workers
[2026-04-02T23:36:15Z INFO actix_server::server] Actix runtime found; starting in Actix runtime
[2026-04-02T23:36:15Z INFO actix_server::server] starting service: "actix-web-service-127.0.0.1:8080", workers: 8, listening on: 127.0.0.1:8080
[2026-04-02T23:36:15Z INFO backend::workers] 👀 Waitlist listener started
[2026-04-02T23:36:16Z INFO backend::middleware] Identity: identified user ddd0889b-51ab-4038-8864-f115a6296929 via JWT
[2026-04-02T23:36:16Z INFO backend::websocket] New websocket session
[2026-04-02T23:36:16Z INFO backend::websocket] WebSocket session identified as user: ddd0889b-51ab-4038-8864-f115a6296929
[2026-04-02T23:36:16Z INFO backend::ws_server] WebSocket client connected: ddd0889b-51ab-4038-8864-f115a6296929
[2026-04-02T23:36:19Z INFO backend::middleware] Identity: identified user ddd0889b-51ab-4038-8864-f115a6296929 via JWT
[2026-04-02T23:36:19Z INFO actix_web::middleware::logger] 2026-04-02T23:36:19.334042Z | 200 | 0.386000ms | 451 bytes | GET /api/auth/google/url HTTP/1.1
[2026-04-02T23:36:20Z INFO backend::websocket] Client disconnected: Some(CloseReason { code: Away, description: Some("WebSocket is closed due to suspension.") })
[2026-04-02T23:36:20Z INFO backend::websocket] Websocket session ended
[2026-04-02T23:36:20Z INFO actix_web::middleware::logger] 2026-04-02T23:36:16.005408Z | 101 | 4340.835000ms | 2 bytes | GET /api/ws/ HTTP/1.1
[2026-04-02T23:36:20Z INFO backend::ws_server] WebSocket client disconnected: ddd0889b-51ab-4038-8864-f115a6296929
[Running 'cargo run']
[2026-04-02T23:36:36Z INFO actix_server::server] SIGTERM received; starting graceful shutdown
[2026-04-02T23:36:36Z INFO actix_server::accept] accept thread stopped
[2026-04-02T23:36:36Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:36:36Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:36:36Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:36:36Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:36:36Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:36:36Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:36:36Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:36:36Z INFO actix_server::worker] shutting down idle worker
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.45s
Running `target/debug/backend`
[2026-04-02T23:36:39Z INFO backend] Starting scheduling server on http://localhost:8080
[handler] 'sync_calendar_on_booking' registered on 'schedules'
[handler] 'sync_calendar_on_update' registered on 'schedules'
[handler] 'sync_calendar_on_delete' registered on 'schedules'
[handler] 'schedule_reminder_on_booking' registered on 'schedules'
[2026-04-02T23:36:39Z INFO backend] Aurora DB initialized successfully
[2026-04-02T23:36:39Z INFO backend::computed_fields] ✅ Computed fields configured
[2026-04-02T23:36:39Z INFO backend::computed_fields] - users.display_name: Concat name fields
[2026-04-02T23:36:39Z INFO backend::computed_fields] - event_types.total_buffer_minutes: Sum of buffer times
[2026-04-02T23:36:39Z INFO backend::computed_fields]
[2026-04-02T23:36:39Z INFO backend::computed_fields] Note: Complex computed fields (date calculations, cross-collection queries)
[2026-04-02T23:36:39Z INFO backend::computed_fields] will be available when Aurora adds Custom expression support
[2026-04-02T23:36:39Z INFO backend::workers] 🔧 Worker handlers registered in workers.rs
[2026-04-02T23:36:39Z INFO backend::jobs] Job handlers registered.
[2026-04-02T23:36:39Z INFO backend] 🔧 Integrated worker system started
[2026-04-02T23:36:39Z INFO actix_server::builder] starting 8 workers
[2026-04-02T23:36:39Z INFO actix_server::server] Actix runtime found; starting in Actix runtime
[2026-04-02T23:36:39Z INFO actix_server::server] starting service: "actix-web-service-127.0.0.1:8080", workers: 8, listening on: 127.0.0.1:8080
[2026-04-02T23:36:39Z INFO backend::workers] 👀 Waitlist listener started
[Running 'cargo run']
[2026-04-02T23:37:17Z INFO actix_server::server] SIGTERM received; starting graceful shutdown
[2026-04-02T23:37:17Z INFO actix_server::accept] accept thread stopped
[2026-04-02T23:37:17Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:37:17Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:37:17Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:37:17Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:37:17Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:37:17Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:37:17Z INFO actix_server::worker] shutting down idle worker
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.50s
Running `target/debug/backend`
[2026-04-02T23:37:21Z INFO backend] Starting scheduling server on http://localhost:8080
[handler] 'sync_calendar_on_booking' registered on 'schedules'
[handler] 'sync_calendar_on_update' registered on 'schedules'
[handler] 'sync_calendar_on_delete' registered on 'schedules'
[handler] 'schedule_reminder_on_booking' registered on 'schedules'
[2026-04-02T23:37:21Z INFO backend] Aurora DB initialized successfully
[2026-04-02T23:37:21Z INFO backend::computed_fields] ✅ Computed fields configured
[2026-04-02T23:37:21Z INFO backend::computed_fields] - users.display_name: Concat name fields
[2026-04-02T23:37:21Z INFO backend::computed_fields] - event_types.total_buffer_minutes: Sum of buffer times
[2026-04-02T23:37:21Z INFO backend::computed_fields]
[2026-04-02T23:37:21Z INFO backend::computed_fields] Note: Complex computed fields (date calculations, cross-collection queries)
[2026-04-02T23:37:21Z INFO backend::computed_fields] will be available when Aurora adds Custom expression support
[2026-04-02T23:37:21Z INFO backend::workers] 🔧 Worker handlers registered in workers.rs
[2026-04-02T23:37:21Z INFO backend::jobs] Job handlers registered.
[2026-04-02T23:37:21Z INFO backend] 🔧 Integrated worker system started
[2026-04-02T23:37:21Z INFO actix_server::builder] starting 8 workers
[2026-04-02T23:37:21Z INFO actix_server::server] Actix runtime found; starting in Actix runtime
[2026-04-02T23:37:21Z INFO actix_server::server] starting service: "actix-web-service-127.0.0.1:8080", workers: 8, listening on: 127.0.0.1:8080
[2026-04-02T23:37:21Z INFO backend::workers] 👀 Waitlist listener started
[2026-04-02T23:37:21Z INFO backend::middleware] Identity: identified user ddd0889b-51ab-4038-8864-f115a6296929 via JWT
[2026-04-02T23:37:22Z INFO backend::handlers] Granted scopes: https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/calendar.events openid
AQL EXEC: query($email: String!) { users(where: { email: { eq: $email } }, limit: 1) }
RESULT: Query(QueryResult { collection: "users", documents: [], total_count: None, deferred_fields: [], explain: None })
AQL EXEC: query($username: String!) { users(where: { username: { eq: $username } }, limit: 1) }
RESULT: Query(QueryResult { collection: "users", documents: [], total_count: None, deferred_fields: [], explain: None })
AQL EXEC: mutation($id: Uuid!, $name: String, $email: String!, $username: String!, $avatar: String, $bio: String, $tz: String, $token: String, $created: String) {
upsert(collection: "users", where: { id: { eq: $id } }, id: $id, data: { id: $id, name: $name, email: $email, username: $username, avatar_url: $avatar, bio: $bio, timezone: $tz, google_calendar_refresh_token: $token, created_at: $created })
}
RESULT: Mutation(MutationResult { operation: "upsert", collection: "users", affected_count: 1, returned_documents: [Document { id: "019d508f-169d-7a30-ad34-88504ccdd4e1", data: {"created_at": String("2026-04-02T23:37:27.964477+00:00"), "timezone": String("UTC"), "avatar_url": String("https://lh3.googleusercontent.com/a/ACg8ocJyAFkv2rXgBC7vykcyHu8k6fRe0jj4vptgnF3SeQggPXjCdMCn=s100"), "username": String("bnzekea2"), "bio": Null, "google_calendar_refresh_token": String("841ef6176a2734f8ec32ff40082fdeed:4f7058acc360cb449399d80d5eab43c5ad69bcc15d844e2b977ce2049792a98d3ab4cce4813600f35332863c34713cabdefeb8d378f1dcde2c697d049504e7fab24b607712710f9c9a47a1cc286799d6c45b7c9e845cbcc78ec596372348a490751fd69acd26b91bcc2bb1dfe54d6e01"), "name": String("Bethel Nzekea"), "email": String("bnzekea2@gmail.com"), "id": String("0d74c863-6a02-4539-9513-faabb856914c")} }] })
AQL EXEC: mutation CreateCliSession($id: String!, $uid: String!, $name: String, $type: String, $ip: String, $last: String, $created: String) {
upsert(collection: "cli_sessions", where: { id: { eq: $id } }, id: $id, data: { id: $id, user_id: $uid, device_name: $name, device_type: $type, ip_address: $ip, last_active: $last, created_at: $created })
{ id user_id device_name device_type ip_address last_active created_at }
}
RESULT: Mutation(MutationResult { operation: "upsert", collection: "cli_sessions", affected_count: 1, returned_documents: [Document { id: "019d508f-1b74-7be1-9b37-bec6fb8e0a09", data: {"created_at": String("2026-04-02T23:37:29.204199+00:00"), "device_name": String("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.4 Safari/605.1.15"), "user_id": String("0d74c863-6a02-4539-9513-faabb856914c"), "device_type": String("web"), "last_active": String("2026-04-02T23:37:29.204199+00:00"), "ip_address": String("127.0.0.1"), "id": String("b2cca22b-4734-4c55-9b4a-f9139807208f")} }] })
[2026-04-02T23:37:29Z INFO actix_web::middleware::logger] 2026-04-02T23:37:21.355571Z | 302 | 7854.385000ms | 0 bytes | GET /api/auth/google/callback?iss=https://accounts.google.com&code=4/0Aci98E879YRi1H3sW4AtmRcObZ-IFFQojNRY1rsPOb6q0HcRd3sWujasZMHQYe9i5aVv5A&scope=email%20profile%20https://www.googleapis.com/auth/calendar.events%20https://www.googleapis.com/auth/userinfo.profile%20https://www.googleapis.com/auth/userinfo.email%20openid&authuser=0&prompt=consent HTTP/1.1
[2026-04-02T23:37:29Z INFO backend::middleware] Identity: identified user 0d74c863-6a02-4539-9513-faabb856914c via JWT
[2026-04-02T23:37:29Z INFO backend::middleware] Identity: identified user 0d74c863-6a02-4539-9513-faabb856914c via JWT
[2026-04-02T23:37:29Z INFO backend::handlers] get_me: checking identity
[2026-04-02T23:37:29Z INFO backend::handlers] get_me: found claims for 0d74c863-6a02-4539-9513-faabb856914c
[2026-04-02T23:37:29Z INFO backend::websocket] New websocket session
[2026-04-02T23:37:29Z INFO backend::websocket] WebSocket session identified as user: 0d74c863-6a02-4539-9513-faabb856914c
[2026-04-02T23:37:29Z INFO backend::ws_server] WebSocket client connected: 0d74c863-6a02-4539-9513-faabb856914c
AQL EXEC: query($id: Uuid!) { users(where: { id: { eq: $id } }, limit: 1) }
RESULT: Query(QueryResult { collection: "users", documents: [Document { id: "019d508f-169d-7a30-ad34-88504ccdd4e1", data: {"name": String("Bethel Nzekea"), "bio": Null, "google_calendar_refresh_token": String("841ef6176a2734f8ec32ff40082fdeed:4f7058acc360cb449399d80d5eab43c5ad69bcc15d844e2b977ce2049792a98d3ab4cce4813600f35332863c34713cabdefeb8d378f1dcde2c697d049504e7fab24b607712710f9c9a47a1cc286799d6c45b7c9e845cbcc78ec596372348a490751fd69acd26b91bcc2bb1dfe54d6e01"), "timezone": String("UTC"), "username": String("bnzekea2"), "email": String("bnzekea2@gmail.com"), "created_at": String("2026-04-02T23:37:27.964477+00:00"), "id": String("0d74c863-6a02-4539-9513-faabb856914c"), "avatar_url": String("https://lh3.googleusercontent.com/a/ACg8ocJyAFkv2rXgBC7vykcyHu8k6fRe0jj4vptgnF3SeQggPXjCdMCn=s100")} }], total_count: None, deferred_fields: [], explain: None })
[2026-04-02T23:37:30Z INFO actix_web::middleware::logger] 2026-04-02T23:37:29.407066Z | 200 | 1252.813000ms | 303 bytes | GET /api/auth/me HTTP/1.1
[2026-04-02T23:37:30Z INFO backend::websocket] Secure subscription to: 'availability_slots' filter: Some(0d74c863-6a02-4539-9513-faabb856914c)
[2026-04-02T23:37:30Z INFO backend::websocket] Secure subscription to: 'schedules' filter: Some(0d74c863-6a02-4539-9513-faabb856914c)
[2026-04-02T23:37:30Z INFO backend::websocket] Secure subscription to: 'event_types' filter: Some(0d74c863-6a02-4539-9513-faabb856914c)
[2026-04-02T23:37:30Z INFO actix_web::middleware::logger] 2026-04-02T23:37:30.683564Z | 200 | 0.081000ms | 0 bytes | OPTIONS /api/stats/0d74c863-6a02-4539-9513-faabb856914c HTTP/1.1
[2026-04-02T23:37:30Z INFO backend::websocket] Secure subscription to: 'availability_slots' filter: Some(0d74c863-6a02-4539-9513-faabb856914c)
[2026-04-02T23:37:30Z INFO backend::websocket] Secure subscription to: 'schedules' filter: Some(0d74c863-6a02-4539-9513-faabb856914c)
[2026-04-02T23:37:30Z INFO backend::websocket] Secure subscription to: 'event_types' filter: Some(0d74c863-6a02-4539-9513-faabb856914c)
[2026-04-02T23:37:30Z INFO backend::middleware] Identity: identified user 0d74c863-6a02-4539-9513-faabb856914c via JWT
[2026-04-02T23:37:30Z INFO backend::handlers] Fetching dashboard stats for user: 0d74c863-6a02-4539-9513-faabb856914c
AQL EXEC: query($uid: Uuid!) { schedules(where: { participants: { contains: $uid } }) }
RESULT: Query(QueryResult { collection: "schedules", documents: [], total_count: None, deferred_fields: [], explain: None })
AQL EXEC: query($uid: Uuid!) { availability_slots(where: { user_id: { eq: $uid } }) }
RESULT: Query(QueryResult { collection: "availability_slots", documents: [], total_count: None, deferred_fields: [], explain: None })
[2026-04-02T23:37:30Z INFO actix_web::middleware::logger] 2026-04-02T23:37:30.688574Z | 200 | 0.895000ms | 103 bytes | GET /api/stats/0d74c863-6a02-4539-9513-faabb856914c HTTP/1.1
[2026-04-02T23:37:34Z INFO backend::middleware] Identity: identified user 0d74c863-6a02-4539-9513-faabb856914c via JWT
[2026-04-02T23:37:34Z INFO backend::handlers] Fetching dashboard stats for user: 0d74c863-6a02-4539-9513-faabb856914c
AQL EXEC: query($uid: Uuid!) { schedules(where: { participants: { contains: $uid } }) }
RESULT: Query(QueryResult { collection: "schedules", documents: [], total_count: None, deferred_fields: [], explain: None })
AQL EXEC: query($uid: Uuid!) { availability_slots(where: { user_id: { eq: $uid } }) }
RESULT: Query(QueryResult { collection: "availability_slots", documents: [], total_count: None, deferred_fields: [], explain: None })
[2026-04-02T23:37:34Z INFO actix_web::middleware::logger] 2026-04-02T23:37:34.125983Z | 200 | 1.272000ms | 103 bytes | GET /api/stats/0d74c863-6a02-4539-9513-faabb856914c HTTP/1.1
[2026-04-02T23:37:36Z INFO backend::middleware] Identity: identified user 50ecc1e2-7540-4e4c-a3c8-c34720671d09 via JWT
[2026-04-02T23:37:36Z INFO backend::middleware] Identity: identified user 50ecc1e2-7540-4e4c-a3c8-c34720671d09 via JWT
[2026-04-02T23:37:36Z INFO backend::handlers] get_me: checking identity
[2026-04-02T23:37:36Z INFO backend::handlers] get_me: found claims for 50ecc1e2-7540-4e4c-a3c8-c34720671d09
AQL EXEC: query($id: Uuid!) { users(where: { id: { eq: $id } }, limit: 1) }
RESULT: Query(QueryResult { collection: "users", documents: [], total_count: None, deferred_fields: [], explain: None })
[2026-04-02T23:37:36Z INFO backend::handlers] get_me: found guest anon_id 50ecc1e2-7540-4e4c-a3c8-c34720671d09
[2026-04-02T23:37:36Z INFO actix_web::middleware::logger] 2026-04-02T23:37:36.187771Z | 200 | 0.645000ms | 209 bytes | GET /api/auth/me HTTP/1.1
AQL EXEC: query($username: String!) { users(where: { username: { eq: $username } }, limit: 1) }
RESULT: Query(QueryResult { collection: "users", documents: [Document { id: "019d508f-169d-7a30-ad34-88504ccdd4e1", data: {"id": String("0d74c863-6a02-4539-9513-faabb856914c"), "bio": Null, "name": String("Bethel Nzekea"), "timezone": String("UTC"), "email": String("bnzekea2@gmail.com"), "created_at": String("2026-04-02T23:37:27.964477+00:00"), "avatar_url": String("https://lh3.googleusercontent.com/a/ACg8ocJyAFkv2rXgBC7vykcyHu8k6fRe0jj4vptgnF3SeQggPXjCdMCn=s100"), "username": String("bnzekea2"), "google_calendar_refresh_token": String("841ef6176a2734f8ec32ff40082fdeed:4f7058acc360cb449399d80d5eab43c5ad69bcc15d844e2b977ce2049792a98d3ab4cce4813600f35332863c34713cabdefeb8d378f1dcde2c697d049504e7fab24b607712710f9c9a47a1cc286799d6c45b7c9e845cbcc78ec596372348a490751fd69acd26b91bcc2bb1dfe54d6e01")} }], total_count: None, deferred_fields: [], explain: None })
[2026-04-02T23:37:36Z INFO backend::middleware] Identity: identified user 50ecc1e2-7540-4e4c-a3c8-c34720671d09 via JWT
[2026-04-02T23:37:36Z INFO backend::websocket] New websocket session
[2026-04-02T23:37:36Z INFO backend::websocket] WebSocket session identified as user: 50ecc1e2-7540-4e4c-a3c8-c34720671d09
[2026-04-02T23:37:36Z INFO backend::ws_server] WebSocket client connected: 50ecc1e2-7540-4e4c-a3c8-c34720671d09
AQL EXEC: query GetUserEventTypes($uid: String!) { event_types(where: { user_id: { eq: $uid } }) }
RESULT: Query(QueryResult { collection: "event_types", documents: [], total_count: None, deferred_fields: [], explain: None })
[2026-04-02T23:37:37Z INFO actix_web::middleware::logger] 2026-04-02T23:37:36.187788Z | 200 | 1281.697000ms | 257 bytes | GET /api/public/bnzekea2 HTTP/1.1
[2026-04-02T23:37:38Z INFO backend::middleware] Identity: identified user 0d74c863-6a02-4539-9513-faabb856914c via JWT
[2026-04-02T23:37:38Z INFO backend::handlers] Fetching dashboard stats for user: 0d74c863-6a02-4539-9513-faabb856914c
AQL EXEC: query($uid: Uuid!) { schedules(where: { participants: { contains: $uid } }) }
RESULT: Query(QueryResult { collection: "schedules", documents: [], total_count: None, deferred_fields: [], explain: None })
AQL EXEC: query($uid: Uuid!) { availability_slots(where: { user_id: { eq: $uid } }) }
RESULT: Query(QueryResult { collection: "availability_slots", documents: [], total_count: None, deferred_fields: [], explain: None })
[2026-04-02T23:37:38Z INFO actix_web::middleware::logger] 2026-04-02T23:37:38.658708Z | 200 | 0.704000ms | 103 bytes | GET /api/stats/0d74c863-6a02-4539-9513-faabb856914c HTTP/1.1
[2026-04-02T23:37:40Z INFO actix_web::middleware::logger] 2026-04-02T23:37:40.633181Z | 200 | 0.098000ms | 0 bytes | OPTIONS /api/event-types/user/0d74c863-6a02-4539-9513-faabb856914c HTTP/1.1
[2026-04-02T23:37:40Z INFO backend::middleware] Identity: identified user 0d74c863-6a02-4539-9513-faabb856914c via JWT
AQL EXEC: query GetUserEventTypes($uid: String!) { event_types(where: { user_id: { eq: $uid } }) }
RESULT: Query(QueryResult { collection: "event_types", documents: [], total_count: None, deferred_fields: [], explain: None })
[2026-04-02T23:37:40Z INFO actix_web::middleware::logger] 2026-04-02T23:37:40.634239Z | 200 | 0.459000ms | 2 bytes | GET /api/event-types/user/0d74c863-6a02-4539-9513-faabb856914c HTTP/1.1
[2026-04-02T23:37:50Z INFO actix_web::middleware::logger] 2026-04-02T23:37:50.825496Z | 200 | 0.111000ms | 0 bytes | OPTIONS /api/event-types HTTP/1.1
[2026-04-02T23:37:50Z INFO backend::middleware] Identity: identified user 0d74c863-6a02-4539-9513-faabb856914c via JWT
[2026-04-02T23:37:50Z INFO backend::websocket] WS: Streaming event from DB for event_types: ChangeEvent { collection: "event_types", change_type: Insert, id: "019d508f-6feb-7331-8f7f-6237c578aca8", document: Some(Document { id: "019d508f-6feb-7331-8f7f-6237c578aca8", data: {"buffer_after_minutes": Int(0), "user_id": String("0d74c863-6a02-4539-9513-faabb856914c"), "duration_minutes": Int(30), "is_active": Bool(true), "created_at": String("2026-04-02T23:37:50.826927+00:00"), "title": String("test"), "buffer_before_minutes": Int(0), "id": String("ef3998c4-e68f-418e-83ba-0b9234051dc4"), "max_per_day": Null, "description": String(""), "color": Null} }), old_document: None, changed_fields: {} }
AQL EXEC: mutation CreateEventType($id: String!, $uid: String!, $title: String, $desc: String, $dur: Int, $buf_b: Int, $buf_a: Int, $max: Int, $color: String, $active: Boolean, $created: String) {
upsert(collection: "event_types", where: { id: { eq: $id } }, id: $id, data: { id: $id, user_id: $uid, title: $title, description: $desc, duration_minutes: $dur, buffer_before_minutes: $buf_b, buffer_after_minutes: $buf_a, max_per_day: $max, color: $color, is_active: $active, created_at: $created })
{ id user_id title description duration_minutes buffer_before_minutes buffer_after_minutes max_per_day color is_active created_at }
}
RESULT: Mutation(MutationResult { operation: "upsert", collection: "event_types", affected_count: 1, returned_documents: [Document { id: "019d508f-6feb-7331-8f7f-6237c578aca8", data: {"buffer_after_minutes": Int(0), "user_id": String("0d74c863-6a02-4539-9513-faabb856914c"), "duration_minutes": Int(30), "is_active": Bool(true), "created_at": String("2026-04-02T23:37:50.826927+00:00"), "title": String("test"), "buffer_before_minutes": Int(0), "id": String("ef3998c4-e68f-418e-83ba-0b9234051dc4"), "max_per_day": Null, "description": String(""), "color": Null} }] })
[2026-04-02T23:37:50Z INFO actix_web::middleware::logger] 2026-04-02T23:37:50.826609Z | 201 | 4.886000ms | 291 bytes | POST /api/event-types HTTP/1.1
[2026-04-02T23:37:50Z INFO backend::middleware] Identity: identified user 0d74c863-6a02-4539-9513-faabb856914c via JWT
AQL EXEC: query GetUserEventTypes($uid: String!) { event_types(where: { user_id: { eq: $uid } }) }
RESULT: Query(QueryResult { collection: "event_types", documents: [Document { id: "019d508f-6feb-7331-8f7f-6237c578aca8", data: {"buffer_after_minutes": Int(0), "buffer_before_minutes": Int(0), "created_at": String("2026-04-02T23:37:50.826927+00:00"), "title": String("test"), "color": Null, "description": String(""), "is_active": Bool(true), "duration_minutes": Int(30), "user_id": String("0d74c863-6a02-4539-9513-faabb856914c"), "id": String("ef3998c4-e68f-418e-83ba-0b9234051dc4"), "max_per_day": Null} }], total_count: None, deferred_fields: [], explain: None })
[2026-04-02T23:37:50Z INFO actix_web::middleware::logger] 2026-04-02T23:37:50.834161Z | 200 | 0.927000ms | 293 bytes | GET /api/event-types/user/0d74c863-6a02-4539-9513-faabb856914c HTTP/1.1
[2026-04-02T23:37:52Z INFO backend::middleware] Identity: identified user 50ecc1e2-7540-4e4c-a3c8-c34720671d09 via JWT
AQL EXEC: query($username: String!) { users(where: { username: { eq: $username } }, limit: 1) }
RESULT: Query(QueryResult { collection: "users", documents: [Document { id: "019d508f-169d-7a30-ad34-88504ccdd4e1", data: {"timezone": String("UTC"), "id": String("0d74c863-6a02-4539-9513-faabb856914c"), "username": String("bnzekea2"), "bio": Null, "google_calendar_refresh_token": String("841ef6176a2734f8ec32ff40082fdeed:4f7058acc360cb449399d80d5eab43c5ad69bcc15d844e2b977ce2049792a98d3ab4cce4813600f35332863c34713cabdefeb8d378f1dcde2c697d049504e7fab24b607712710f9c9a47a1cc286799d6c45b7c9e845cbcc78ec596372348a490751fd69acd26b91bcc2bb1dfe54d6e01"), "created_at": String("2026-04-02T23:37:27.964477+00:00"), "name": String("Bethel Nzekea"), "avatar_url": String("https://lh3.googleusercontent.com/a/ACg8ocJyAFkv2rXgBC7vykcyHu8k6fRe0jj4vptgnF3SeQggPXjCdMCn=s100"), "email": String("bnzekea2@gmail.com")} }], total_count: None, deferred_fields: [], explain: None })
[Running 'cargo run']
[2026-04-02T23:37:53Z INFO actix_server::server] SIGTERM received; starting graceful shutdown
[2026-04-02T23:37:53Z INFO actix_server::accept] accept thread stopped
[2026-04-02T23:37:53Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:37:53Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:37:53Z INFO actix_server::worker] graceful worker shutdown; finishing 1 connections
[2026-04-02T23:37:53Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:37:53Z INFO actix_server::worker] graceful worker shutdown; finishing 1 connections
[2026-04-02T23:37:53Z INFO actix_server::worker] graceful worker shutdown; finishing 1 connections
[2026-04-02T23:37:53Z INFO actix_server::worker] shutting down idle worker
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.46s
Running `target/debug/backend`
[2026-04-02T23:37:57Z INFO backend] Starting scheduling server on http://localhost:8080
[handler] 'sync_calendar_on_booking' registered on 'schedules'
[handler] 'sync_calendar_on_update' registered on 'schedules'
[handler] 'sync_calendar_on_delete' registered on 'schedules'
[handler] 'schedule_reminder_on_booking' registered on 'schedules'
[2026-04-02T23:37:57Z INFO backend] Aurora DB initialized successfully
[2026-04-02T23:37:57Z INFO backend::computed_fields] ✅ Computed fields configured
[2026-04-02T23:37:57Z INFO backend::computed_fields] - users.display_name: Concat name fields
[2026-04-02T23:37:57Z INFO backend::computed_fields] - event_types.total_buffer_minutes: Sum of buffer times
[2026-04-02T23:37:57Z INFO backend::computed_fields]
[2026-04-02T23:37:57Z INFO backend::computed_fields] Note: Complex computed fields (date calculations, cross-collection queries)
[2026-04-02T23:37:57Z INFO backend::computed_fields] will be available when Aurora adds Custom expression support
[2026-04-02T23:37:57Z INFO backend::workers] 🔧 Worker handlers registered in workers.rs
[2026-04-02T23:37:57Z INFO backend::jobs] Job handlers registered.
[2026-04-02T23:37:57Z INFO backend] 🔧 Integrated worker system started
[2026-04-02T23:37:57Z INFO actix_server::builder] starting 8 workers
[2026-04-02T23:37:57Z INFO actix_server::server] Actix runtime found; starting in Actix runtime
[2026-04-02T23:37:57Z INFO actix_server::server] starting service: "actix-web-service-127.0.0.1:8080", workers: 8, listening on: 127.0.0.1:8080
[2026-04-02T23:37:58Z INFO backend::workers] 👀 Waitlist listener started
[2026-04-02T23:37:58Z INFO backend::middleware] Identity: identified user 0d74c863-6a02-4539-9513-faabb856914c via JWT
AQL EXEC: query GetUserEventTypes($uid: String!) { event_types(where: { user_id: { eq: $uid } }) }
RESULT: Query(QueryResult { collection: "event_types", documents: [], total_count: None, deferred_fields: [], explain: None })
[2026-04-02T23:37:58Z INFO actix_web::middleware::logger] 2026-04-02T23:37:58.3067Z | 200 | 2.204000ms | 2 bytes | GET /api/event-types/user/0d74c863-6a02-4539-9513-faabb856914c HTTP/1.1
[2026-04-02T23:38:00Z INFO backend::middleware] Identity: identified user 50ecc1e2-7540-4e4c-a3c8-c34720671d09 via JWT
[2026-04-02T23:38:00Z INFO backend::websocket] New websocket session
[2026-04-02T23:38:00Z INFO backend::websocket] WebSocket session identified as user: 50ecc1e2-7540-4e4c-a3c8-c34720671d09
[2026-04-02T23:38:00Z INFO backend::ws_server] WebSocket client connected: 50ecc1e2-7540-4e4c-a3c8-c34720671d09
[2026-04-02T23:38:00Z INFO backend::middleware] Identity: identified user 50ecc1e2-7540-4e4c-a3c8-c34720671d09 via JWT
AQL EXEC: query($username: String!) { users(where: { username: { eq: $username } }, limit: 1) }
RESULT: Query(QueryResult { collection: "users", documents: [], total_count: None, deferred_fields: [], explain: None })
[2026-04-02T23:38:00Z INFO actix_web::middleware::logger] 2026-04-02T23:38:00.174786Z | 404 | 0.598000ms | 47 bytes | GET /api/public/bnzekea2 HTTP/1.1
[2026-04-02T23:38:00Z INFO backend::middleware] Identity: identified user 0d74c863-6a02-4539-9513-faabb856914c via JWT
AQL EXEC: query GetUserEventTypes($uid: String!) { event_types(where: { user_id: { eq: $uid } }) }
RESULT: Query(QueryResult { collection: "event_types", documents: [], total_count: None, deferred_fields: [], explain: None })
[2026-04-02T23:38:00Z INFO actix_web::middleware::logger] 2026-04-02T23:38:00.58366Z | 200 | 0.454000ms | 2 bytes | GET /api/event-types/user/0d74c863-6a02-4539-9513-faabb856914c HTTP/1.1
[2026-04-02T23:38:00Z INFO backend::middleware] Identity: identified user 0d74c863-6a02-4539-9513-faabb856914c via JWT
[2026-04-02T23:38:00Z INFO backend::websocket] New websocket session
[2026-04-02T23:38:00Z INFO backend::websocket] WebSocket session identified as user: 0d74c863-6a02-4539-9513-faabb856914c
[2026-04-02T23:38:00Z INFO backend::ws_server] WebSocket client connected: 0d74c863-6a02-4539-9513-faabb856914c
[2026-04-02T23:38:01Z INFO backend::middleware] Identity: identified user 50ecc1e2-7540-4e4c-a3c8-c34720671d09 via JWT
AQL EXEC: query($username: String!) { users(where: { username: { eq: $username } }, limit: 1) }
RESULT: Query(QueryResult { collection: "users", documents: [], total_count: None, deferred_fields: [], explain: None })
[2026-04-02T23:38:01Z INFO actix_web::middleware::logger] 2026-04-02T23:38:01.186229Z | 404 | 0.427000ms | 47 bytes | GET /api/public/bnzekea2 HTTP/1.1
[2026-04-02T23:38:02Z INFO backend::websocket] Client disconnected: Some(CloseReason { code: Away, description: None })
[2026-04-02T23:38:02Z INFO backend::websocket] Websocket session ended
[2026-04-02T23:38:02Z INFO backend::ws_server] WebSocket client disconnected: 0d74c863-6a02-4539-9513-faabb856914c
[2026-04-02T23:38:02Z INFO actix_web::middleware::logger] 2026-04-02T23:38:00.701593Z | 101 | 2154.740000ms | 2 bytes | GET /api/ws/ HTTP/1.1
[2026-04-02T23:38:02Z INFO backend::middleware] Identity: identified user 0d74c863-6a02-4539-9513-faabb856914c via JWT
[2026-04-02T23:38:02Z INFO backend::middleware] Identity: identified user 0d74c863-6a02-4539-9513-faabb856914c via JWT
[2026-04-02T23:38:02Z INFO backend::handlers] get_me: checking identity
[2026-04-02T23:38:02Z INFO backend::websocket] New websocket session
[2026-04-02T23:38:02Z INFO backend::websocket] WebSocket session identified as user: 0d74c863-6a02-4539-9513-faabb856914c
[2026-04-02T23:38:02Z INFO backend::handlers] get_me: found claims for 0d74c863-6a02-4539-9513-faabb856914c
AQL EXEC: query($id: Uuid!) { users(where: { id: { eq: $id } }, limit: 1) }
[2026-04-02T23:38:02Z INFO backend::ws_server] WebSocket client connected: 0d74c863-6a02-4539-9513-faabb856914c
RESULT: Query(QueryResult { collection: "users", documents: [], total_count: None, deferred_fields: [], explain: None })
[2026-04-02T23:38:02Z INFO backend::handlers] get_me: found guest anon_id 0d74c863-6a02-4539-9513-faabb856914c
[2026-04-02T23:38:02Z INFO actix_web::middleware::logger] 2026-04-02T23:38:02.983364Z | 200 | 1.381000ms | 209 bytes | GET /api/auth/me HTTP/1.1
[Running 'cargo run']
[2026-04-02T23:38:33Z INFO actix_server::server] SIGTERM received; starting graceful shutdown
[2026-04-02T23:38:33Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:38:33Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:38:33Z INFO actix_server::worker] graceful worker shutdown; finishing 1 connections
[2026-04-02T23:38:33Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:38:33Z INFO actix_server::accept] accept thread stopped
[2026-04-02T23:38:33Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:38:33Z INFO actix_server::worker] shutting down idle worker
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.47s
Running `target/debug/backend`
[2026-04-02T23:38:35Z INFO backend] Starting scheduling server on http://localhost:8080
[handler] 'sync_calendar_on_booking' registered on 'schedules'
[handler] 'sync_calendar_on_update' registered on 'schedules'
[handler] 'sync_calendar_on_delete' registered on 'schedules'
[handler] 'schedule_reminder_on_booking' registered on 'schedules'
[2026-04-02T23:38:35Z INFO backend] Aurora DB initialized successfully
[2026-04-02T23:38:35Z INFO backend::computed_fields] ✅ Computed fields configured
[2026-04-02T23:38:35Z INFO backend::computed_fields] - users.display_name: Concat name fields
[2026-04-02T23:38:35Z INFO backend::computed_fields] - event_types.total_buffer_minutes: Sum of buffer times
[2026-04-02T23:38:35Z INFO backend::computed_fields]
[2026-04-02T23:38:35Z INFO backend::computed_fields] Note: Complex computed fields (date calculations, cross-collection queries)
[2026-04-02T23:38:35Z INFO backend::computed_fields] will be available when Aurora adds Custom expression support
[2026-04-02T23:38:35Z INFO backend::workers] 🔧 Worker handlers registered in workers.rs
[2026-04-02T23:38:35Z INFO backend::jobs] Job handlers registered.
[2026-04-02T23:38:35Z INFO backend] 🔧 Integrated worker system started
[2026-04-02T23:38:35Z INFO actix_server::builder] starting 8 workers
[2026-04-02T23:38:35Z INFO actix_server::server] Actix runtime found; starting in Actix runtime
[2026-04-02T23:38:35Z INFO actix_server::server] starting service: "actix-web-service-127.0.0.1:8080", workers: 8, listening on: 127.0.0.1:8080
[2026-04-02T23:38:35Z INFO backend::workers] 👀 Waitlist listener started
[2026-04-02T23:38:38Z INFO backend::middleware] Identity: identified user 50ecc1e2-7540-4e4c-a3c8-c34720671d09 via JWT
[2026-04-02T23:38:38Z INFO backend::websocket] New websocket session
[2026-04-02T23:38:38Z INFO backend::websocket] WebSocket session identified as user: 50ecc1e2-7540-4e4c-a3c8-c34720671d09
[2026-04-02T23:38:38Z INFO backend::ws_server] WebSocket client connected: 50ecc1e2-7540-4e4c-a3c8-c34720671d09
[Running 'cargo run']
[2026-04-02T23:38:52Z INFO actix_server::server] SIGTERM received; starting graceful shutdown
[2026-04-02T23:38:52Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:38:52Z INFO actix_server::worker] graceful worker shutdown; finishing 1 connections
[2026-04-02T23:38:52Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:38:52Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:38:52Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:38:52Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:38:52Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:38:52Z INFO actix_server::worker] shutting down idle worker
[2026-04-02T23:38:52Z INFO actix_server::accept] accept thread stopped
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.45s
Running `target/debug/backend`
[2026-04-02T23:38:55Z INFO backend] Starting scheduling server on http://localhost:8080
[handler] 'sync_calendar_on_booking' registered on 'schedules'
[handler] 'sync_calendar_on_update' registered on 'schedules'
[handler] 'sync_calendar_on_delete' registered on 'schedules'
[handler] 'schedule_reminder_on_booking' registered on 'schedules'
[2026-04-02T23:38:55Z INFO backend] Aurora DB initialized successfully
[2026-04-02T23:38:55Z INFO backend::computed_fields] ✅ Computed fields configured
[2026-04-02T23:38:55Z INFO backend::computed_fields] - users.display_name: Concat name fields
[2026-04-02T23:38:55Z INFO backend::computed_fields] - event_types.total_buffer_minutes: Sum of buffer times
[2026-04-02T23:38:55Z INFO backend::computed_fields]
[2026-04-02T23:38:55Z INFO backend::computed_fields] Note: Complex computed fields (date calculations, cross-collection queries)
[2026-04-02T23:38:55Z INFO backend::computed_fields] will be available when Aurora adds Custom expression support
[2026-04-02T23:38:55Z INFO backend::workers] 🔧 Worker handlers registered in workers.rs
[2026-04-02T23:38:55Z INFO backend::jobs] Job handlers registered.
[2026-04-02T23:38:55Z INFO backend] 🔧 Integrated worker system started
[2026-04-02T23:38:55Z INFO actix_server::builder] starting 8 workers
[2026-04-02T23:38:55Z INFO actix_server::server] Actix runtime found; starting in Actix runtime
[2026-04-02T23:38:55Z INFO actix_server::server] starting service: "actix-web-service-127.0.0.1:8080", workers: 8, listening on: 127.0.0.1:8080
[2026-04-02T23:38:55Z INFO backend::workers] 👀 Waitlist listener started
[2026-04-02T23:38:56Z INFO backend::middleware] Identity: identified user 50ecc1e2-7540-4e4c-a3c8-c34720671d09 via JWT
[2026-04-02T23:38:56Z INFO backend::websocket] New websocket session
[2026-04-02T23:38:56Z INFO backend::websocket] WebSocket session identified as user: 50ecc1e2-7540-4e4c-a3c8-c34720671d09
[2026-04-02T23:38:56Z INFO backend::ws_server] WebSocket client connected: 50ecc1e2-7540-4e4c-a3c8-c34720671d09