🅰️ Frontend
- Updated frontend to Angular 22.x and Angular Material 22.x
- Updated TypeScript to 6.0.x
- Updated
angular-eslintto 22.x - Switched QR code library from
ng-qrcodetoangularx-qrcode 2734b6ad9: Removed deprecated@angular/platform-browser-dynamicdependency
🎯 Challenges
03645895e: Harmonized challenge name capitalization (e.g., "Exposed credentials" → "Exposed Credentials")- Added ⭐⭐-challenge "Misplaced IaC Files"
- Added ⭐⭐⭐⭐-challenge "Login Cloud Admin" (including coding challenge)
- Added ⭐⭐⭐-challenge "Vulnerable Infrastructure" (including coding challenge)
68815f2a7: Updated mitigation URLs for IaC-related challengesd832137b1: Supported n-gram in similarity checks for "System Prompt Extraction" (#3515)- Disabled dangerous "Deprecated Interface" challenge on Docker/Heroku by default
- Added missing guard around dangerous "Local File Read" challenge
🎨 User Interface
8c92a2058: Added role field and deluxe membership link to user profile page
🕵️ Cheat Detection
b55fe2977: Added cheat detection for source file overlap in challenge submissions using Dice Coefficient
🌐 I18N
- Updated server-side I18N base strings and backend translations
🧹 Technical Debt Reduction
3acae4030: Fixed TypeScript 6.0 deprecations4a33cd421: Properly adopted test mocks forangularx-qrcode27cccf771: Removed GitPod references entirelye3343c50b: Updated@types/nodeto v26.x- Added
allowScriptsconfiguration topackage.jsonandfrontend/package.json b66bec35c: Refactored file path handling to also work on Windows68a9a1d65: Optimized i18n handling by disabling file restoration during test suite runsa92bafc11: Removed contradictions and fluff from challenge descriptions42149e0aa: Moved terraform routes out of existing vulnerable code snippet markers
🏗️ Build Process
7fa7ad76e: Replaced Grunt with a custom packaging script (scripts/package.mjs)df1b6bbd8: Extracted draft release creation from packaging pipeline into separate workflow step
⚙️ DevOps Automation
- Updated CI/CD pipelines to use new packaging script instead of Grunt