Version: 1.6.1
1.6.1 - 2025-09-11
Feel free to
♥️ sponsor GZCTF♥️ if you like it!
Important
This release updates several dependencies (including patches that address potential denial-of-service vectors). Key highlights:
- Feature: [Challenge submission attempt limits] you can now configure per‑challenge submission quotas to curb brute‑force or guess-heavy traffic.
- Performance: substantial server-side and client-side optimizations-enhanced in‑memory + HTTP caching (ETag/304) + caching with IndexedDB and leaner render paths—reduce latency and eliminate most redundant bandwidth.
- Refactors: multiple front-end pages and shared components have been reorganized.
- License: Introduce dual-licensing model and clarify usage terms.
⛰️ Features
- (cache) implement persistent caching with IndexedDB and localStorage - (9ccb9a) by GZTime
- (shiki) use fine-grained bundle - (fb1ff5) by GZTime
🐛 Bug Fixes
- (carousel) incorrect style import order - (4e4424) by GZTime
- (deps) update mantine monorepo to v8.3.1 (#470) - (71e07e) by renovate[bot]
🎨 Styling
- make team name in TeamWriteupCard scrolling - (c76051) by GZTime
🚀 Performances
- (bundle) optimize bundle splitting and reduce small files - (014643) by GZTime
🔨 Refactor
- (scrolling-text) only scrolling when hover, improve rendering performance - (588b78) by GZTime
- (shiki) reorganize language imports and remove unused ones - (b58ce7) by GZTime
📦 Other Changes
- Introduce dual-licensing model and clarify usage terms - (2b925a) by GZTime
Changelog: https://github.com/GZTimeWalker/GZCTF/blob/HEAD/CHANGELOG.md
Commits: https://github.com/GZTimeWalker/GZCTF/compare/v1.6.0..v1.6.1