Skip to main content

Release Changelog

Comprehensive release notes documenting notable features, competition policy updates, security enhancements, and bug fixes across all versions.

v1.2.0

Latest Release
Added
  • Added "View as Student" (Impersonation Mode) in admin console registration list and detail views, allowing administrators to reproduce contestant views and assist with troubleshooting without password disclosure (Jira: YAU-1759).
  • Added explicit `yau_impersonate` session flag, strict View-Only restriction on all contestant write endpoints (`PUT /api/user/registrations/[id]`, `POST /api/user/registrations`, `POST /api/user/upload`), and hardened URL normalization on exit redirects (Jira: YAU-1759).
  • Added sticky Impersonation Banner in contestant center with one-click return to admin console and safe simulation exit (Jira: YAU-1759).
  • Added Git commit-msg and pre-push quality gates (`.githooks/`) enforcing mandatory Jira issue linkage, changelog tracking, and version consistency checks across `package.json`, `AdminLayout.astro`, and `CHANGELOG.md` (Jira: YAU-1758).
  • Added Journal Publication & Copyright policy statement across all subject GUIDE and REGISTRATION highlight banners and participant forms (`register.html.astro` and `edit-[id].html.astro`) (Jira: YAU-1757).
  • Added optimistic locking (`version` column) and version guard (`registrationLock.ts`) to prevent concurrent saves from overwriting newer submissions with stale form state.
  • Added structured multi-supervisor (`advisors_json`) support in database and forms, replacing legacy slash-separated text parsing.
  • Added prominent AI Usage Policy link in top navigation header and competition guidelines across all subjects (Jira: YAU-1754).
  • Added explicit eligibility guidelines for European, UK, and Australian secondary school contestants on overseas portal (Jira: YAU-1753).
  • Added two-phase deadline timeline (Phase 1 team registration vs. Phase 2 research report upload) in user center (Jira: YAU-1752).
  • Added dedicated Changelog viewer page (`/changelog`) on the website and admin console navigation.
Changed
  • Clarified `SUBMITTED · AWAITING REVIEW` submission status badge and added confirmation banner in user center to eliminate user anxiety over pending reviews (Jira: YAU-1748).
  • Bound submission deadline labels dynamically to `CompetitionConfig.initial_paper_deadline` across all user center forms, notice templates, and confirmation emails (Jira: YAU-1756).
Fixed
  • Fixed unhandled exception and table casing in `/api/admin/impersonate` endpoint by wrapping with structured try-catch error handling and standardizing on `Registrations` table (Jira: YAU-1759).
  • Fixed legacy DTcms static HTML hardcoded deadline (`August 24`) in form definitions and script archives.
  • Fixed stage locking to apply strictly to closed stage columns instead of rejecting entire update payloads.

v1.1.0

Added
  • Added Academic Integrity Declaration (`declaration_url`) upload support and official document template download link in registration forms (Jira: YAU-1747).
  • Added `SUBMISSION_DOCS` centralized file registry with `requiredForFinal` flag and `isMaterialsComplete` validation.
  • Added `Materials Complete` badge on admin registration detail view and CSV export column for completeness evaluation.
  • Added official announcements (102055 & 102056) for AI usage policy and competition deadline alignment.
Fixed
  • Fixed issue where partial form submission could overwrite or nullify existing file attachments (`resolveFileUrl`).
  • Fixed parameter binding in user registration API to preserve existing team introduction on finalist updates.
  • Aligned 2026 competition rules and timelines with Tsinghua official specifications across all subject guide pages.

v1.0.1

Fixed
  • Fixed the registrations constraint issue where a single student was blocked from registering for multiple different subjects in the same competition year (Jira: YAU-1711).
  • Updated the unique constraint query (`findParticipantConflict`) to enforce uniqueness on the `[Year] + [Subject] + [Passport]` combination rather than blocking the same passport across all subjects.
  • Synchronized paper deadline presentation text with dynamic competition configuration.

v0.1.0

Added
  • Created `scripts/generate_ico.py` using Python PIL to generate high-fidelity, multi-resolution `favicon.ico` from the official SVG assets with support for sizes `[16, 32, 48, 64, 128, 256]`.
  • Created master high-resolution favicon PNG `public/favicon.png` (`1024x1024`) as a reference.
  • Added `<link rel="shortcut icon" href="/favicon.ico" />` in HTML layout and auth templates (`MainLayout.astro`, `AdminLayout.astro`, `login.astro`, `verify.astro`) as a standard fallback for search engines and backward compatibility.
  • Added Google Search Console site ownership verification file (`google8e3f8efbaa798cd2.html`).
  • Optimized `sitemap.xml` and `llm.txt` search indexing for donations and guide pages.
Fixed
  • Fixed search engine and browser fallback icon issue where Google search showed the default Astro logo instead of the official Yau Science Awards icon by replacing the outdated `public/favicon.ico` at the root.
  • Removed `/login.html` and `/verify` from `robots.txt` Disallow list to eliminate GSC indexing warnings.

v0.0.5

Added
  • Added Cambridge Journal for Junior Scientists (CJJS) official academic partner banner and introduction section on homepage.
  • Upgraded Wrangler Cloudflare tooling to version 4.95 and regenerated Worker TypeScript interfaces.
  • Added detailed referrer URL tracking and deep-dive table in Traffic Analytics.
  • Added AI response feedback rating (helpful / unhelpful) and docked chat assistant into Gemini-style collapsible drawer.

v0.0.4

Added
  • Added attachment and image upload support to news editor in Admin Console.
  • Added AI Chat conversation history archival system.
  • Added mandatory Cloudflare Turnstile CAPTCHA verification before sign-in submission.
Changed
  • Refactored author metadata display on article detail pages.

v0.0.3

Added
  • Added Google Analytics 4 (GA4) and Firebase custom event tracking.
  • Added clear buttons for member photo and uploaded submission files.
  • Implemented comprehensive 301/302 redirects for all legacy ASP.NET DTcms URLs to preserve SEO search rankings.
Fixed
  • Fixed 404 error caching by enforcing 302 redirects on dynamic fallback routes.
  • Simplified broken-image recovery handler to single capture-phase delegate.

v0.0.2

Added
  • Added dynamic homepage competition timeline and dedicated wire transfer donations page.
  • Added CodeMirror JSON syntax editor for editing public timeline events in Admin Settings.
  • Added Markdown rendering support for administrator internal notices.
  • Added automated 30-day analytics aggregation rollup background pipeline.
  • Added email notifications for all registration status transitions (Pending, Verified, Approved, Rejected).
Changed
  • Normalized all award category routes to standardized lowercase format (e.g. `/competitioncategory/mathematics-home.html`).
  • Completed DNS and Cloudflare edge migration to production domain `yau-science-awards.org`.
Fixed
  • Resolved HTML entity double-encoding bug across news content and subject guide articles.
  • Fixed table overflow and alignment on admin registration lists.

v0.0.1

Added
  • Initial project scaffolding and migration from legacy DTcms ASP.NET application to Astro SSR on Cloudflare Workers.
  • Implemented passwordless Magic Link administrative authentication with encrypted session cookies.
  • Integrated Cloudflare D1 SQL database and Cloudflare R2 object storage for participant file uploads.
  • Built core participant submission portal with team registration, instructor profiles, and multi-file uploads.
  • Built Admin Console for managing news bulletins, competition registrations, and site configurations.
  • Integrated AI-powered scientific competition chatbot with custom knowledge base retrieval.