| Age | Commit message (Collapse) | Author |
|
Add validation to reject PHP code containing eval() before execution.
Update the problem description to inform participants about this restriction.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
終了したゲームを一括で multiplayer に変更し、main player を
全削除して再スタートするための管理画面を /admin/restart に追加。
観戦者参加時のカンニング防止が目的。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
Previously GetWatchLatestStates returned ErrForbidden for participants
regardless of game state. Now checks whether the game has finished and
permits access once complete. Also fixes config test env var cleanup.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
In later rounds, a nil player means the opponent is TBD (e.g., waiting
for a semifinal winner), not a BYE. Previously these were incorrectly
marked as BYE wins.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
Limit submissions query to 50 results for performance
|
|
プレイ画面の提出結果一覧が際限なく増えるのを防ぐため、
GetSubmissionsByGameIDAndUserID クエリに LIMIT 50 を追加。
https://claude.ai/code/session_015rm8yZD4va9hRH429u9N6q
|
|
- Use brand-600 color for winner lines instead of pink-700
- Unify border width to 2px across all bracket lines
- Fix vertical lines changing color midway by using child match
winner color for leg segments
- Add vertical stem above final round connector
- Increase vertical line height (3x) for better visual spacing
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
positions
Replace grid-based horizontal line positioning with flex + fixed 25%
width approach. The grid calculation broke at colSpan=2 because
Math.floor(1/2)=0 couldn't express half-column offsets. Also remove
seed number display from player cards.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
Fix tournament bracket connector positioning and span calculations
|
|
The horizontal connector lines were spanning the full width of each connector
cell (columns 1 to colSpan), but they should only span between the centers of
the left and right halves where the vertical legs are positioned.
For example, with colSpan=8, the line was drawn across all 8 columns instead
of only columns 3-6 (between the two vertical leg positions at columns 2.5
and 6.5).
https://claude.ai/code/session_01JSWpL1UdZ2r6ppSmKJJXMb
|
|
Enhance tournament bracket visualization with colored connectors
|
|
The bracket connectors had two issues:
1. The center vertical line from each connector went to the wrong position,
not aligning with child connectors below
2. No vertical lines connected round-0 connectors to player cards
Redesign the Connector component to draw:
- A center stem going UP (connecting to parent round)
- A horizontal line (connecting left/right branches)
- Two legs going DOWN at half-center positions (connecting to children)
Also add vertical stem lines above each player card to bridge the gap
between round-0 connector legs and the player boxes.
https://claude.ai/code/session_01NKA6A2uWXJBRknZZcwMGCn
|
|
Remove MatchCell component from TournamentPage
|
|
MatchCell displayed player names redundantly alongside PlayerCards.
Now tournament progression is shown only through connector line colors:
pink for winner, gray for loser, black for undecided.
https://claude.ai/code/session_01PoJoubE1hzxHhxMYFKzReb
|
|
Update biome.json indentStyle from "tab" to "space" and reformat all
files in both workspaces.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Submission history is now shown inline on the play screen,
making the dedicated /golf/:gameId/submissions page redundant.
|
|
|
|
Replace the placeholder submission status section with a full submission
history table using the existing getGamePlaySubmissions API. Extract
shared DataTable, DataTableCell, and formatUnixTimestamp from
RankingTable into a reusable Gaming/DataTable component.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
layout shift
Show plaintext with Shiki-compatible line structure (.shiki > code > .line)
from the start, so CSS line-number counters apply immediately. This prevents
the popover from jittering when Shiki replaces the content. If Shiki fails,
the plaintext with line numbers remains as a natural fallback.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
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.
|
|
Admin games list page already shows all games including non-public
ones, but play/watch links were hidden behind an IsPublic check.
Since this is an admin-only page, always show the links.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Admin users can now access the gaming UI (problem description, code
editor, submit button) even when a game has not started yet. Regular
users still see the waiting screen as before.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Add watch page link to golf problem preview
|
|
started_at の条件分岐を削除し、対戦・観戦ページへのリンクを
常に表示するようにした。
https://claude.ai/code/session_019qZoTGJ1R2vnAzxZLiSEhx
|
|
対戦ページへのリンクと並べて観戦ページへのリンクを表示するようにした。
ゲーム開始後に両方のリンクが横並びで表示される。
https://claude.ai/code/session_019qZoTGJ1R2vnAzxZLiSEhx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Display usernames in submission lists and details
|
|
Expand developer guide with comprehensive setup and architecture docs
|
|
Submissions list and detail pages now display the username alongside the
user ID instead of showing only a numeric ID. The problems list page now
includes a direct link to each problem's testcases for easier navigation.
https://claude.ai/code/session_01JF5ZmGAQ4zNbhV5DM729Fw
|
|
The existing DEV.md was minimal, covering only a brief architecture
list, dependencies, and basic setup steps. Rewrite it as a full
developer guide covering architecture details, project structure,
all just commands, code generation workflow, testing/linting,
database management, CI pipeline, and environment variables.
https://claude.ai/code/session_01UVdjU4rCYUnZNt6fFECwAe
|
|
Fix golangci-lint revive warnings by removing package name prefixes:
- game.GameHubInterface → game.HubInterface
- game.GameDetail → game.Detail
- tournament.TournamentEntry → tournament.Entry
- tournament.TournamentMatch → tournament.Match
- tournament.TournamentBracket → tournament.Bracket
- tournament.TournamentEditData → tournament.EditData
Also fix gofmt alignment in api/convert.go and gosimple S1016 in
game/service.go.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Move transaction handling, rejudge workflow, tournament bracket creation,
and data repair logic from admin handler into game.Service and
tournament.Service, mirroring the earlier api package separation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Extract business logic from api/handler.go into dedicated service packages:
- session: context helpers (resolves admin → api import dependency)
- game: game state, code submission, ranking, watch logic
- tournament: bracket construction and seed ordering
- api/convert.go: domain → API type conversion functions
api/handler.go is now a thin adapter that delegates to services and
maps domain errors to HTTP status codes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Move regexp.MustCompile out of CalcCodeSize to avoid recompiling
on every call.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Allow unauthenticated users to view games and watch matches
|
|
https://claude.ai/code/session_019j9tNcnLsLz15e1qtbmeqe
|
|
https://claude.ai/code/session_019j9tNcnLsLz15e1qtbmeqe
|
|
Make watch, ranking, game list, and tournament endpoints accessible
without authentication. Unauthenticated users can browse games and
spectate from the index page, while play/submit/preview still require
login.
https://claude.ai/code/session_019j9tNcnLsLz15e1qtbmeqe
|
|
Allow participants to view problem descriptions and sample code
before a game starts. Dashboard shows a preview link only for
games that haven't started yet.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Allow users to view their own past submissions (code, size, status,
timestamp) for each game. Adds API endpoint, backend handler, SQL query,
and frontend page with expandable code display.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
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>
|
|
Mount asynqmon HTTP handler under admin/queue with existing session
cookie and admin middleware authentication.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|