// Changelog
Entry #01
Web
April Recap
Highlights
- Effect v4 rewrite is live - The full backend and frontend have been moved onto Effect v4, giving us stricter types, better error handling, and a foundation everything else this month was built on top of.
- Auth overhead cut by around 85% - Sign in and session resolution got dramatically lighter, so dashboards, match pages, and the desktop client all feel snappier on cold loads.
- Desktop client with working Tauri auth - The Tauri client now actually signs in and routes correctly through the UI module, so we have a real desktop entry point for players and admins again.
- Security sweep across events, tickets, scheduling, and deploys - Non-public event reads, ticket read mutations, scheduler RPCs, and the deployment flow all got proper authorization boundaries, closing several privilege escalation paths.
- Tickets and Autumn customer creation - Event tickets shipped in beta, and orgs and teams now create their Autumn customer records automatically so billing and entitlements line up from day one.
More Updates
Security
- Enforce org view permission in getEventBySlug - Non-members can no longer read private events through the slug endpoint.
- Require team access for signup mutation - Joining an event now properly checks team membership server-side.
- Prevent ticket read mutation privilege escalation - Closed a path where ticket read flows could be abused to escalate access.
- Enforce scheduler authorization boundaries - Scheduler RPCs now validate caller permissions on every entry point.
- Validate permissions for non-public events - Tightened access checks across draft and private event surfaces.
- More intuitive team permissions - Reworked authorization mutations so team roles behave the way captains and owners expect.
- Hardened deployment flow - Addressed a vulnerability in the deploy pipeline that could expose secrets.
- Platform admin owner-equivalent team and org access - Support and platform admins can now act with owner-level access where they need to, without manual role swaps.
Features & Enhancements
- Public match page with interactive map veto - New match page with a longer veto timer, banned-map display, and improved map selection UI.
- In-match chat routed through the UI module - Match chat is live and now goes through the shared UI module instead of bespoke wiring.
- Public event pages - New event pages with the discover surface, overlays, and proper SEO.
- Ticket system (beta) - Initial ticketing flow for events, including customer-side reads and admin issuance.
- Public team pages - Teams now have a public page, isolated into its own module so it can evolve independently.
- Footer across the site - Site-wide footer with the standard links, including a quick fix for a duplicate render.
- Banlists - Banlist data and UI are in, feeding into the new map-veto flow.
- Rulebook upload - Organizers can upload a rulebook per event and have it surfaced on the public page.
- Image cropper - Avatar and event images can now be cropped before upload.
- Regenerate bracket - Stages now expose a guarded "regenerate bracket" action with a confirmation dialog, plus a save-confirmation indicator.
- Analytics page - First pass of an internal analytics page is live.
- Event creation with templates - Event creation now checks name availability and lays the groundwork for template-based events.
- Signup validation - Signup gained proper validation so bad input fails fast and clearly.
- Legal pages - Imprint, terms, and privacy pages are in.
- User pages - Public user profiles are back.
- Email + bot ID - Transactional emails are wired up alongside the new bot ID.
- Autumn customer creation for orgs and teams - Orgs and teams provision an Autumn customer on creation so billing flows work without manual setup.
Bug Fixes
- CPU no longer pinned to 100% - Fixed a runtime hot path that was burning a full core.
- Mapban config now saves correctly - Saving custom mapban configurations works again.
- Owner-only teams and viewer access on the dashboard - Owner-only teams and viewer-role users can see the dashboard again.
- Discover page UI - Cleaned up layout and spacing issues on the discover page.
- Missing env vars - Restored env vars that broke on a fresh deploy.
- Build size regression - Trimmed bundle output after it ballooned during the rewrite.
- Edge cases on event flows - Resolved a batch of small bugs around drafts and signups.
Performance Improvements
- Faster hot reloading - Dev server reloads are noticeably quicker after the rewrite.
- Monorepo build optimizations - Cache hits and task graph improvements across the monorepo.
Infrastructure
- Migrated to tsgo beta - We now build and typecheck on tsgo for faster CI and local feedback.
- Docker configs and product specs - Added Docker setup for self-host scenarios and refreshed the product spec docs.
- Vercel preview deployments - Switched preview deploys to vercel.ts and stabilized the preview script.