Skip to content

Tags: atgreen/ctfg

Tags

v0.3.0

Toggle v0.3.0's commit message
ci: avoid artifact name conflicts by uploading Playwright report from… … Linux only - Gate report upload to Linux job (always upload even on failure) - Prevent 409 Conflict when macOS finishes after Linux

v0.2.5

Toggle v0.2.5's commit message
Add JPEG banner support with PNG fallback - Prefer `images/banner.jpg` when present; fall back to `images/banner.png`. - Frontend (`index.html`): default to JPG banner with `onerror` fallback to PNG. - Server (`src/server.lisp`): preload whichever banner exists (JPG preferred), and serve correct `Content-Type` for `.jpg`/`.jpeg`. - Build (`Makefile`): package JPG if available, else PNG, into `runtime-files.tgz`. - Docs (`README.md`): document banner placement and JPG preference. Compatibility: existing deployments with only `banner.png` continue to work unchanged; no functional difference if a JPG is not provided.

v0.2.4

Toggle v0.2.4's commit message
ws: accept any Origin; enforce auth via short-lived token (fix 403 be… …hind edge TLS proxy)

v0.2.3

Toggle v0.2.3's commit message
v0.2.3: Add nav button active-state updates in ViewManager 

v0.2.2

Toggle v0.2.2's commit message
feat: implement comprehensive display name validation - Add client-side and server-side display name validation - Set minimum length to 2 characters, maximum to 30 - Block reserved terms (admin, moderator, etc.) - Prevent excessive character repetition - Validate character sets to prevent malicious input - Show detailed error messages instead of generic fallbacks - Fix event listener persistence for form resubmission - Enhance cache-busting for developer mode testing

v0.2.1

Toggle v0.2.1's commit message
Ignore typescript 

v0.2.0

Toggle v0.2.0's commit message
docs: update AGENTS.md with SQLite changes, CLWS CRLF handshake, emul… …ator ping/pong + IPv4 notes, and troubleshooting

v0.1.26

Toggle v0.1.26's commit message
Add static file caching for improved performance under high load Implements an in-memory cache for static files (CSS, JS, images) that dramatically improves response times when serving many concurrent players. Key features: - Thread-safe hash table cache with reader-writer locks - Automatic preloading of common files (CSS, JS, banner) at startup - Smart developer mode detection - caching disabled in dev mode for hot reloading - Aggressive browser caching headers (1 year) for production performance - Cache statistics and debugging support - Custom dispatcher that handles /css/, /js/, and /images/ paths - Proper content-type detection based on file extensions Performance benefits: - Eliminates disk I/O for repeated static file requests - Reduces server response times from ~50ms to <1ms for cached files - Critical for high-load scenarios like 70+ concurrent CTF players - Maintains compatibility with existing easy-routes API endpoints 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>

v0.1.25

Toggle v0.1.25's commit message
Add high-capacity server configuration and concurrent player emulator Server optimizations for 390+ concurrent users: - Increase HTTP thread pool: 500 max threads, 600 max accept - SQLite performance tuning: 64MB cache, NORMAL sync, memory mapping - Session optimization: frequent GC, disable URL rewriting - Increase SQLite busy timeout to 30 seconds Player emulator features: - Concurrent execution with worst-case thundering herd testing - Browser-like behavior: static files, login, WebSocket, challenge solving - WebSocket message validation and detailed logging - Realistic delays and batch flag submissions - Supports N concurrent players via command line 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>

v0.1.24

Toggle v0.1.24's commit message
Add syntax highlighting and improve challenge display Integrated highlight.js for code block syntax highlighting in challenge descriptions, added proper styling for headers and lists, and fixed routing to handle direct challenge links when challenges aren't loaded yet. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>