| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2026-02-20 | style(backend): modernize Go syntax with range-over-int and type inference | nsfisis | |
| Use Go 1.22+ range-over-integer syntax, replace interface{} with any, and remove redundant type parameters. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | |||
| 2026-02-20 | feat(admin): add bulk rejudge for game submissions | nsfisis | |
| Extract common rejudge logic into a helper method and add two new endpoints: rejudge-latest (per-user latest only) and rejudge-all. This allows re-running submissions in bulk after testcase changes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | |||
| 2026-02-20 | feat(admin): add rejudge functionality for submissions | nsfisis | |
| Allow administrators to re-execute test cases for a specific submission from the submission detail page. This is useful after testcase fixes or worker issues. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | |||
| 2026-02-18 | feat: refactor tournament to generic DB-backed N-person bracket | nsfisis | |
| Replace hardcoded 6-person tournament with a generic single-elimination bracket system backed by new DB tables (tournaments, tournament_entries, tournament_matches). Includes admin CRUD, standard seeding algorithm, bye handling, and a CSS Grid bracket renderer on the frontend. Add comprehensive tests for backend API/admin handlers, seeding logic, and frontend bracket component. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | |||
| 2026-02-15 | refactor(backend): introduce DI interfaces for testability | nsfisis | |
| Replace concrete *db.Queries and *pgxpool.Pool dependencies with db.Querier and db.TxManager interfaces across all handlers, game hub, and auth. This enables unit testing with mocks. - Enable sqlc emit_interface to generate Querier interface - Add TxManager abstraction to encapsulate transactions - Convert auth package-level functions to Authenticator struct - Add TaskQueueInterface/TaskWorkerInterface for game.Hub - Add initial unit tests for game logic and API handlers Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | |||
| 2026-02-15 | fix(backend): resolve TODO items for transactions, validation, and error ↵ | nsfisis | |
| handling - Wrap multi-step DB operations in transactions (signup, submit, game edit, task result processing) - Add game running checks to PostGamePlayCode and PostGamePlaySubmit - Hide ranking code when game is not yet finished - Replace silenced errors in processTaskResults with slog.Error logging - Add pgxpool.Pool to Handler/Hub structs for transaction support Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | |||
| 2026-02-15 | refactor(log): migrate from log to log/slog for structured logging | nsfisis | |
| Replace all usages of the standard log package with log/slog across backend and swift worker. Configure Echo's request logger to emit structured log attributes via slog instead of the default format. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | |||
| 2026-02-15 | refactor(auth): replace JWT authentication with server-side sessions | nsfisis | |
| Migrate from stateless JWT tokens to server-side session management backed by PostgreSQL. Sessions are hashed with SHA-256 before storage, cleaned up periodically, and invalidated on logout. This removes the need for JWT_SECRET/COOKIE_SECRET environment variables and the golang-jwt dependency. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | |||
| 2026-02-13 | refactor: rename module/package name | 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-06 | feat(backend): update qualifying ranking page | nsfisis | |
| 2025-09-06 | feat(backend): restore /admin/fix | nsfisis | |
| 2025-09-06 | feat(backend): add admin pages for testcases | nsfisis | |
| 2025-09-06 | feat(backend): add admin page for game creation | nsfisis | |
| 2025-09-06 | feat(backend): add admin page for problems | nsfisis | |
| 2025-08-17 | feat: update "PHPerKaigi" to "iOSDC Japan" | nsfisis | |
| 2025-08-14 | feat(backend,frontend): Replace hard-coded base path with environment variable | nsfisis | |
| 2025-04-02 | fix(backend): fix paths | nsfisis | |
| 2025-04-02 | feat(backend): add admin tool to fix submission status | nsfisis | |
| 2025-03-21 | fix(backend): fix various admin features | nsfisis | |
| 2025-03-20 | fix(backend): fix online qualifying ranking | nsfisis | |
| 2025-03-20 | feat(backend): add /admin/online-qualifying-ranking | nsfisis | |
| 2025-03-17 | refactor(backend): remove unused field | nsfisis | |
| 2025-03-15 | feat(backen): allow admin to edit main players | nsfisis | |
| 2025-03-12 | feat(backend): implement user edit page | nsfisis | |
| 2025-03-12 | feat(backend): change is_public input to checkbox in game edit page | nsfisis | |
| 2025-03-12 | fix(backend): treat started_at of game edit page as time in JST | nsfisis | |
| 2025-03-11 | feat: show user label | nsfisis | |
| 2025-03-08 | game start button | nsfisis | |
| 2025-03-08 | websocket to polling | nsfisis | |
| 2025-03-04 | rm audio feature | nsfisis | |
| 2025-03-04 | change base path | nsfisis | |
| 2025-03-04 | update go package names | nsfisis | |
| 2024-08-21 | feat(backend): add /admin/audio page | nsfisis | |
| 2024-08-19 | refactor(backend): do not hard-code base path | nsfisis | |
| 2024-08-17 | feat(backend): fetch user icon from fortee | nsfisis | |
| 2024-08-12 | feat: show left time in play page | nsfisis | |
| 2024-08-11 | feat: simplify starting procedure | nsfisis | |
| 2024-08-11 | feat(backend): make `games.problem_id` non-null | nsfisis | |
| 2024-08-10 | feat: prepend base path | nsfisis | |
| 2024-08-08 | fix(backend): fix admin game edit page | nsfisis | |
| 2024-08-08 | feat(backend/worker): enable `revive` in `golangci-lint` | nsfisis | |
