Rebase had inverted ours/theirs, reverting our changes. Re-applying:
- normalizeSpaces() for non-breaking space fix in category mapping
- Remove isValidEntry filter, include all CSV rows for AI screening
- Duplicate submission detection in stage-filtering (always flags, never auto-rejects)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Refactor role selector to use computed availableRoles array instead of
conditional JSX fragments, fixing Radix Select not re-rendering admin
options when async user data loads
- Rewrite 38 generic expertise tags to 44 MOPC-specific tags across 8
categories aligned with OceanIssue enum: Pollution & Waste, Climate &
Carbon, Seafood & Aquaculture, Biodiversity & Habitat, Ocean Technology,
Shipping & Ports, Community & Education, Business & Investment
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix critical crash when clicking Edit on INTAKE stage configs: normalize
DB fileRequirements shape (type/required → acceptedMimeTypes/isRequired),
add null guard in getActiveCategoriesFromMimeTypes
- Fix config summary display for all stage types to handle seed data key
mismatches (votingEnabled→juryVotingEnabled, minAssignmentsPerJuror→
minLoadPerJuror, deterministic.rules→rules, etc.)
- Add AWARD_MASTER role to invite page dropdown and user router validations
- Restructure settings sidebar: Tags and Webhooks as direct links instead
of nested tabs, remove redundant Quick Links section
- Seed 38 expertise tags across 7 categories (Marine Science, Technology,
Policy, Conservation, Business, Education, Engineering)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Full Next.js 15 platform with tRPC, Prisma, PostgreSQL, NextAuth.
Includes production Dockerfile (multi-stage, port 7600), docker-compose
with registry-based image pull, Gitea Actions CI workflow, nginx config
for portal.monaco-opc.com, deployment scripts, and DEPLOYMENT.md guide.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>