26-Nov-2025 — Deployment and Member-admin: 2 fixes #90
Bug Fixes
deployment: Further refinements to improve fly.io deployment reliability ref: #90
- increase timeouts to handle cold start delays
- Increase MongoDB connection timeout from 5s to 30s to handle replica set discovery during Fly.io cold starts
- Add 600s (10 minute) wait-timeout to flyctl deploy to prevent premature deployment failures
- Addresses issue where deployments succeeded but GitHub Actions timed out after 5 minutes
- run migrations asynchronously after server starts
- Move server.listen() before migration execution to ensure health checks pass immediately during fly.io deployments.
- Migrations now run in background with proper error handling, allowing the server to respond to health checks within the 60s grace period while migrations complete.
member-admin: align lifecycle handling and brevo sync (#92)
- Lifecycle handling: added MemberTerm enum (life/annual), ingested from bulk loads, schemas updated; life/payment-pending/newly-loaded members avoid expiry actions; Member Admin list shows “Lifetime” and modal expiry is disabled/readonly for life members.
- UX persistence: Member Admin search/sort now persisted via kebab-cased query params (search, sort, sort-order) and local storage; lifetime display and date-picker null handling improved.
- Deletion audit: manual member delete now records a deleted-member document (aligning with bulk delete).
- Bulk load/back-end: member bulk-load date map aggregation typed and tested; member status/term captured from Ramblers feed; date map endpoint typed.
- Brevo integration: always log errors; surface contact creation failures; fallback to batch update on duplicate ext_id; contact matching honors extId; checkbox label fixed.