| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2026-02-28 | fix(game): normalize CRLF to LF in stdin and code before execution | nsfisis | |
| DB stores stdin/code with CRLF intact, but workers expect LF. Add normalizeCRLF helper and apply it to code and stdin in EnqueueTestTasks. Refactor normalizeTestcaseResultOutput to reuse the same helper. | |||
| 2026-02-21 | perf(game): compile whitespace regex once at package level | nsfisis | |
| Move regexp.MustCompile out of CalcCodeSize to avoid recompiling on every call. 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): replace panic() with proper error handling in runtime code | nsfisis | |
| auth/auth.go: return error instead of panicking on data inconsistency. game/hub.go: log unexpected task result types instead of panicking. 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-13 | refactor: rename module/package name | nsfisis | |
| 2025-09-06 | fix(backend): normalize line endings before comparing test results | nsfisis | |
| 2025-09-05 | feat(worker-swift): compile and run in one request | nsfisis | |
| 2025-09-05 | feat(backend): support swift language | nsfisis | |
| 2025-08-17 | feat: update "PHPerKaigi" to "iOSDC Japan" | nsfisis | |
| 2025-03-08 | trim php tag before execution | nsfisis | |
| 2025-03-08 | websocket to polling | nsfisis | |
| 2025-03-04 | update go package names | nsfisis | |
| 2024-08-18 | feat(backend): do now show error message except for compile error | nsfisis | |
| 2024-08-18 | feat(backend): do now show success message | nsfisis | |
| 2024-08-18 | refactor(backend): rename func name for consistency | nsfisis | |
| 2024-08-12 | feat: show left time in play page | nsfisis | |
| 2024-08-12 | feat(backend): change calculation of code size | nsfisis | |
| 2024-08-12 | refactor(backend): refactor sending `execresult` and `submitresult` messages | nsfisis | |
| 2024-08-12 | feat: add `submitresult` message | nsfisis | |
| 2024-08-12 | feat: do not show preliminary score | nsfisis | |
| 2024-08-11 | feat: simplify starting procedure | nsfisis | |
| 2024-08-11 | feat(backend): remove `prepare` message's payload | nsfisis | |
| 2024-08-11 | feat(backend): make `games.problem_id` non-null | nsfisis | |
| 2024-08-10 | feat: implement watch page | nsfisis | |
| 2024-08-08 | feat(backend/worker): calculate code hash in api-server | nsfisis | |
| 2024-08-08 | fix(backend): fix an issue where game type is not set | nsfisis | |
| 2024-08-08 | feat(backend/worker): enable `revive` in `golangci-lint` | nsfisis | |
| 2024-08-08 | feat(backend): aggregate testcase results | nsfisis | |
| 2024-08-08 | feat(backend): implement processTaskResults() partially | nsfisis | |
| 2024-08-08 | refactor(backend): add Queue.Enqueue*() variants | nsfisis | |
| 2024-08-08 | feat(backend): split task into smaller task types | nsfisis | |
| 2024-08-08 | refactor: rename task result's "result" to "status" for consistency | nsfisis | |
| 2024-08-08 | feat(backend): rename testcase_executions to testcase_results | nsfisis | |
| 2024-08-08 | feat(backend): separate game hub worker channel | nsfisis | |
| * processing incoming WebSocket messages * processing task results | |||
| 2024-08-08 | feat(backend): fix an issue where testcase execution results are sent to all ↵ | nsfisis | |
| players | |||
| 2024-08-08 | refactor(backend): move ownership of channel to send task results | nsfisis | |
| 2024-08-05 | fix(backend): fix code submission | nsfisis | |
| 2024-08-05 | feat: show execution result in play page | nsfisis | |
| 2024-08-05 | feat(backend): enqueue exec task when players submit their code | nsfisis | |
| 2024-08-05 | feat: implement task queue | nsfisis | |
| 2024-08-05 | feat(backend): wait for all players to enter | nsfisis | |
| 2024-08-03 | feat: partially implement submit action | nsfisis | |
| 2024-08-01 | refactor(backend): `Id` to `ID` in oapi-codegen | nsfisis | |
| 2024-08-01 | feat: change procedure of game starting | nsfisis | |
| 2024-07-31 | feat: "iOSDC 2024" to "iOSDC Japan 2024" | nsfisis | |
| 2024-07-31 | feat(backend): enable `nullable-type` option of `oapi-codegen` for strict ↵ | nsfisis | |
| handling of nullable OpenAPI types | |||
| 2024-07-29 | fix(backend): fix an issue where game hub is closed unexpectedly | nsfisis | |
| 2024-07-29 | refactor(backend) | nsfisis | |
