| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2026-02-14 | feat(openapi): generate OpenAPI specs from TypeSpec sources | nsfisis | |
| Migrate hand-written OpenAPI YAML to TypeSpec (.tsp) source files. TypeSpec compiles to OpenAPI 3.0 YAML, enabling type-safe API definitions. - Add typespec/ directory with api-server and fortee definitions - Integrate TypeSpec build into `just gen` and `just build` pipelines - Update backend handler code to match new generated type names (inlined error responses, separate GameType/ProblemLanguage enums) - Regenerate frontend TypeScript types from new OpenAPI output Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | |||
| 2026-02-13 | feat(auth): store JWT in HTTP-only cookie instead of JS-accessible cookie | nsfisis | |
| Prevent XSS-based token theft by making the JWT inaccessible to JavaScript. The backend now sets/clears the cookie via Set-Cookie headers, and the frontend retrieves user info from /api/me instead of decoding the JWT directly. - Add JWTCookieMiddleware to parse cookie and inject claims into context - Add /me and /logout endpoints to OpenAPI spec and handlers - Update PostLogin to return user object + Set-Cookie header - Replace Authorization header auth with cookie-based auth throughout - Rewrite frontend auth to use /api/me instead of jwt-decode - Remove jwt-decode dependency - Configure CORS with credentials for local dev Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | |||
| 2026-02-13 | refactor: rename module/package name | 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-06 | feat(backend): add admin page for problems | nsfisis | |
| 2025-09-05 | feat(backend): support swift language | nsfisis | |
| 2025-08-17 | feat: update "PHPerKaigi" to "iOSDC Japan" | nsfisis | |
| 2025-03-29 | feat: show code in ranking page | nsfisis | |
| 2025-03-21 | feat(frontend): do not transit to finished page | nsfisis | |
| 2025-03-21 | fix(frontend): fix submission status flickering | nsfisis | |
| 2025-03-21 | feat(frontend): show game result in 1v1 watch | nsfisis | |
| 2025-03-20 | feat: show submission date on ranking | nsfisis | |
| 2025-03-15 | feat(backend): allow admin to watch themselves 1v1 page | nsfisis | |
| 2025-03-11 | refactor(backend): simplify conversion from *T to Nullable[T] | nsfisis | |
| 2025-03-11 | feat: show user label | nsfisis | |
| 2025-03-08 | fix | nsfisis | |
| 2025-03-08 | fix | nsfisis | |
| 2025-03-08 | websocket to polling | nsfisis | |
| 2025-03-04 | rm registration token | nsfisis | |
| 2025-03-04 | update go package names | nsfisis | |
| 2024-08-12 | feat: show left time in play page | nsfisis | |
| 2024-08-12 | feat: add `submitresult` message | nsfisis | |
| 2024-08-12 | refactor: rename verification_steps for consistant naming | nsfisis | |
| 2024-08-11 | feat(backend): always include `problem` property in `Game` object in APIs | nsfisis | |
| 2024-08-11 | feat(backend): make `games.problem_id` non-null | nsfisis | |
| 2024-08-11 | feat(frontend): improve error handling of login form | nsfisis | |
| 2024-08-10 | feat(backend): include `verification_steps` in `Game` object | nsfisis | |
| 2024-08-10 | feat(backend): include `players` in `Game` object | nsfisis | |
| 2024-08-09 | feat: support authentication via fortee | nsfisis | |
| 2024-08-08 | feat(backend/worker): enable `revive` in `golangci-lint` | nsfisis | |
