Commit Graph

  • dc9b5efb8f Add a replay and fuzz harness for the tournament bracket engine and fix the bracket bugs it found main Kalle 2026-11-12 20:53:37 +02:00
  • 5fd274d9e2 Fix "Tout les" to "Tous les" in the fr-EU rank filter and tournaments filter translations Kalle 2026-11-12 20:35:47 +02:00
  • a6e98a3180 Fix organizer adding a queued solo player to a looking team pulling the team out of the tournament LFG queue Kalle 2026-11-12 19:19:17 +02:00
  • 9e02d3dfc8 Match series and search names ignoring case of non-ASCII letters so series named like "Été Cup" list their events Kalle 2026-11-12 20:28:49 +02:00
  • b6d09693dc Skip building team-picked map lists for round robin matches still waiting on the previous round Kalle 2026-11-12 20:32:56 +02:00
  • 4f8389b88d Add a way for a team owner to transfer ownership to another member Kalle 2026-11-12 20:32:34 +02:00
  • a5b1b59a74 Delete suggestions of users the leaderboard puts in the tier before the voting so failing it demotes them instead of removing them from Plus Kalle 2026-11-12 19:11:51 +02:00
  • b912e8bdec Show comp image roles next to their sub and special icons, attach the slot stripe to the row edge and rework the weapon roles Kalle 2026-11-12 19:10:26 +02:00
  • bf1bc744ac Fix association takeover text to say the starred member with the oldest sendou.ink account becomes the new admin Kalle 2026-11-12 17:15:46 +02:00
  • 66233cd573 Show a name taken field error when renaming an organization to a name another organization already uses Kalle 2026-11-12 17:15:56 +02:00
  • 494bda4fe2 Let a player whose team didn't check in join another team as a sub after the tournament has started Kalle 2026-11-11 20:32:06 +02:00
  • 90763c0fff Fix deleting an unstarted tournament failing when a scrim used its maps by setting ScrimMapList.tournamentId to null on delete Kalle 2026-11-11 20:16:25 +02:00
  • 3972062bea Lazy-load the trophy renderer and Markdown on user profiles and the trophy grid on organization pages Kalle 2026-11-11 20:08:15 +02:00
  • 6ad31cb650 Put the can-this-user-join-a-tournament-team checks behind one TeamEligibility helper Kalle 2026-11-11 17:23:06 +02:00
  • 5a85fb63c7 Resolve the weapon builds tab layout data in one weaponBuildsLayoutData helper shared by the builds, stats and popular loaders Kalle 2026-11-11 17:02:54 +02:00
  • 756e7da884 Decide whether a user may join the voice room in one VoiceJoin.joinBlock helper instead of three drifted copies in the room route Kalle 2026-11-11 17:19:09 +02:00
  • 74f97a74ed Use the engine's isSetOverByScore for pick ban turns and delete the duplicate isSetOverByResults Kalle 2026-11-11 17:25:33 +02:00
  • 60fc808124 Build the league scheduling phase of a match in one place with LeagueScheduling.phaseOfMatch and share the board-open rule through isBoardOpen Kalle 2026-11-11 17:21:04 +02:00
  • 343739e190 Fix the check-in toast saying "Not an organizer" and remove dead null checks and inlined elimination type checks in tournament-bracket Kalle 2026-11-11 17:20:29 +02:00
  • 1e670efee5 Remove Scrim.getStartTime and read the booked start time from post.startsAt, which the repository mapper already resolves Kalle 2026-11-11 16:57:53 +02:00
  • a969eb99e0 Use GROUP_EXPIRES_IN_MS as the only SendouQ group expiry, with the dev and e2e override, and drop SECONDS_TILL_STALE Kalle 2026-11-11 16:37:15 +02:00
  • 44207fc2be Experiment svelte-vertical-slice Kalle 2026-11-12 19:55:43 +02:00
  • 71c273029a Bump the minor-and-patch group across 1 directory with 11 updates (#3493) dependabot[bot] 2026-11-12 19:16:38 +02:00
  • 735ef1171b Add mutation testing, fix findings (#3494) Kalle 2026-11-12 19:16:03 +02:00
  • 7b4fd23ff4 Remove SendouQ options with a single value: groupAfterMorph's liker, insertFromPrevious's PREPARING default and the test-only currentViewByUserId Kalle 2026-11-10 21:31:59 +02:00
  • 228acd0f33 Remove CLAUDE.md that only imported AGENTS.md and point the code review skill at AGENTS.md Kalle 2026-11-10 21:05:12 +02:00
  • d46b85a852 Remove the dev-only scanner fixtures page and its route Kalle 2026-11-10 21:04:58 +02:00
  • 82eab6da8d Use one Tournament.teamsOfStartingBracket helper for the teams of a starting bracket so invalid indexes fall back to bracket 0 everywhere Kalle 2026-11-10 21:05:32 +02:00
  • b3fdc64373 Remove dead file, command and stack references from the agent skills and README Kalle 2026-11-10 21:06:20 +02:00
  • 8bb0c326ef Build the feed sources texts from the real feed thresholds and fix the win streak and set milestone numbers Kalle 2026-11-10 20:56:28 +02:00
  • b49be08ecc Make Tournament.teamById use seedsByStartingBracket instead of its own seed counting loop Kalle 2026-11-10 20:55:08 +02:00
  • 608e4183cd Share CURRENT_SEASON and the weapon skip rules between the monthly data scripts Kalle 2026-11-10 21:03:27 +02:00
  • 0806015838 Share one replay code diff between the scanner timeline and scanner-ingest's same-game check Kalle 2026-11-10 20:40:07 +02:00
  • 3d8ac86bcb Drop the two joins and five unread columns from FeedRepository.findTournamentMatchesByTeamId Kalle 2026-11-10 20:34:28 +02:00
  • 6910bfb8a5 Use GAME_NAMESPACES as the one list of generated translation namespaces for the app, the translate page and the progress scripts Kalle 2026-11-10 20:39:57 +02:00
  • 644ff09ec4 Delete unused MapPool members and make dbList an alias of stageModePairs Kalle 2026-11-10 20:21:09 +02:00
  • 70b611c83b Remove the write-only modeAssumed flag and the duplicate SZ default from the scanner VoD upload prefill Kalle 2026-11-10 20:19:34 +02:00
  • 4573e13843 Export one supporter-gated customTheme select and reuse the supporter tier threshold instead of hard-coded copies Kalle 2026-11-10 20:40:49 +02:00
  • c4fde73af9 Collapse the Video view and UnvalidatedVideo table into one Video table and drop unused isValidated, eventId and teamSize from VodRepository.save Kalle 2026-11-10 19:38:03 +02:00
  • 7a81f94e2c Collapse the plus suggestion tier checks that were stated two and three times Kalle 2026-11-10 19:59:25 +02:00
  • 417cc39b9a Remove the never-used team tier mode from skillTierIntervals and the Leviathan-for-teams sentence on the tiers page Kalle 2026-11-10 19:23:22 +02:00
  • faeeb8b960 Add one tierOfOrdinal helper for the three places that look up a SendouQ tier Kalle 2026-11-10 19:59:20 +02:00
  • 628c84dec6 Await repository calls one after another instead of in Promise.all and make the lint rule flag them Kalle 2026-11-10 18:52:58 +02:00
  • 2d742c24d0 Pass the loaded tournament through the tournament LFG loader and drop its unread tournamentId and weapons JSON.parse Kalle 2026-11-10 18:12:52 +02:00
  • 211dda28e5 Share one Today/Tomorrow relative day formatter between the events list, the sidebar and the stream list Kalle 2026-11-10 18:09:13 +02:00
  • 97b7990d70 Use userByIdentifierQuery in the public API user route so it also accepts custom URLs Kalle 2026-11-10 18:09:07 +02:00
  • 35032e317b Delete props and options of shared components and hooks that no caller passes Kalle 2026-11-10 18:11:03 +02:00
  • c3ec4c52cb Delete unused scripts files (delete-db-files.mjs, join-order.json, dicts/langs) and the unused dedent export Kalle 2026-11-10 17:29:53 +02:00
  • d309cd8bbc Rename the tournament team count subqueries to registered and active and reuse them instead of duplicating them Kalle 2026-11-10 18:07:32 +02:00
  • 1c85493c89 Remove unused props and an always-true ternary from BadgesSelector and BadgeDisplay Kalle 2026-11-10 17:31:10 +02:00
  • 73bd14c566 Speed up finalizing big ranked tournaments by aggregating season stats in keyed maps and inserting skills in chunks Kalle 2026-11-10 18:09:09 +02:00
  • 9881c8915b Load tournament card trophy 3D models on demand when the prizes popover opens instead of sending them with the calendar and front page Kalle 2026-11-10 18:05:46 +02:00
  • ca8be2f6e3 Skip rewriting unchanged users in the hourly Patreon sync Kalle 2026-11-10 17:22:17 +02:00
  • b129057d80 Add the Explosher explosion circle and fix Bloblobber range in the comp analyzer Kalle 2026-11-10 17:13:29 +02:00
  • a578eab6cf Find Anarchy Series games and read more weapons in scanned VoDs with a streamer overlay Kalle 2026-11-10 17:13:29 +02:00
  • 08325508d9 Add an admin tool to claim a placeholder player for a real user and move its tournament history over epic/lan-tournaments Kalle 2026-11-10 21:07:26 +02:00
  • 99a9793acd Add placeholder players TOs can put on LAN tournament teams without a sendou.ink account Kalle 2026-11-10 17:13:24 +02:00
  • 4f10f60722 Add a pool captain staff role for LAN tournaments that can report and undo scores Kalle 2026-11-09 17:01:49 +02:00
  • bacd96e185 Add a LAN map of upcoming events with venues to the calendar Kalle 2026-11-08 16:04:30 +02:00
  • 508bd48ba9 Show venue info on LAN event pages and a LAN chip on calendar cards, and count a venue as the LAN tag in filters Kalle 2026-11-08 12:04:35 +02:00
  • 630241104a Enter and show LAN event times in the venue's timezone Kalle 2026-11-08 07:22:10 +02:00
  • 29d8e028c1 Add venue data model and LAN venue fields to the tournament form Kalle 2026-11-07 20:43:36 +02:00
  • 70a0f3bb71 Use as few random maps as possible in team picked map lists while keeping picks alternating and equal Kalle 2026-11-09 16:52:54 +02:00
  • 01ec7554d7 Show the division a result came from on the team results page for multi-division tournaments Kalle 2026-11-09 16:22:09 +02:00
  • 8900020de1 Add Tournament.bracketCheckInStartsAt and use it for all follow-up bracket check-in window checks Kalle 2026-11-08 15:32:44 +02:00
  • f27d69ae64 Use requestStarts for the scrim request time picker and the server check Kalle 2026-11-08 20:05:54 +02:00
  • 8ff3e499a8 Route every browser file download through utils/download.ts and put the BOM in downloadCsv Kalle 2026-11-08 15:32:50 +02:00
  • 7ef8bc6dba Keep the tournament link of badge wins when a badge's owners are edited Kalle 2026-11-08 16:27:36 +02:00
  • 74ce542593 Reject changing divisions after the tournament starts and keep other brackets' teams and prepared maps when editing the progression Kalle 2026-11-09 17:00:13 +02:00
  • be21991361 Replace the 2022 Section with SendouSection and delete it Kalle 2026-11-08 15:16:47 +02:00
  • 433d9ad5fa Share one can-report-score check between tournament score report, undo and the match page Kalle 2026-11-08 14:38:28 +02:00
  • b1698b552f Replace LobbyRepository's three single-use edit writes with one transactional edit Kalle 2026-11-08 15:13:06 +02:00
  • a005a78da2 Fix URL broadcast Kalle 2026-11-08 15:56:10 +02:00
  • 405b60ba89 Use the cached tournament in the public bracket, standings and teams API routes Kalle 2026-11-08 14:29:23 +02:00
  • e6b8539d83 Retry the SendouQ ready check revalidation at most every 5 seconds when the device clock runs ahead Kalle 2026-11-08 14:30:23 +02:00
  • be6281243b Use Series.findByEventName everywhere a series is matched by event name Kalle 2026-11-08 14:37:54 +02:00
  • db5157f22d Build the lobby viewer's action gates once for the lobby page and its action Kalle 2026-11-08 14:36:09 +02:00
  • 873573b98e Make all toast helpers throw so a dropped toast can't be a silent no-op Kalle 2026-11-08 14:20:11 +02:00
  • 5c75dfbd41 Only count saved tournaments that haven't started towards the saved limit Kalle 2026-11-08 12:14:42 +02:00
  • 1c2b73cb45 Derive the analyzer and object damage calculator's current patch from PATCHES Kalle 2026-11-08 12:17:30 +02:00
  • a8396e4a04 Build the SendouQ tier ordering once and rename the Leviathan-less tier list Kalle 2026-11-08 12:11:56 +02:00
  • e8ca476d90 Replace the never-run videoSchema validator with a plain VideoBeingAdded type Kalle 2026-11-08 12:10:59 +02:00
  • dba6601fed Drop unneeded as any casts on translation keys so they are type-checked again Kalle 2026-11-08 12:10:45 +02:00
  • 8da0eef293 Add the file extension to the unit config import in the isolated vitest config Kalle 2026-11-08 12:07:45 +02:00
  • f2991a05f2 Add Tournament.isMatchLockedForCast and use it for all cast-locked match checks Kalle 2026-11-08 12:37:30 +02:00
  • b0f8c50ddc Skip the root loader on broadcast and event stream revalidations Kalle 2026-11-08 12:07:13 +02:00
  • 52fc4ebf72 Guard the admin index and seeds actions once per route instead of in every branch Kalle 2026-11-08 10:40:05 +02:00
  • 984d3f22aa Use one maxTeamCount helper for the team limit and isSupporter for supporter checks Kalle 2026-11-08 10:31:19 +02:00
  • 1b922ab34a Share the attachable badges rule between the calendar loader, calendar action and org edit Kalle 2026-11-08 10:40:14 +02:00
  • 2e4cd54dbd Reuse the post-write tournament build and keep rosters cached on set-ending score reports Kalle 2026-11-08 10:18:11 +02:00
  • 9a747cd5d8 Stop SendouQ quick add from pulling in friends who are in a lobby or can't join the queue yet Kalle 2026-11-08 07:50:42 +02:00
  • f227ce1c3c Raise the timeout of the heavy audio tests in the music removal test file Kalle 2026-11-07 20:00:04 +02:00
  • 5588eae840 Document that routes with a loader and child routes should export shouldRevalidate Kalle 2026-11-07 18:41:39 +02:00
  • a43bcaf4ba A lot of progress flattened Kalle 2026-11-08 12:18:55 +02:00
  • 2e8a24af40 Add vignette Kalle 2026-11-02 20:59:27 +02:00
  • a9666122b6 Rework colors Kalle 2026-11-02 20:42:49 +02:00
  • 31e97fdd6f Rework styles Kalle 2026-11-02 19:57:22 +02:00
  • 56f7797656 Standardize Kalle 2026-11-02 19:27:07 +02:00
  • 854ce0a82e Auto take Kalle 2026-11-02 19:22:53 +02:00
  • 5cb15e494d Tweak Kalle 2026-11-01 17:56:58 +02:00