| Age | Commit message (Expand) | Author |
| 2026-03-21 | feat(admin): add bulk restart page for all games | nsfisis |
| 2026-03-20 | fix(game): allow participants to view watch states after game finishes | nsfisis |
| 2026-03-20 | fix(tournament): restrict BYE auto-win to round 0 only | nsfisis |
| 2026-03-20 | 提出結果の取得を最新50件に制限 | Claude |
| 2026-02-28 | fix(game): normalize CRLF to LF in stdin and code before execution | nsfisis |
| 2026-02-28 | feat(admin): show play/watch links for non-public games | nsfisis |
| 2026-02-28 | feat(admin): allow admin users to view and submit code before game starts | nsfisis |
| 2026-02-27 | fix(docker): fix Go version of Dockerfile.tools | nsfisis |
| 2026-02-24 | fix(admin): show username in submissions and add testcase links to problems list | Claude |
| 2026-02-21 | refactor: rename stuttering exported types in game and tournament packages | nsfisis |
| 2026-02-21 | refactor(admin): separate business logic into game and tournament services | nsfisis |
| 2026-02-21 | refactor(api): separate business logic into game, tournament, session packages | nsfisis |
| 2026-02-21 | perf(game): compile whitespace regex once at package level | nsfisis |
| 2026-02-21 | fix: resolve gofmt formatting in handler_wrapper_gen.go | Claude |
| 2026-02-20 | feat: allow viewing/spectating games without login | Claude |
| 2026-02-20 | feat: add user submission history page | nsfisis |
| 2026-02-20 | style(backend): modernize Go syntax with range-over-int and type inference | nsfisis |
| 2026-02-20 | feat(admin): integrate asynqmon web UI for task queue monitoring | nsfisis |
| 2026-02-20 | feat(auth): add structured logging for login success and failure | nsfisis |
| 2026-02-20 | feat(admin): add bulk rejudge for game submissions | nsfisis |
| 2026-02-20 | feat(admin): add rejudge functionality for submissions | nsfisis |
| 2026-02-18 | feat: refactor tournament to generic DB-backed N-person bracket | nsfisis |
| 2026-02-17 | feat: rename iOSDC Japan 2025 references to PHPerKaigi 2026 | nsfisis |
| 2026-02-16 | test(backend): add unit tests for auth_middleware, fortee, processor, account... | nsfisis |
| 2026-02-16 | test(backend): add unit tests for admin handlers and taskqueue | nsfisis |
| 2026-02-16 | style(backend): fix lint errors in test files | nsfisis |
| 2026-02-16 | test(backend): add unit tests for auth, config, ratelimit, game, and api | nsfisis |
| 2026-02-15 | refactor(backend): introduce DI interfaces for testability | nsfisis |
| 2026-02-15 | fix(backend): replace panic() with proper error handling in runtime code | nsfisis |
| 2026-02-15 | fix(backend): resolve TODO items for transactions, validation, and error hand... | nsfisis |
| 2026-02-15 | refactor(log): migrate from log to log/slog for structured logging | nsfisis |
| 2026-02-15 | refactor(auth): replace JWT authentication with server-side sessions | nsfisis |
| 2026-02-14 | ci: add GitHub Actions CI workflow with just | nsfisis |
| 2026-02-14 | feat(openapi): generate OpenAPI specs from TypeSpec sources | nsfisis |
| 2026-02-14 | feat(backend): update dependencies | nsfisis |
| 2026-02-13 | feat(auth): store JWT in HTTP-only cookie instead of JS-accessible cookie | nsfisis |
| 2026-02-13 | feat(auth): add login rate limiting per IP | nsfisis |
| 2026-02-13 | refactor: rename module/package name | nsfisis |
| 2026-02-13 | chore: replace Makefile with justfile | nsfisis |
| 2025-09-19 | feat(backend): allow admin to access private games | nsfisis |
| 2025-09-17 | feat(backend,frontend): implement tournament page | nsfisis |
| 2025-09-17 | feat(backend): add admin pages for submissions | nsfisis |
| 2025-09-16 | feat(backend): prevent game from starting without testcases | nsfisis |
| 2025-09-08 | fix(backend): set unique code hash for each test case run | nsfisis |
| 2025-09-06 | feat(backend): increase timeout from 5 s to 30 s | nsfisis |
| 2025-09-06 | fix(backend): qualifying ranking table | nsfisis |
| 2025-09-06 | fix(backend): normalize line endings before comparing test results | nsfisis |
| 2025-09-06 | fix(*): support compile_error as worker result | nsfisis |
| 2025-09-06 | fix(backend): duplicate slashes in some URLs | nsfisis |
| 2025-09-06 | feat(backend): update qualifying ranking page | nsfisis |