Skip to content

fix: sidebar detail pages, rulebook-only assistant, SkiaSharp images and startup retry - #252

Merged
mregni merged 13 commits into
masterfrom
worktree-fix+review-bugs
Oct 9, 2026
Merged

mregni merged 13 commits into
masterfrom
worktree-fix+review-bugs

Conversation

@mregni

@mregni mregni commented Oct 9, 2026

Copy link
Copy Markdown
Owner

What

Follow-up to #246: UI fixes from testing, a sidebar layout for the game and player pages, the switch from ImageSharp to SkiaSharp, and a startup fix.

UI

  • The shared "Edit" label starts with a capital letter in every locale.
  • Player dropdowns (new session, game night host, loans, compare) show every player's avatar again, with an initial when there is no picture.
  • The rulebook assistant only lists games that have a rulebook (new GET /api/manual/games). It shows an empty state when there are none.
  • The game and player pages use BgtDetailLayout: a sidebar on lg and up, and on mobile the cards interleave via max-lg:order-*. No breakpoints were changed.
    • Game sidebar: compact facts card, top players and recent sessions as one-line lists. The in-collection fact shows only the date.
    • Statistic tiles line up.
  • Player achievements: a summary in the sidebar (count, progress, highest badge per type). The main column shows milestones with level pips, plus feats.

Images: ImageSharp → SkiaSharp

  • ImageSharp 3.1.12 has three HIGH CVEs with no 3.x patch. The fix, 4.x, needs a Six Labors licence key at build time.
  • SkiaSharp (MIT) needs no key. The behaviour is unchanged:
    • same 50 MP pixel cap
    • only the first frame is used
    • images are stretched to 512×512
    • output is WebP quality 80
  • TIFF, TGA, PBM and QOI uploads are now refused as unsupported formats.
  • The Dockerfile keeps only the musl libSkiaSharp for the target architecture. The portable publish ships every RID, about 476 MB.
  • The temporary .trivyignore.yaml from the commit before is deleted again. Renovate groups the SkiaSharp packages.

Docker / startup

  • Publish restores in locked mode instead of relying on the NuGet cache mount. This fixes NETSDK1064 when the cache was pruned.
  • The database wait loop now retries when EF wraps a transient error in an InvalidOperationException. Before, the app crashed on a cold start if Postgres was still starting. The bundled docker-compose was not affected because it waits for service_healthy.

How to test

  • dotnet test BoardGameTracker.Tests: 1983 tests pass, Release build with 0 warnings. New tests cover games with manuals, image identify/pixel-limit/not-an-image, the facts card, sidebar lists, achievement progress and select avatars.
  • Client: Vitest for the new components and hooks.
  • Container (amd64), run locally:
    • PNG, PNG with alpha and GIF uploads come back as 512×512 WebP.
    • A text file gets 400 error.image.unsupported-format.
    • Starting the app 10 s before Postgres logs two retries, then the app is healthy.
    • Trivy shows 0 HIGH/CRITICAL with no ignore file.

Checklist

  • PR title follows conventional commits (feat:, fix:, docs:, chore:, ...)
  • Backend changes have xUnit tests; frontend changes have Vitest tests where it makes sense
  • New or changed UI text exists in every folder under boardgametracker.client/public/locales/
  • Changed a <PackageReference>? packages.lock.json files are updated (dotnet restore)
  • User-facing behaviour or configuration changed? The docs under docs/ are updated (nothing in the docs lists image formats or the changed pages)

🤖 Generated with Claude Code

mregni and others added 12 commits October 5, 2026 13:34
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… the initial when there is no picture

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…book

New GET api/manual/games returns the ids of games with at least one manual;
the list refreshes when a rulebook is uploaded or deleted.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Card headers have one height so the price refresh button no longer pushes its
title down, the in-collection card uses the same layout with the date in its
header, the grid stays at four columns, the duplicate expansions card is gone,
and prices use the same currency format as the current price.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Poster, facts and narrow cards sit in a sidebar from the lg breakpoint, the
title, statistics and charts in the main column, so every block lines up.
Below lg everything stacks in one column with the header first.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A player shows avatar, name and win rate with the details in a tooltip; a
session shows date, winner and winning score, and the full list is a link.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…feats

The sidebar shows earned out of total with a progress bar and the highest
badge per type. The main column shows one tile per tiered badge type with its
current level, the next goal and four level pips, and the one-off feats as
icons that light up once earned.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…g the NuGet cache mount

A cached restore layer with an emptied cache mount made publish fail with
NETSDK1064; restoring in the publish step is a no-op when the packages are
already there.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…VEs until 2027-01-08

The app never uses the TIFF CCITT encoders or HistogramEqualization; the fix
needs ImageSharp 4, which requires a Six Labors licence key at build time.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
EF's default Npgsql execution strategy wraps transient failures (connection
refused, unknown host, "the database system is starting up") in an
InvalidOperationException, so the wait loop's NpgsqlException filter never
matched and the app crashed on a cold start whenever Postgres was not ready
yet. Match on the base exception and report its message instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ImageSharp 3.1.12 carries three HIGH CVEs with no 3.x patch, and 4.x needs a
Six Labors licence key at build time. SkiaSharp (MIT) needs no key: uploads
and downloaded covers are identified with SKCodec, checked against the same
pixel cap, decoded (first frame), stretched to 512x512 and written as WebP
quality 80 through the existing stream overload of IDiskProvider.

The Docker build keeps only the musl libSkiaSharp for the target
architecture, the temporary .trivyignore.yaml is gone, and Renovate groups
the SkiaSharp packages. TIFF, TGA, PBM and QOI uploads are now refused as
unsupported formats.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

.NET Test Results

    2 files      2 suites   17s ⏱️
2 055 tests 2 055 ✅ 0 💤 0 ❌
2 058 runs  2 058 ✅ 0 💤 0 ❌

Results for commit 5bc7eea.

♻️ This comment has been updated with latest results.

sharp 0.35.5 fixes GHSA-wq5f-xc86-pv6w (bundled librsvg) and source-map-js
1.2.2 fixes GHSA-68fv-2mgg-jv7q; the docs audit fails on both. The client
only carries source-map-js as a dev dependency but gets the same patch.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added size/XL and removed size/XL labels Oct 9, 2026
@sonarqubecloud

sonarqubecloud Bot commented Oct 9, 2026

Copy link
Copy Markdown

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown

Summary

Summary
Generated on: 10/09/2026 - 07:21:05
Parser: MultiReport (1x LCov, 4x OpenCover)
Assemblies: 4
Classes: 755
Files: 705
Line coverage: 76% (11198 of 14732)
Covered lines: 11198
Uncovered lines: 3534
Coverable lines: 14732
Total lines: 41077
Branch coverage: 62.4% (3171 of 5079)
Covered branches: 3171
Total branches: 5079
Method coverage: Feature is only available for sponsors
Tag: 457_37898055982

Coverage

BoardGameTracker.Api - 93.8%
Name Line Branch
BoardGameTracker.Api 93.8% 85.1%
BoardGameTracker.Api.Controllers.Admin.OidcProvidersController 83.6%
BoardGameTracker.Api.Controllers.Admin.UsersController 13.7% 0%
BoardGameTracker.Api.Controllers.AuthController 100% 100%
BoardGameTracker.Api.Controllers.BadgeController 100%
BoardGameTracker.Api.Controllers.ChangeDetectionController 81.8% 100%
BoardGameTracker.Api.Controllers.CompareController 100%
BoardGameTracker.Api.Controllers.CountController 100%
BoardGameTracker.Api.Controllers.DashboardController 100%
BoardGameTracker.Api.Controllers.GameController 100% 100%
BoardGameTracker.Api.Controllers.GameNightController 100% 85.7%
BoardGameTracker.Api.Controllers.ImageController 100%
BoardGameTracker.Api.Controllers.LeaderboardController 100%
BoardGameTracker.Api.Controllers.LoanController 100% 100%
BoardGameTracker.Api.Controllers.LocationController 100% 100%
BoardGameTracker.Api.Controllers.MaintenanceController 100%
BoardGameTracker.Api.Controllers.ManualController 100% 85.7%
BoardGameTracker.Api.Controllers.OidcController 89% 70%
BoardGameTracker.Api.Controllers.PlayerController 100% 100%
BoardGameTracker.Api.Controllers.RagController 100% 100%
BoardGameTracker.Api.Controllers.SessionController 100% 100%
BoardGameTracker.Api.Controllers.SettingsController 100% 100%
BoardGameTracker.Api.Controllers.UpdateController 100%
BoardGameTracker.Api.Infrastructure.AuthDisabledExtensions 100% 100%
BoardGameTracker.Api.Infrastructure.AuthDisabledFilter 100% 83.3%
BoardGameTracker.Api.Infrastructure.AuthDisabledMiddleware 100% 75%
BoardGameTracker.Api.Infrastructure.GlobalExceptionHandler 92.3% 90%
BoardGameTracker.Api.Infrastructure.ProfileImageAccessMiddleware 100% 83.3%
BoardGameTracker.Api.Infrastructure.ProfileImageCookie 100%
BoardGameTracker.Api.Infrastructure.PublicBaseUrl 100% 50%
BoardGameTracker.Api.Infrastructure.UntrustedProxyWarningMiddleware 100% 100%
BoardGameTracker.Api.Infrastructure.UserRateLimitKey 100% 100%
BoardGameTracker.Api.Infrastructure.UtcDateTimeConverter 93.7% 83.3%
BoardGameTracker.Api.Infrastructure.UtcNullableDateTimeConverter 73.9% 60%
BoardGameTracker.Api.Infrastructure.ValidateIdFilter 100% 100%
BoardGameTracker.Common - 92%
Name Line Branch
BoardGameTracker.Common 92% 84.2%
BoardGameTracker.Common.Configuration.ConfigDefault 100%
BoardGameTracker.Common.Configuration.ConfigDefaults 100%
BoardGameTracker.Common.Constants 100%
BoardGameTracker.Common.DTOs.Auth.AdminUpdateUserRequest 0%
BoardGameTracker.Common.DTOs.Auth.AuthorizationUrlResponse 100%
BoardGameTracker.Common.DTOs.Auth.AuthStatusResponse 100%
BoardGameTracker.Common.DTOs.Auth.ChangePasswordRequest 100%
BoardGameTracker.Common.DTOs.Auth.CreateOidcProviderRequest 100%
BoardGameTracker.Common.DTOs.Auth.ExternalLoginDto 100%
BoardGameTracker.Common.DTOs.Auth.ForgotPasswordRequest 100%
BoardGameTracker.Common.DTOs.Auth.LoginRequest 100%
BoardGameTracker.Common.DTOs.Auth.LoginResponse 100%
BoardGameTracker.Common.DTOs.Auth.LogoutRequest 100%
BoardGameTracker.Common.DTOs.Auth.OidcDiscoveryResultDto 100%
BoardGameTracker.Common.DTOs.Auth.OidcProviderDto 100%
BoardGameTracker.Common.DTOs.Auth.OidcProviderInfo 80%
BoardGameTracker.Common.DTOs.Auth.OidcProviderListDto 0%
BoardGameTracker.Common.DTOs.Auth.OidcSetupDto 100%
BoardGameTracker.Common.DTOs.Auth.PlayerLinkDto 100%
BoardGameTracker.Common.DTOs.Auth.ProfileResponse 100%
BoardGameTracker.Common.DTOs.Auth.RefreshTokenRequest 100%
BoardGameTracker.Common.DTOs.Auth.RegisterRequest 66.6% 50%
BoardGameTracker.Common.DTOs.Auth.ResetPasswordConfirmRequest 100%
BoardGameTracker.Common.DTOs.Auth.ResetPasswordResponse 100%
BoardGameTracker.Common.DTOs.Auth.TestOidcDiscoveryRequest 100%
BoardGameTracker.Common.DTOs.Auth.UpdateOidcProviderRequest 100%
BoardGameTracker.Common.DTOs.Auth.UpdateProfileRequest 100%
BoardGameTracker.Common.DTOs.Auth.UpdateUserRoleRequest 0%
BoardGameTracker.Common.DTOs.Auth.UserDto 100%
BoardGameTracker.Common.DTOs.Auth.UserInfo 100%
BoardGameTracker.Common.DTOs.BadgeDto 100%
BoardGameTracker.Common.DTOs.BggConfigStatusDto 100%
BoardGameTracker.Common.DTOs.ChangeDetectionConfigStatusDto 100%
BoardGameTracker.Common.DTOs.ChangeDetectionConnectionTestDto 0%
BoardGameTracker.Common.DTOs.Commands.AskRagCommand 100%
BoardGameTracker.Common.DTOs.Commands.CreateExpansionCommand 100%
BoardGameTracker.Common.DTOs.Commands.CreateGameCommand 100% 100%
BoardGameTracker.Common.DTOs.Commands.CreateGameNightCommand 100%
BoardGameTracker.Common.DTOs.Commands.CreateLoanCommand 100%
BoardGameTracker.Common.DTOs.Commands.CreateLocationCommand 100%
BoardGameTracker.Common.DTOs.Commands.CreatePlayerCommand 100%
BoardGameTracker.Common.DTOs.Commands.CreatePlayerSessionCommand 100%
BoardGameTracker.Common.DTOs.Commands.CreateSessionCommand 100%
BoardGameTracker.Common.DTOs.Commands.CreateWatchCommand 100%
BoardGameTracker.Common.DTOs.Commands.ImportBggGamesCommand 100%
BoardGameTracker.Common.DTOs.Commands.ReturnLoanCommand 100%
BoardGameTracker.Common.DTOs.Commands.UpdateGameCommand 100%
BoardGameTracker.Common.DTOs.Commands.UpdateGameExpansionsCommand 100%
BoardGameTracker.Common.DTOs.Commands.UpdateGameNightCommand 100%
BoardGameTracker.Common.DTOs.Commands.UpdateLoanCommand 100%
BoardGameTracker.Common.DTOs.Commands.UpdateLocationCommand 100%
BoardGameTracker.Common.DTOs.Commands.UpdatePlayerCommand 100%
BoardGameTracker.Common.DTOs.Commands.UpdateRsvpCommand 100%
BoardGameTracker.Common.DTOs.Commands.UpdateSessionCommand 100%
BoardGameTracker.Common.DTOs.Commands.UploadImageCommand 100%
BoardGameTracker.Common.DTOs.Commands.UploadManualsCommand 100%
BoardGameTracker.Common.DTOs.DashboardStatisticsDto 100%
BoardGameTracker.Common.DTOs.DashboardTopPlayerDto 100%
BoardGameTracker.Common.DTOs.ExpansionDto 100%
BoardGameTracker.Common.DTOs.GameDto 100%
BoardGameTracker.Common.DTOs.GameLinkDto 0%
BoardGameTracker.Common.DTOs.GameNightDto 100%
BoardGameTracker.Common.DTOs.GameNightManualsDto 100%
BoardGameTracker.Common.DTOs.GameNightRsvpDto 100%
BoardGameTracker.Common.DTOs.GamePersonDto 0%
BoardGameTracker.Common.DTOs.GamePriceDto 100%
BoardGameTracker.Common.DTOs.GameStatisticsResponse 100%
BoardGameTracker.Common.DTOs.KeyValuePairDto`1 100%
BoardGameTracker.Common.DTOs.LeaderboardDto 100%
BoardGameTracker.Common.DTOs.LeaderboardEntryDto 100%
BoardGameTracker.Common.DTOs.LoanDto 100%
BoardGameTracker.Common.DTOs.LocationDto 100%
BoardGameTracker.Common.DTOs.ManualDto 100%
BoardGameTracker.Common.DTOs.MostPlayedGameDto 100%
BoardGameTracker.Common.DTOs.PlayerDto 100%
BoardGameTracker.Common.DTOs.PlayerSessionDto 0%
BoardGameTracker.Common.DTOs.RagAnswerDto 100%
BoardGameTracker.Common.DTOs.RagCitationDto 100%
BoardGameTracker.Common.DTOs.RecentActivityDto 100%
BoardGameTracker.Common.DTOs.RecentGameDto 100%
BoardGameTracker.Common.DTOs.SendInvitesResultDto 100%
BoardGameTracker.Common.DTOs.SessionDto 100%
BoardGameTracker.Common.DTOs.ShameDto 100%
BoardGameTracker.Common.DTOs.ShameStatisticsDto 100%
BoardGameTracker.Common.DTOs.TopPlayerDto 100% 100%
BoardGameTracker.Common.DTOs.UIEnvironmentDto 100%
BoardGameTracker.Common.DTOs.UIResourceDto 100%
BoardGameTracker.Common.DTOs.UpdateSettingsDto 0%
BoardGameTracker.Common.DTOs.UpdateStatusDto 100%
BoardGameTracker.Common.Entities.Auth.ApplicationUser 96.4%
BoardGameTracker.Common.Entities.Auth.ExternalLogin 100%
BoardGameTracker.Common.Entities.Auth.OidcProvider 100% 100%
BoardGameTracker.Common.Entities.Auth.RefreshToken 100% 75%
BoardGameTracker.Common.Entities.Badge 100%
BoardGameTracker.Common.Entities.Config 100%
BoardGameTracker.Common.Entities.Expansion 100% 100%
BoardGameTracker.Common.Entities.Game 100% 92.8%
BoardGameTracker.Common.Entities.GameAccessory 0%
BoardGameTracker.Common.Entities.GameCategory 75%
BoardGameTracker.Common.Entities.GameMechanic 75%
BoardGameTracker.Common.Entities.GameNight 90.4% 72.2%
BoardGameTracker.Common.Entities.GameNightRsvp 100%
BoardGameTracker.Common.Entities.Helpers.BaseGame 97.5% 100%
BoardGameTracker.Common.Entities.Helpers.HasId 100%
BoardGameTracker.Common.Entities.Helpers.PlayerSession 76.6%
BoardGameTracker.Common.Entities.Image 0%
BoardGameTracker.Common.Entities.Language 100%
BoardGameTracker.Common.Entities.Loan 100% 86.6%
BoardGameTracker.Common.Entities.Location 100%
BoardGameTracker.Common.Entities.Manual 100%
BoardGameTracker.Common.Entities.ManualChunk 100%
BoardGameTracker.Common.Entities.Person 64.7%
BoardGameTracker.Common.Entities.Player 100%
BoardGameTracker.Common.Entities.Session 93.3% 100%
BoardGameTracker.Common.Exceptions.AuthenticationFailedException 100%
BoardGameTracker.Common.Exceptions.BggCollectionPreparingException 100%
BoardGameTracker.Common.Exceptions.BggFeatureDisabledException 100%
BoardGameTracker.Common.Exceptions.BggRateLimitException 100%
BoardGameTracker.Common.Exceptions.ConfigMissingException 100%
BoardGameTracker.Common.Exceptions.DomainException 100%
BoardGameTracker.Common.Exceptions.EntityNotFoundException 100%
BoardGameTracker.Common.Exceptions.ExceptionStatusMapper 100% 100%
BoardGameTracker.Common.Exceptions.ServiceNotResolvedException 0%
BoardGameTracker.Common.Exceptions.ValidationException 100%
BoardGameTracker.Common.Extensions.AuthDtoExtensions 93.3% 50%
BoardGameTracker.Common.Extensions.BadgeDtoExtensions 100%
BoardGameTracker.Common.Extensions.DashboardDtoExtensions 100% 87.5%
BoardGameTracker.Common.Extensions.EnvironmentExtensions 100% 100%
BoardGameTracker.Common.Extensions.ExpansionDtoExtensions 100%
BoardGameTracker.Common.Extensions.GameDtoExtensions 93.8% 59.3%
BoardGameTracker.Common.Extensions.GameNightDtoExtensions 100%
BoardGameTracker.Common.Extensions.ListExtensions 100% 100%
BoardGameTracker.Common.Extensions.LoanDtoExtensions 100%
BoardGameTracker.Common.Extensions.LocationDtoExtensions 62.5% 100%
BoardGameTracker.Common.Extensions.LogLevelExtensions 100% 100%
BoardGameTracker.Common.Extensions.ManualDtoExtensions 100%
BoardGameTracker.Common.Extensions.PlayerDtoExtensions 90% 66.6%
BoardGameTracker.Common.Extensions.PlayerSessionDtoExtensions 0%
BoardGameTracker.Common.Extensions.SessionDtoExtensions 88.2%
BoardGameTracker.Common.Extensions.ShameDtoExtensions 100%
BoardGameTracker.Common.Extensions.StatusExtensions 100% 100%
BoardGameTracker.Common.Extensions.StringExtensions 100% 100%
BoardGameTracker.Common.Extensions.UpdateStatusDtoExtensions 100%
BoardGameTracker.Common.Extensions.UploadFileTypeExtension 100% 100%
BoardGameTracker.Common.Extensions.VersionExtensions 100% 75%
BoardGameTracker.Common.Extensions.WebHostBuilderExtensions 14.8% 8.3%
BoardGameTracker.Common.Helpers.PathHelper 90% 75%
BoardGameTracker.Common.Models.Bgg.BggImportGame 100%
BoardGameTracker.Common.Models.Bgg.BggSearch 100%
BoardGameTracker.Common.Models.ChangeDetection.ChangeDetectionResult 100%
BoardGameTracker.Common.Models.ChangeDetection.ChangeDetectionWatchInfo 100%
BoardGameTracker.Common.Models.ChangeDetection.GameWatchInfo 100%
BoardGameTracker.Common.Models.Charts.GameStateChart 100%
BoardGameTracker.Common.Models.Charts.PlayByDay 100%
BoardGameTracker.Common.Models.Charts.PlayerCount 100%
BoardGameTracker.Common.Models.Charts.PlayerScoringPoint 100%
BoardGameTracker.Common.Models.Charts.ScoreRank 100% 100%
BoardGameTracker.Common.Models.Charts.XValue 100%
BoardGameTracker.Common.Models.Compare.ClosestGame 100%
BoardGameTracker.Common.Models.Compare.FirstGameTogether 100%
BoardGameTracker.Common.Models.Compare.LastWonGame 100%
BoardGameTracker.Common.Models.Compare.MostWonGame 100%
BoardGameTracker.Common.Models.Compare.PreferredGame 100%
BoardGameTracker.Common.Models.CompareResultDto 100%
BoardGameTracker.Common.Models.CompareRow`1 100%
BoardGameTracker.Common.Models.DockerHub.DockerHubManifest 0%
BoardGameTracker.Common.Models.DockerHub.DockerHubManifestResponse 0%
BoardGameTracker.Common.Models.DockerHub.DockerHubPlatform 0%
BoardGameTracker.Common.Models.DockerHub.DockerHubTag 50%
BoardGameTracker.Common.Models.DockerHub.DockerHubTagsResponse 100%
BoardGameTracker.Common.Models.ExpansionData 100%
BoardGameTracker.Common.Models.GameStatistics 100%
BoardGameTracker.Common.Models.ImportGame 100%
BoardGameTracker.Common.Models.LeaderboardRow 100%
BoardGameTracker.Common.Models.ManualDownload 100%
BoardGameTracker.Common.Models.MostPlayedGame 100%
BoardGameTracker.Common.Models.MostWinningPlayer 100%
BoardGameTracker.Common.Models.PersonKey 100%
BoardGameTracker.Common.Models.PlayerComparison 0%
BoardGameTracker.Common.Models.PlayerStatistics 100%
BoardGameTracker.Common.Models.ShameGame 100%
BoardGameTracker.Common.Models.ShameStatistics 100%
BoardGameTracker.Common.Models.Updates.UpdateSettings 0%
BoardGameTracker.Common.Models.Updates.UpdateStatus 100%
BoardGameTracker.Common.ValueObjects.PlayerCountRange 83.3% 50%
BoardGameTracker.Common.ValueObjects.PlayTimeRange 76.9% 50%
BoardGameTracker.Common.ValueObjects.Price 75%
BoardGameTracker.Common.ValueObjects.Rating 100%
BoardGameTracker.Common.ValueObjects.Weight 100%
BoardGameTracker.Core - 93.5%
Name Line Branch
BoardGameTracker.Core 93.5% 87.6%
BoardGameTracker.Core.Auth.AuthService 100% 98.8%
BoardGameTracker.Core.Auth.DataProtectionKeyMaterial 100% 100%
BoardGameTracker.Core.Auth.DbSeeder 93.7% 95%
BoardGameTracker.Core.Auth.Interfaces.OidcAuthorizationRequest 100%
BoardGameTracker.Core.Auth.Interfaces.OidcLinkResult 100%
BoardGameTracker.Core.Auth.Interfaces.OidcLoginResult 100%
BoardGameTracker.Core.Auth.JwtOptions 100%
BoardGameTracker.Core.Auth.LoginAttemptTracker 100% 100%
BoardGameTracker.Core.Auth.OidcProviderService 100% 100%
BoardGameTracker.Core.Auth.OidcService 91.4% 79.3%
BoardGameTracker.Core.Auth.PlayerLinkGuard 100% 100%
BoardGameTracker.Core.Auth.ProfileImageTicketService 100% 75%
BoardGameTracker.Core.Auth.RefreshTokenCleanupService 100% 100%
BoardGameTracker.Core.Auth.SecretProtector 78.9% 100%
BoardGameTracker.Core.Auth.SecretXmlDecryptor 100% 100%
BoardGameTracker.Core.Auth.SecretXmlEncryptor 94.2% 50%
BoardGameTracker.Core.Auth.TokenService 100% 100%
BoardGameTracker.Core.Auth.UserAdminService 99.1% 97.7%
BoardGameTracker.Core.Badges.BadgeEvaluators.CloseLossBadgeEvaluator 94.1% 92.8%
BoardGameTracker.Core.Badges.BadgeEvaluators.CloseWinBadgeEvaluator 100% 100%
BoardGameTracker.Core.Badges.BadgeEvaluators.ConsistentScheduleBadgeEvaluat
or
100% 100%
BoardGameTracker.Core.Badges.BadgeEvaluators.DifferentGameBadgeEvaluator 100% 100%
BoardGameTracker.Core.Badges.BadgeEvaluators.DurationBadgeEvaluator 100% 100%
BoardGameTracker.Core.Badges.BadgeEvaluators.FirstTryBadgeEvaluator 100% 100%
BoardGameTracker.Core.Badges.BadgeEvaluators.LearningCurveBadgeEvaluator 100% 100%
BoardGameTracker.Core.Badges.BadgeEvaluators.MarathonRunnerBadgeEvaluator 100%
BoardGameTracker.Core.Badges.BadgeEvaluators.MonthlyGoalBadgeEvaluator 100% 50%
BoardGameTracker.Core.Badges.BadgeEvaluators.SessionsBadgeEvaluator 100% 100%
BoardGameTracker.Core.Badges.BadgeEvaluators.SessionWinEvaluator 100% 100%
BoardGameTracker.Core.Badges.BadgeEvaluators.SocialPlayerBadgeEvaluator 100% 100%
BoardGameTracker.Core.Badges.BadgeEvaluators.SoloSpecialistBadgeEvaluator 100% 100%
BoardGameTracker.Core.Badges.BadgeEvaluators.WinningStreakBadgeEvaluator 100% 100%
BoardGameTracker.Core.Badges.BadgeEvaluators.WinPercentageBadgeEvaluator 100% 100%
BoardGameTracker.Core.Badges.BadgeRepository 54.5% 60%
BoardGameTracker.Core.Badges.BadgeService 100% 100%
BoardGameTracker.Core.ChangeDetection.ChangeDetectionClient 88.8% 74.8%
BoardGameTracker.Core.ChangeDetection.ChangeDetectionSnapshotParser 95.6% 85%
BoardGameTracker.Core.Common.ClientAddressKey 100% 100%
BoardGameTracker.Core.Common.DateTimeProvider 96.5% 100%
BoardGameTracker.Core.Common.LocalPath 100% 94.4%
BoardGameTracker.Core.Common.PlayByDayBuckets 100%
BoardGameTracker.Core.Common.SecureUrlPolicy 100% 97.7%
BoardGameTracker.Core.Common.TrustedProxyList 100% 100%
BoardGameTracker.Core.Common.TypeConverter 100% 100%
BoardGameTracker.Core.Compares.CompareRepository 76.7% 22.2%
BoardGameTracker.Core.Compares.CompareService 100% 100%
BoardGameTracker.Core.Compares.Specifications.SessionsWithBothPlayersSpec 100%
BoardGameTracker.Core.Configuration.ConfigRepository 86.4% 81.8%
BoardGameTracker.Core.Configuration.DbConnectionProvider 100% 100%
BoardGameTracker.Core.Configuration.EnvironmentProvider 100% 94.4%
BoardGameTracker.Core.Dashboard.DashboardService 100%
BoardGameTracker.Core.Datastore.DesignTimeDbContextFactory 0%
BoardGameTracker.Core.Datastore.EfReadRepository`1 94.7%
BoardGameTracker.Core.Datastore.EfRepository`1 100% 100%
BoardGameTracker.Core.Datastore.MainDbContext 100% 100%
BoardGameTracker.Core.Datastore.UnitOfWork 100% 100%
BoardGameTracker.Core.Datastore.UtcDateTimeValueConverter 100% 100%
BoardGameTracker.Core.Datastore.UtcNullableDateTimeValueConverter 90.9% 75%
BoardGameTracker.Core.Disk.DiskProvider 91.3% 100%
BoardGameTracker.Core.Email.BackgroundEmailSender 100%
BoardGameTracker.Core.Email.EmailService 100% 100%
BoardGameTracker.Core.Email.MailKitSmtpSender 0% 0%
BoardGameTracker.Core.Email.PublicUrlBuilder 100% 100%
BoardGameTracker.Core.Extensions.ServiceCollectionExtensions 91.3% 50%
BoardGameTracker.Core.GameNights.GameNightLinkAccess 100% 100%
BoardGameTracker.Core.GameNights.GameNightService 100% 87.5%
BoardGameTracker.Core.GameNights.Specifications.FutureGameNightsSpec 100%
BoardGameTracker.Core.GameNights.Specifications.GameNightByIdWithDetailsSpe
c
100%
BoardGameTracker.Core.GameNights.Specifications.GameNightByLinkIdSpec 100%
BoardGameTracker.Core.GameNights.Specifications.GameNightsAtLocationSpec 100%
BoardGameTracker.Core.GameNights.Specifications.GameNightsHostedByPlayerSpe
c
100%
BoardGameTracker.Core.GameNights.Specifications.GameNightsOverviewSpec 100%
BoardGameTracker.Core.GameNights.Specifications.RsvpByIdSpec 100%
BoardGameTracker.Core.GameNights.Specifications.RsvpByPlayerAndGameNightSpe
c
100%
BoardGameTracker.Core.Games.BggImportService 96.3% 97.9%
BoardGameTracker.Core.Games.Factories.GameFactory 100% 93.1%
BoardGameTracker.Core.Games.GameChartService 100% 100%
BoardGameTracker.Core.Games.GameRepository 88.1% 66.6%
BoardGameTracker.Core.Games.GameService 98.1% 92.1%
BoardGameTracker.Core.Games.GameStatisticsRepository 83.5% 80%
BoardGameTracker.Core.Games.GameStatisticsService 100% 100%
BoardGameTracker.Core.Games.LazyBoardGameGeekClient 60%
BoardGameTracker.Core.Games.ShameService 100% 100%
BoardGameTracker.Core.Games.Specifications.ExpansionsByIdsSpec 100%
BoardGameTracker.Core.Games.Specifications.GameByBggIdSpec 100%
BoardGameTracker.Core.Games.Specifications.GameByIdSpec 100%
BoardGameTracker.Core.Games.Specifications.GameByIdWithDetailsForReadSpec 100%
BoardGameTracker.Core.Games.Specifications.GameHasScoringSpec 100%
BoardGameTracker.Core.Games.Specifications.GamesByIdsSpec 100%
BoardGameTracker.Core.Games.Specifications.GamesOverviewSpec 100%
BoardGameTracker.Core.Games.Specifications.GamesWithNoRecentSessionsSpec 100%
BoardGameTracker.Core.Games.Specifications.GameWithExpansionsSpec 100%
BoardGameTracker.Core.Games.Specifications.GameWithLoansSpec 100%
BoardGameTracker.Core.Games.Specifications.RecentlyAddedGamesSpec 100%
BoardGameTracker.Core.Games.Specifications.ShameGamesSpec 100%
BoardGameTracker.Core.Games.Specifications.TrackedGamesSpec 100%
BoardGameTracker.Core.Images.ImageService 96.9% 95.6%
BoardGameTracker.Core.Languages.LanguageService 100%
BoardGameTracker.Core.Leaderboard.LeaderboardService 100% 90%
BoardGameTracker.Core.Loans.LoanService 100% 83.3%
BoardGameTracker.Core.Loans.Specifications.ActiveLoansSpec 100%
BoardGameTracker.Core.Loans.Specifications.LoansOrderedByDateSpec 100%
BoardGameTracker.Core.Locations.LocationService 100% 100%
BoardGameTracker.Core.Locations.Specifications.LocationsOverviewSpec 100%
BoardGameTracker.Core.Maintenance.MaintenanceRepository 100%
BoardGameTracker.Core.Maintenance.MaintenanceSeeder 100% 100%
BoardGameTracker.Core.Maintenance.ResetService 100%
BoardGameTracker.Core.Manuals.ManualService 100% 100%
BoardGameTracker.Core.Manuals.Specifications.GameIdsWithManualsSpec 100%
BoardGameTracker.Core.Manuals.Specifications.ManualsByGameIdSpec 100%
BoardGameTracker.Core.Manuals.Specifications.ManualsByGameIdsSpec 100%
BoardGameTracker.Core.Players.PlayerRepository 100% 100%
BoardGameTracker.Core.Players.PlayerService 100% 100%
BoardGameTracker.Core.Players.PlayerStatisticsService 100%
BoardGameTracker.Core.Players.Specifications.PlayerByIdForUpdateSpec 100%
BoardGameTracker.Core.Players.Specifications.PlayerByIdSpec 100%
BoardGameTracker.Core.Players.Specifications.PlayerByIdWithBadgesSpec 100%
BoardGameTracker.Core.Players.Specifications.PlayerIdsSpec 100%
BoardGameTracker.Core.Players.Specifications.PlayersOrderedByNameSpec 100%
BoardGameTracker.Core.Players.Specifications.WonPlayerSessionsByPlayerSpec 100%
BoardGameTracker.Core.Rag.AiClientFactory 97.5% 68.7%
BoardGameTracker.Core.Rag.ManualChunkMatch 100%
BoardGameTracker.Core.Rag.ManualChunkRepository 62.9% 57.1%
BoardGameTracker.Core.Rag.ManualIndexingBackgroundService 95.4% 100%
BoardGameTracker.Core.Rag.ManualIndexingQueue 100%
BoardGameTracker.Core.Rag.ManualIndexingService 100% 100%
BoardGameTracker.Core.Rag.ModelProvisioningBackgroundService 94.7% 75%
BoardGameTracker.Core.Rag.PdfPageRenderer 6.8% 3.1%
BoardGameTracker.Core.Rag.PdfPageText 100%
BoardGameTracker.Core.Rag.PdfTextExtractor 0% 0%
BoardGameTracker.Core.Rag.RagService 100% 94.4%
BoardGameTracker.Core.Rag.RagSettings 100%
BoardGameTracker.Core.Rag.RagSettingsProvider 100% 100%
BoardGameTracker.Core.Rag.RulebookChunker 98.7% 96%
BoardGameTracker.Core.Rag.Specifications.ManualsToIndexSpec 100%
BoardGameTracker.Core.Rag.Specifications.NearestManualChunksSpec 100% 100%
BoardGameTracker.Core.Rag.TextChunk 100%
BoardGameTracker.Core.Sessions.SessionRepository 46.1% 0%
BoardGameTracker.Core.Sessions.SessionService 96.3% 95%
BoardGameTracker.Core.Sessions.Specifications.LastPlayedDateSpec 100%
BoardGameTracker.Core.Sessions.Specifications.RecentSessionsSpec 100%
BoardGameTracker.Core.Sessions.Specifications.SessionByIdWithDetailsSpec 100%
BoardGameTracker.Core.Sessions.Specifications.SessionsByGameSinceSpec 100%
BoardGameTracker.Core.Sessions.Specifications.SessionsByGameSpec 100% 100%
BoardGameTracker.Core.Sessions.Specifications.SessionsByPlayerRecentFirstSp
ec
100% 100%
BoardGameTracker.Core.Sessions.Specifications.SessionsByPlayerSpec 100%
BoardGameTracker.Core.Settings.SettingsService 100% 97.7%
BoardGameTracker.Core.Updates.UpdateCheckBackgroundService 96.2% 100%
BoardGameTracker.Core.Updates.UpdateService 100% 83.3%
Default - 40.6%
Name Line Branch
Default 40.6% 44.5%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtAchievement/BgtAchievement.tsx
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtAvatar/BgtAvatar.tsx
78.5% 68.5%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtAvatar/BgtPlayerAvatar.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtAvatar/PlayerSessionAvatars.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtBadge/BgtBadge.tsx
72.7% 58.3%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtButton/BgtBigButton.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtButton/BgtButton.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtButton/BgtEditDeleteButtons.tsx
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtCard/BgtCard.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtCard/BgtChartCard.tsx
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtCard/RecentActivityCard.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtCharts/BgtBarChart.tsx
92% 71.4%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtCharts/BgtPieChart.tsx
100% 88.8%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtDataGuard/BgtDataGuard.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtDialog/BgtDialog.tsx
100% 75%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtDialog/index.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtForm/BgtCheckbox.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtForm/BgtCheckboxList.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtForm/BgtDatePicker.tsx
94.7% 94.7%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtForm/BgtDateTimePicker.tsx
77.2% 68.4%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtForm/BgtFieldLabel.tsx
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtForm/BgtFormErrors.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtForm/BgtImageSelector.tsx
85.3% 80.9%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtForm/BgtInputContainer.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtForm/BgtInputField.tsx
91.6% 90%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtForm/BgtPlayerSelector.tsx
91.6% 90.9%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtForm/BgtSelect.tsx
68.2% 71.7%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtForm/BgtSimpleCheckbox.tsx
100% 80%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtForm/BgtSimpleInputField.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtForm/BgtSimpleSelect.tsx
84.3% 94.2%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtForm/BgtSimpleSwitch.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtForm/BgtSwitch.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtForm/BgtTextArea.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtForm/FormFieldWrapper.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtForm/index.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtForm/SearchInputField.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtForm/useKeyboardResizeGuard.ts
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtHeading/BgtHeading.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtIconButton/BgtIconButton.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtImageCard/BgtImageCard.tsx
100% 87.5%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtLayout/BgtCardList.tsx
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtLayout/BgtDetailLayout.tsx
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtLayout/BgtEmptyPage.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtLayout/BgtEmptyState.tsx
100% 50%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtLayout/BgtPage.tsx
91.6% 66.6%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtLayout/BgtPageContent.tsx
100% 85.7%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtLayout/BgtPageHeader.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtLoadingSpinner/BgtLoadingSpinner.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtMenu/BgtMenuItem.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtMenu/BgtMenuLogo.tsx
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtNoData/BgtNoData.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtStatistic/BgtTextStatistic.tsx
76.9% 72.4%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtStatus/BgtStatus.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtTable/BgtDataTable.tsx
100% 81.2%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtTable/BgtPaging.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtTable/BgtTable.tsx
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtText/BgtText.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/BgtText/textStyles.ts
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/ErrorBoundary/ErrorFallback.tsx
100% 85.7%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/components/NotFound/NotFound.tsx
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/config/sonner.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/hooks/form.tsx
14.2%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/hooks/useAuth.ts
100% 66.6%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/hooks/useDebounce.ts
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/hooks/useFilteredList.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/hooks/useLogout.ts
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/hooks/useMediaQuery.ts
87.5%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/hooks/useModalState.ts
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/hooks/usePermissions.ts
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/hooks/useQueryInvalidator.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/hooks/useResetQueriesOnIdentityChange.ts
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/hooks/useTimeouts.ts
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Auth/Auth.ts
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Auth/Oidc.ts
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Badge/Badge.ts
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/ChangeDetection/ChangeDetection.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Charts/PieChartDatum.tsx
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Common/Actions.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Common/ApiError.ts
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Common/BgtSelectItem.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Common/FailResult.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Common/KeyValuePair.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Common/ModalProps.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Compare/CompareResult.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/constants.ts
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Dashboard/DashboardStatistics.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/GameNight/GameNight.ts
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Games/BggSearch.ts
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Games/CreateGame.ts
92.3% 79.1%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Games/Expansion.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Games/ExpansionLink.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Games/Game.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Games/GameManual.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Games/GamePrice.ts
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Games/GameState.ts
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Games/GameStatistics.ts
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Games/ImportGame.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Games/PersonType.ts
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Games/RagAnswer.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Games/Shame.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Games/ShameStatistics.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Images/ImageUpload.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/index.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Leaderboard/Leaderboard.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Loan/CreateLoan.ts
50% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Loan/Loan.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Location/CreateLocation.ts
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Location/Location.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Menu/MenuItem.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Player/Player.ts
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Player/PlayerStatistics.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Session/CreateSession.ts
60% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Session/PlayerSession.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Session/Session.tsx
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Settings/BggConfigStatus.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Settings/ChangeDetectionConfigStatus.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Settings/Environment.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Settings/Language.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Settings/Settings.ts
20% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/models/Settings/VersionInfo.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/react-query.d.ts
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/__root.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/_bare.tsx
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/_bare/-components/RsvpEventDetails.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/_bare/-components/RsvpManuals.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/_bare/-components/RsvpResponseForm.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/_bare/-components/RsvpSuccessView.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/_bare/-hooks/useRsvpData.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/_bare/-utils/loginError.ts
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/_bare/auth-callback.tsx
100% 85.7%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/_bare/forgot-password.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/_bare/login.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/_bare/reset-password.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/_bare/rsvp.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/-components/BgtPoster.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/-components/BottomNav.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/-components/dashboard/GameStateChart.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/-components/dashboard/MostPlayedDashboardGames.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/-components/dashboard/RecentActivity.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/-components/dashboard/RecentAddedGames.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/-components/dashboard/TopPlayers.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/-components/RequireWrite.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/-components/Sidebar.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/-components/VersionCard.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/-hooks/useDashboardData.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/-hooks/useGameById.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/-hooks/useMenuInfo.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/-hooks/usePlayerById.ts
10% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/-hooks/useToasts.tsx
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/-modals/BgtDeleteModal.tsx
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/chat/-components/ChatComposer.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/chat/-components/ChatMessage.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/chat/-components/ChatTranscript.tsx
90% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/chat/-components/CitationList.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/chat/-components/PageImage.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/chat/-components/SourcesOverlay.tsx
62.9% 22.7%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/chat/-components/SourcesPanel.tsx
78.5% 53.5%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/chat/-hooks/usePageImage.ts
97% 75%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/chat/-hooks/useRagChat.ts
100% 88.8%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/chat/index.tsx
92.1% 82.6%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/compare/-components/CompareCard.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/compare/-components/CompareSummaryStats.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/compare/-components/HeadToHead.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/compare/-components/PlayerAvatarWithCrown.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/compare/-components/PlayerSelector.tsx
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/compare/-components/PlayerStatsSection.tsx
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/compare/-hooks/useCompareData.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/compare/-utils/compareUtils.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/compare/index.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/game-nights/-components/FilterTabs.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/game-nights/-components/GameNightActions.tsx
75% 75%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/game-nights/-components/GameNightCard.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/game-nights/-components/GameNightForm.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/game-nights/-components/MultiSelectField.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/game-nights/-components/NoGameNights.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/game-nights/-components/RsvpSection.tsx
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/game-nights/-components/RsvpStatBadge.tsx
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/game-nights/-components/RsvpStatusButton.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/game-nights/-hooks/useGameNightActions.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/game-nights/-hooks/useGameNightData.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/game-nights/-hooks/useGameNightModals.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/game-nights/-modals/CreateGameNightModal.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/game-nights/-modals/EditGameNightModal.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/game-nights/-modals/ManageRSVPsModal.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/game-nights/index.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/EditableCellButton.tsx
100% 75%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/EditableNumberCell.tsx
100% 96%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/EditableSelectCell.tsx
100% 88.8%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/ExpansionsDialog.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/GameDetailEmptyState.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/GameFactsCard.tsx
100% 91.1%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/GameForm.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/GameFormBasicFields.tsx
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/GameFormPlayerFields.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/GameFormTimeFields.tsx
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/GameFormUpdateFields.tsx
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/GameHeader.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/GamesFilters.tsx
45.8% 31.5%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/GameStaticSection.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/GameStatisticsGrid.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/GameTableCards.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/LivePrice.tsx
100% 93.3%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/ManualsDialog.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/PlayerCountChartCard.tsx
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/PriceRefreshButton.tsx
77.7% 66.6%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/RecentSessionsCard.tsx
100% 80%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/RulebookChatButton.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/ScoringResultsCard.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/SessionCountChartCard.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/TopPlayersCard.tsx
100% 78.5%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/TrackedPriceIcon.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/TrackPriceDialog.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-components/WatchIdPreview.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-hooks/useBggGameModal.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-hooks/useExpansionSelectorModal.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-hooks/useGameActions.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-hooks/useGameData.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-hooks/useGameForm.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-hooks/useGameManuals.ts
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-hooks/useGameModals.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-hooks/useGamesData.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-hooks/useGameSessionsData.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-hooks/useImageUpload.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-hooks/useInlineGameUpdate.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-hooks/useNewGame.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-hooks/useUpdateGame.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-modals/ExpansionSelectorModal.tsx
90.9% 87.5%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-utils/gameColorMappings.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-utils/gameDataTransformers.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/-utils/gameFormOpts.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/$gameId_.sessions.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/$gameId_.update.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/$gameId.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/add.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/bgg.tsx
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/import/-hooks/useList.ts
98.1% 90.9%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/import/-utils/importErrors.ts
100% 90%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/import/list_.$username.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/import/start.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/index.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/new.tsx
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/games/table.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/index.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/leaderboard/-components/LeaderboardHighlight.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/leaderboard/index.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/loans/-components/LoanCard.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/loans/-hooks/useLoanActions.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/loans/-hooks/useLoanModels.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/loans/-hooks/useLoans.ts
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/loans/-hooks/useNewLoanModal.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/loans/-modals/EditLoanModal.tsx
93.3% 72.7%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/loans/-modals/NewLoanModal.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/loans/index.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/locations/-hooks/useLocationModal.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/locations/-hooks/useLocationModals.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/locations/-hooks/useLocationsData.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/locations/-modals/EditLocationModal.tsx
100% 50%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/locations/-modals/NewLocationModal.tsx
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/locations/index.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/players/-components/MostPlayedGamesCard.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/players/-components/PlayerAchievementsCard.tsx
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/players/-components/PlayerAchievementsSummary.tsx
100% 75%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/players/-components/PlayerHeader.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/players/-components/PlayerSessionCardItem.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/players/-components/PlayerStatisticsGrid.tsx
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/players/-components/PlayerWinRecordCard.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/players/-components/RecentPlayerSessionsCard.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/players/-hooks/achievementFixtures.ts
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/players/-hooks/useAchievementProgress.ts
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/players/-hooks/useBadgeProcessing.ts
95% 62.5%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/players/-hooks/usePlayerActions.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/players/-hooks/usePlayerData.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/players/-hooks/usePlayerModal.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/players/-hooks/usePlayerModals.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/players/-hooks/usePlayersData.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/players/-hooks/usePlayerSessionData.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/players/-modals/CreatePlayerModal.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/players/-modals/EditPlayerModal.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/players/$playerId_.sessions.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/players/$playerId.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/players/index.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/players/new.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/sessions/-components/SessionExpansionSelector.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/sessions/-components/SessionForm.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/sessions/-components/SessionFormFields.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/sessions/-components/SessionPlayerManager.tsx
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/sessions/-hooks/useNewSessionData.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/sessions/-hooks/useNewSessionWithGameData.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/sessions/-hooks/useSessionForm.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/sessions/-hooks/useSessionFormState.ts
59.5% 56.6%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/sessions/-hooks/useUpdateSessionData.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/sessions/-modals/CreateSessionPlayerModal.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/sessions/-modals/UpdateSessionPlayerModal.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/sessions/-utils/sessionFormOpts.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/sessions/new_.$gameId.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/sessions/new.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/sessions/update_.$sessionId.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/settings/-components/AccountSettings.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/settings/-components/AdvancedSettings.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/settings/-components/BggSettings.tsx
72.2% 87%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/settings/-components/DangerZoneSection.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/settings/-components/EnvOverrideHint.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/settings/-components/ExternalLoginsSection.tsx
90.9% 87.5%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/settings/-components/GameNightsSettings.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/settings/-components/GeneralSettings.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/settings/-components/SettingsSection.tsx
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/settings/-components/SettingsSidebar.tsx
93.3% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/settings/-components/SettingsToggle.tsx
80% 55.5%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/settings/-components/ShelfOfShameSettings.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/settings/-components/SsoSettings.tsx
95% 92.5%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/settings/-hooks/useAccountData.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/settings/-hooks/useDangerZone.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/settings/-hooks/useExternalLogins.ts
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/settings/-hooks/useSettingsData.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/settings/-hooks/useSsoSettings.ts
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/settings/-modals/ChangePasswordModal.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/settings/-modals/CreateUserModal.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/settings/-modals/EditUserModal.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/settings/-modals/ResetConfirmModal.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/settings/-modals/TempPasswordModal.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/settings/-utils/playerLinkOptions.ts
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/settings/-utils/settingsFormOpts.ts
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/settings/index.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/shames/-components/NoShames.tsx
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/shames/-components/ShameGame.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/shames/-hooks/useShameData.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/routes/shames/index.tsx
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/authService.ts
48% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/badgeService.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/changeDetectionService.ts
42.8%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/compareService.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/countService.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/dashboardService.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/gameNightService.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/gameService.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/imageService.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/leaderboardService.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/loanService.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/locationService.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/maintenanceService.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/manualService.ts
33.3%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/oidcAdminService.ts
75% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/playerService.ts
38%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/queries/auth.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/queries/basdges.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/queries/compare.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/queries/count.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/queries/dashboard.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/queries/gameNights.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/queries/games.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/queries/invalidations.ts
85.7% 83.3%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/queries/leaderboard.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/queries/loans.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/queries/locations.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/queries/manuals.ts
50%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/queries/oidc.ts
73.3%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/queries/players.ts
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/queries/queryFactory.ts
62.5% 50%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/queries/sessions.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/queries/settings.ts
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/ragService.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/sessionService.ts
0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/services/settingsService.ts
41.1%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/test/test-utils.tsx
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/utils/apiUrl.ts
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/utils/axiosInstance.ts
7.3% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/utils/dateUtils.ts
96% 91.8%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/utils/errorUtils.ts
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/utils/formUtils.ts
100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/utils/i18n.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/utils/ItemStateUtils.ts
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/utils/languageUtils.ts
40% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/utils/localDate.ts
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/utils/localeUtils.ts
100% 70%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/utils/numberUtils.ts
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/utils/priceUtils.ts
100% 87.5%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/utils/publicUrl.ts
100% 100%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/utils/redirectUtils.ts
83.3% 87.5%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/utils/routeSchemas.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/utils/sentry.ts
0% 0%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/utils/stringUtils.ts
93.7% 75%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/utils/tokenRefresh.ts
95% 90.9%
/home/runner/work/BoardGameTracker/BoardGameTracker/boardgametracker.client
/src/utils/zodValidator.ts
100% 100%

@mregni
mregni merged commit 72a6710 into master Oct 9, 2026
15 checks passed
@mregni
mregni deleted the worktree-fix+review-bugs branch October 9, 2026 07:25
mregni added a commit that referenced this pull request Oct 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant