Conversation
Sync: dev to main
Stop decodeURIComponent from crashing Settings on a truncated filename, wait for the matching ZIP entry instead of the previous one, and keep volunteer accounts from counting as staff. Analytics now uses unexpired memberships and chronological bootcamp terms.
…sues-9d3d Fix resume book, analytics, and volunteer-admin bugs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )
Note
High Risk
Touches production club infrastructure—payments-adjacent admin gates, event check-in concurrency, new GCS resume storage and secrets (
METRICS_TOKEN,RESUME_BUCKET), and broad API/cache behavior changes that can affect tail latency and authz semantics.Overview
This PR ships a member resume book (PDFs in Cloud Storage via
RESUME_BUCKET, metadata inmember_resume, upload/serve/ZIP routes outside tRPC) plus staff/admin/resumesand initiative applications with a required pitch and optional PDF resume. It also makes the public club project roster database-backed (club_project+ seed script) and refreshes contributor docs, hooks, and ops config around those features.Performance and tail latency get a large pass:
CacheService.getOrSet(including cachingnull), narrower event check-in locking and unique-constraint races, concurrent hackathon email batches, DB pool warmup (warmPool), cheaper cache/security sweeps, and Prometheus/Grafana p99 histogram buckets, recording rules, and alerts.METRICS_TOKENis wired inapphosting.yamlso/api/metricscan be scraped in production.Other notable changes: admin
isAdminexcludes volunteers (staff-only permissions), new admin growth analytics, audit tRPC router removed, repo githooks + expanded.gitignore, and CI pnpm setup unpinned to matchpackageManager(pnpm 12).Reviewed by Cursor Bugbot for commit 9398d1c. Bugbot is set up for automated code reviews on this repo. Configure here.