| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2026-02-17 | test(frontend): add comprehensive tests for components, hooks, and state | nsfisis | |
| Add 84 new tests covering Jotai atoms (play/watch state transitions, game timing, score management), utility functions (calcCodeSize, checkGameResultKind), UI components (SubmitStatusLabel, LeftTime, SubmitButton, InputText, BorderedContainerWithCaption, FoldableBorderedContainerWithCaption, UserIcon, PlayerNameAndIcon), and the usePageTitle hook. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | |||
| 2026-02-16 | test(frontend): add Vitest test infrastructure and sample tests | nsfisis | |
| Set up Vitest with @testing-library/react and jsdom for frontend unit testing. Add sample tests for config.ts and BorderedContainer. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | |||
| 2026-02-14 | feat(frontend): update dependencies | nsfisis | |
| 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(frontend): replace React Router BFF with Wouter SPA | nsfisis | |
| Remove React Router 7 SSR/BFF architecture (server-side loaders, actions, sessions, remix-auth) and replace with a client-side SPA using Wouter for routing and cookie-based JWT auth. - Replace reactRouter() Vite plugin with @vitejs/plugin-react - Add index.html + app/main.tsx as SPA entry points - Add Wouter routing with auth guards (ProtectedRoute/PublicOnlyRoute) - Add client-side auth (app/auth.ts) and useAuth hook - Migrate all route files to app/pages/ with client-side data fetching - Update NavigateLink and GolfPlayAppGaming to use Wouter Link - Remove .server/, routes/, root.tsx, react-router.config.ts - Clean up tsconfig.json (remove .react-router references) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | |||
| 2025-09-17 | feat(backend,frontend): implement tournament page | nsfisis | |
| 2025-09-17 | feat(frontend): apply effect for high score | nsfisis | |
| 2025-09-17 | feat(frontend): do not show copy button if code is empty | nsfisis | |
| 2025-09-16 | feat(frontend): add copy button to code block | nsfisis | |
| 2025-09-06 | fix(frontend): environment notice for swift | nsfisis | |
| 2025-09-06 | fix(*): support compile_error as worker result | nsfisis | |
| 2025-09-05 | feat(frontend): support swift language | 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-03-31 | fix(frontend): make ranking table scrollable | nsfisis | |
| 2025-03-29 | feat: show code in ranking page | nsfisis | |
| 2025-03-21 | fix | nsfisis | |
| 2025-03-21 | wip | nsfisis | |
| 2025-03-21 | fix(frontend): refresh jwt if expired | 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): support mobile layout | nsfisis | |
| 2025-03-21 | feat(frontend): make main players optional | nsfisis | |
| 2025-03-21 | feat(frontend): show game result in 1v1 watch | nsfisis | |
| 2025-03-21 | refactor(frontend): api client | nsfisis | |
| 2025-03-21 | feat(frontend): show ranking in 1v1 watch page | nsfisis | |
| 2025-03-21 | feat(frontend): make container foldable | nsfisis | |
| 2025-03-20 | fix(frontend): fix state corruption | nsfisis | |
| 2025-03-20 | feat(frontend): tweak score bar | nsfisis | |
| 2025-03-20 | feat(frontend): improve watch page layout | nsfisis | |
| 2025-03-20 | fix(frontend): prevent flickering | nsfisis | |
| 2025-03-20 | feat(frontend): remove "player 1" or "player 2" labels | nsfisis | |
| 2025-03-20 | feat(frontend): improve navigate link style | nsfisis | |
| 2025-03-20 | refactor(frontend): TwoColumnLayout/ThreeColumnLayout | nsfisis | |
| 2025-03-20 | fix(frontend): align player name and icon center | nsfisis | |
| 2025-03-20 | feat: show submission date on ranking | nsfisis | |
| 2025-03-18 | feat(frontend): update player notice | nsfisis | |
| 2025-03-16 | fix(frontend): fix code size calculation | nsfisis | |
| 2025-03-16 | feat(frontend): current status | nsfisis | |
| 2025-03-16 | feat(frontend): add notice for player | nsfisis | |
| 2025-03-16 | feat(frontend): show the current code size | nsfisis | |
| 2025-03-16 | feat(frontend): add InlineCode component | nsfisis | |
| 2025-03-16 | feat(frontend): show non-highlighted code until syntax highlighting complete | nsfisis | |
| 2025-03-16 | feat(frontend): enhance ranking table design | nsfisis | |
| 2025-03-15 | refactor(feat): remove unnecessary component property | nsfisis | |
| 2025-03-15 | feat(frontend): update top page | nsfisis | |
| 2025-03-15 | feat(frontend): improve left time display | nsfisis | |
| 2025-03-15 | feat(frontend): show loaing screen | nsfisis | |
| 2025-03-15 | feat(frontend): show notice for players | nsfisis | |
| 2025-03-15 | feat(frontend): enhance score bar ratio | nsfisis | |
