• Joined on 2026-02-14
matt pushed to main at MOPC/MOPC-Portal 2026-06-10 20:14:52 +02:00
2945a92193 feat(finale): per-project presentation/Q&A durations in m:ss + config-save merge fix
matt pushed to main at MOPC/MOPC-Portal 2026-06-10 19:39:58 +02:00
9b56eb27fb fix(finale): live-verification fixes — session sync on start, honest vote form, reveal panel polish
160333c2f9 fix(finale): ceremony-day rate-limit bucket — venue NAT would 429 audience polling
f7fdfdec9b test(finale): tally audit — weighted criteria math, ordering, ties, favorites separation
a2c6baf718 feat(finale): full ceremony UI — admin console, jury phases+notes, deliberation flow, audience voting, big-screen view
c9dc1bfabd feat(finale): deliberation jury identity resolution, rankable projects, score-revision path, session sync
Compare 14 commits »
matt pushed to main at MOPC/MOPC-Portal 2026-06-10 15:04:41 +02:00
d38fe7887a feat(final-docs): optional-mode banner/panel + admin 'Documents shown to judges' picker
28ca7bb0a6 feat(final-docs): judge-doc curation — reviewVisibleRequirementIds filter, picker helper, admin procedures
d89f67ba57 feat(final-docs): hasRequired/allUploaded on FinalDocumentStatus for optional-uploads mode
Compare 3 commits »
matt pushed to main at MOPC/MOPC-Portal 2026-06-10 14:56:08 +02:00
2c311bc65a feat(finals): prominent finalist-docs banner on jury dashboard + gate nav to finals jury
85937ec942 docs(final-docs): implementation plan for judge-doc curation + optional uploads
81352d7bd2 docs(final-docs): spec for judge-doc curation + optional revised uploads
Compare 3 commits »
matt pushed to main at MOPC/MOPC-Portal 2026-06-09 17:19:59 +02:00
8a4184d20f feat(final-docs): judges see all teams' prior-round files; revised uploads behind admin toggle
matt pushed to main at MOPC/MOPC-Portal 2026-06-09 16:58:12 +02:00
f8f2d77e3b feat(final-docs): decouple grand-final docs from LIVE_FINAL being ROUND_ACTIVE
matt pushed to main at MOPC/MOPC-Portal 2026-06-09 16:21:30 +02:00
696d7e9041 fix(final-docs): exclude dropped mentors from doc access; relative in-app reminder link
f61dcfa89a feat(final-docs): notify mentor when a finalist uploads a Grand Final document
146691be00 fix(auth): allow /api/cron paths past middleware (self-guarded by CRON_SECRET)
e4f13aaed4 feat(final-docs): auto pre-deadline reminder cron
6e1dcc8cbf feat(final-docs): add FinalistConfirmation.finalDocsReminderSentAt
Compare 21 commits »
matt pushed to main at MOPC/MOPC-Portal 2026-06-05 12:18:11 +02:00
a6fc697e4d fix(auth): allow /lunch/pick public access for accountless external attendees
matt pushed to main at MOPC/MOPC-Portal 2026-06-05 12:04:20 +02:00
8d4f0bac1e feat(logistics): external attendees self-select lunch dish via tokenized page
matt pushed to main at MOPC/MOPC-Portal 2026-06-04 19:51:10 +02:00
f2c8cc1e80 fix(logistics): Hotels tab crash — Radix SelectItem cannot have empty value
matt pushed to main at MOPC/MOPC-Portal 2026-06-04 19:35:55 +02:00
89ab5cc8e6 test(logistics): remove obsolete single-hotel test (superseded by logistics-hotels)
3bbc80332c feat(logistics): Hotels tab — multi-hotel management + rooming assignment
9313eb96f0 feat(applicant): My Logistics shows assigned hotel + room
4cd2651f9c feat(logistics): hotels CRUD + rooming + assignment procedures + travel email
75e63eb47f feat(hotel): many hotels per edition + HotelStay (room assignment)
Compare 7 commits »
matt pushed to main at MOPC/MOPC-Portal 2026-06-04 18:07:52 +02:00
97951deb68 feat(logistics): departure-after-arrival validation + travel/visa CSV export
53b623fb20 feat(applicant): My Logistics card (hotel/flights/visa+nationality) + confirm-page dashboard link
74cd111e3a feat(applicant): self-service visa nationality entry
d03c705642 feat(applicant): getMyLogistics (hotel+flight+visa) + submitter-match fix
ed426a6fb4 docs(logistics): Wave 4 plan — team-facing My Logistics + travel/visa UX
Compare 26 commits »
matt pushed to main at MOPC/MOPC-Portal 2026-06-02 09:11:05 +02:00
6b37e9bb9e fix(email): correct member-row spacing in mentor welcome emails
matt pushed to main at MOPC/MOPC-Portal 2026-06-01 20:06:56 +02:00
eb891403f1 Merge: populate roles[] on user creation (role in roles invariant)
60f1a53d70 fix(users): populate roles[] with primary role on user creation
Compare 2 commits »
matt pushed to main at MOPC/MOPC-Portal 2026-06-01 19:34:44 +02:00
501b4ffdb5 Merge: primary-role mentors assignable on mentor config page
828c09df6d fix(mentor): primary-role mentors are selectable/assignable
Compare 2 commits »
matt pushed to main at MOPC/MOPC-Portal 2026-06-01 18:51:14 +02:00
fe7f133879 Merge: members role tabs include secondary roles
d4a77f63d3 fix(members): role tabs/filter include users with secondary roles
Compare 2 commits »
matt pushed to main at MOPC/MOPC-Portal 2026-06-01 18:21:52 +02:00
040e5ff9a9 Merge: brand-align mentorship welcome emails
652c3ed4f2 fix(email): use shared branded wrapper (logo/footer) for mentorship emails
Compare 2 commits »
matt pushed to main at MOPC/MOPC-Portal 2026-06-01 17:08:53 +02:00
ed4948cc3d Merge: mentorship comms + welcome/reminder email
bd05aaa87d feat(mentor): email all team members button on project detail
0d6f71b9e1 feat(admin): send mentorship welcome/reminder button on mentoring rounds
829b082912 feat(mentor): admin preview + send mentorship welcome/reminder email
32116dac75 feat(mentor): round-open emails now carry team-member contacts
Compare 10 commits »
matt pushed to main at MOPC/MOPC-Portal 2026-05-27 13:12:47 +02:00
03526fca97 fix(mentor): defer in-app-notification emails when mentoring round is draft
matt pushed to main at MOPC/MOPC-Portal 2026-05-26 15:20:04 +02:00
61dfc608cd fix(mentor): restore Add Project on mentoring rounds + gate mentor assignment