feat(telemetry): matchup and direction context in timelines; live error groups
CI/CD Pipeline / Build and Push PocketBase Docker Image (push) Successful in 9s
CI/CD Pipeline / i18n Catalog Check (push) Successful in 47s
CI/CD Pipeline / Build and Push App Docker Image (push) Successful in 2m18s
CI/CD Pipeline / Deploy to Kubernetes (push) Successful in 8m29s

- h2h_viewed carries who-v-who, stats_sorted carries asc/desc via a
  timeline-only context prop
- error browser aggregates raw rows so new groups appear immediately
- catalogs re-extracted for shifted line references
This commit is contained in:
2026-08-27 10:47:57 -07:00
parent 9b51d61519
commit 7bda138d69
11 changed files with 280 additions and 245 deletions
+49 -49
View File
@@ -13,7 +13,7 @@ msgstr ""
"Language-Team: \n"
"Plural-Forms: \n"
#: src/features/matches/components/match-card.tsx:80
#: src/features/matches/components/match-card.tsx:83
msgid " (Losers)"
msgstr " (Perdedores)"
@@ -228,7 +228,7 @@ msgstr "{namesList} y 1 más"
msgid "{size}-team knockout"
msgstr "Eliminación directa de {size} equipos"
#: src/features/players/components/player-stats-table.tsx:446
#: src/features/players/components/player-stats-table.tsx:445
msgid "* Confidence penalty applied for players with <15 matches"
msgstr "* Se aplica una penalización de confianza a jugadores con menos de 15 partidos"
@@ -241,7 +241,7 @@ msgstr "* Si es necesario"
msgid "* PICKS shows correct picks / total picks made"
msgstr "* PICKS muestra aciertos / total de pronósticos realizados"
#: src/features/players/components/player-stats-table.tsx:449
#: src/features/players/components/player-stats-table.tsx:448
msgid "** Not an official rating"
msgstr "** No es una calificación oficial"
@@ -254,19 +254,19 @@ msgstr "&"
msgid "#{0}"
msgstr "#{0}"
#: src/features/players/components/player-stats-table.tsx:416
#: src/features/players/components/player-stats-table.tsx:415
msgid "• <0>AC:</0> Average Cups Per Match"
msgstr "• <0>AC:</0> Promedio de Vasos por Partido"
#: src/features/players/components/player-stats-table.tsx:419
#: src/features/players/components/player-stats-table.tsx:418
msgid "• <0>ACA:</0> Average Cups Against"
msgstr "• <0>ACA:</0> Promedio de Vasos en Contra"
#: src/features/players/components/player-stats-table.tsx:413
#: src/features/players/components/player-stats-table.tsx:412
msgid "• <0>ALM:</0> Average Loss Margin"
msgstr "• <0>ALM:</0> Margen Promedio de Derrota"
#: src/features/players/components/player-stats-table.tsx:410
#: src/features/players/components/player-stats-table.tsx:409
msgid "• <0>AWM:</0> Average Win Margin"
msgstr "• <0>AWM:</0> Margen Promedio de Victoria"
@@ -274,15 +274,15 @@ msgstr "• <0>AWM:</0> Margen Promedio de Victoria"
msgid "• <0>Bracket reset:</0> only picked if your bracket triggers it — worth double the Final"
msgstr "• <0>Reinicio de bracket:</0> solo se selecciona si tu bracket lo activa — vale el doble de la Final"
#: src/features/players/components/player-stats-table.tsx:425
#: src/features/players/components/player-stats-table.tsx:424
msgid "• <0>CA:</0> Cups Against"
msgstr "• <0>VC:</0> Vasos en Contra"
#: src/features/players/components/player-stats-table.tsx:422
#: src/features/players/components/player-stats-table.tsx:421
msgid "• <0>CF:</0> Cups For"
msgstr "• <0>VF:</0> Vasos a Favor"
#: src/features/players/components/player-stats-table.tsx:404
#: src/features/players/components/player-stats-table.tsx:403
msgid "• <0>L:</0> Losses"
msgstr "• <0>D:</0> Derrotas"
@@ -290,23 +290,23 @@ msgstr "• <0>D:</0> Derrotas"
msgid "• <0>Losers bracket:</0> 5, 10, 20, 40…"
msgstr "• <0>Bracket de perdedores:</0> 5, 10, 20, 40…"
#: src/features/players/components/player-stats-table.tsx:392
#: src/features/players/components/player-stats-table.tsx:391
msgid "• <0>M:</0> Matches"
msgstr "• <0>J:</0> Partidos"
#: src/features/players/components/player-stats-table.tsx:398
#: src/features/players/components/player-stats-table.tsx:397
msgid "• <0>MMR:</0> Matchmaking Rating"
msgstr "• <0>MMR:</0> Calificación de Emparejamiento"
#: src/features/players/components/player-stats-table.tsx:395
#: src/features/players/components/player-stats-table.tsx:394
msgid "• <0>T:</0> Tournaments"
msgstr "• <0>T:</0> Torneos"
#: src/features/players/components/player-stats-table.tsx:401
#: src/features/players/components/player-stats-table.tsx:400
msgid "• <0>W:</0> Wins"
msgstr "• <0>V:</0> Victorias"
#: src/features/players/components/player-stats-table.tsx:407
#: src/features/players/components/player-stats-table.tsx:406
msgid "• <0>W%:</0> Win Percentage"
msgstr "• <0>V%:</0> Porcentaje de Victorias"
@@ -314,11 +314,11 @@ msgstr "• <0>V%:</0> Porcentaje de Victorias"
msgid "• <0>Winners bracket:</0> 10, 20, 40, 80…"
msgstr "• <0>Bracket de ganadores:</0> 10, 20, 40, 80…"
#: src/features/players/components/player-stats-table.tsx:437
#: src/features/players/components/player-stats-table.tsx:436
msgid "• Average Cups/Match (25%)"
msgstr "• Promedio de Vasos/Partido (25%)"
#: src/features/players/components/player-stats-table.tsx:440
#: src/features/players/components/player-stats-table.tsx:439
msgid "• Average Win Margin (15%)"
msgstr "• Margen Promedio de Victoria (15%)"
@@ -326,11 +326,11 @@ msgstr "• Margen Promedio de Victoria (15%)"
msgid "• Each correct pick earns points, doubling every round"
msgstr "• Cada acierto suma puntos, y se duplican cada ronda"
#: src/features/players/components/player-stats-table.tsx:443
#: src/features/players/components/player-stats-table.tsx:442
msgid "• Match Volume Bonus (10%)"
msgstr "• Bono por Volumen de Partidos (10%)"
#: src/features/players/components/player-stats-table.tsx:434
#: src/features/players/components/player-stats-table.tsx:433
msgid "• Win Rate (50%)"
msgstr "• Porcentaje de Victorias (50%)"
@@ -720,7 +720,7 @@ msgstr "Elige un jugador"
msgid "Claymation"
msgstr "Plastilina"
#: src/features/players/components/league-head-to-head.tsx:102
#: src/features/players/components/league-head-to-head.tsx:107
msgid "Clear selected player"
msgstr "Quitar jugador seleccionado"
@@ -1335,11 +1335,11 @@ msgstr "¿Ya has jugado antes?"
#: src/app/routes/_authed/stats.tsx:56
#: src/features/bracket/components/match-dock.tsx:174
#: src/features/bracket/components/match-dock.tsx:219
#: src/features/matches/components/match-card.tsx:86
#: src/features/matches/components/match-card.tsx:230
#: src/features/players/components/league-head-to-head.tsx:193
#: src/features/players/components/profile/header.tsx:94
#: src/features/bracket/components/match-dock.tsx:224
#: src/features/matches/components/match-card.tsx:89
#: src/features/matches/components/match-card.tsx:233
#: src/features/players/components/league-head-to-head.tsx:198
#: src/features/players/components/profile/header.tsx:97
msgid "Head to Head"
msgstr "Cara a cara"
@@ -1611,7 +1611,7 @@ msgstr "Historial de partidos ({totalMatches})"
msgid "Match started!"
msgstr "¡Empezó el partido!"
#: src/features/players/components/player-stats-table.tsx:376
#: src/features/players/components/player-stats-table.tsx:375
#: src/features/players/components/profile/index.tsx:87
#: src/features/players/components/profile/skeleton.tsx:70
#: src/features/teams/components/team-profile/index.tsx:44
@@ -1630,11 +1630,11 @@ msgstr "Los partidos de regionales no tienen un orden específico"
msgid "Matches Played"
msgstr "Partidos jugados"
#: src/features/predictions/components/prediction-editor.tsx:249
#: src/features/predictions/components/prediction-editor.tsx:252
msgid "Matchup"
msgstr "Enfrentamiento"
#: src/features/predictions/components/prediction-editor.tsx:226
#: src/features/predictions/components/prediction-editor.tsx:229
msgid "Matchup details"
msgstr "Detalles del enfrentamiento"
@@ -1642,7 +1642,7 @@ msgstr "Detalles del enfrentamiento"
msgid "MAU"
msgstr "MAU"
#: src/features/players/components/league-head-to-head.tsx:123
#: src/features/players/components/league-head-to-head.tsx:128
msgid "Me"
msgstr "Yo"
@@ -1651,11 +1651,11 @@ msgid "Migrate Badge Progress"
msgstr "Migrar progreso de insignias"
#: src/features/players/components/player-stats-table.tsx:131
#: src/features/players/components/player-stats-table.tsx:356
#: src/features/players/components/player-stats-table.tsx:355
msgid "MMR"
msgstr "MMR"
#: src/features/players/components/player-stats-table.tsx:431
#: src/features/players/components/player-stats-table.tsx:430
msgid "MMR Calculation:"
msgstr "Cálculo de MMR:"
@@ -1775,7 +1775,7 @@ msgstr "No hay partidos programados"
msgid "No player activity found"
msgstr "No se encontró actividad de jugadores"
#: src/features/players/components/league-head-to-head.tsx:151
#: src/features/players/components/league-head-to-head.tsx:156
msgid "No players available"
msgstr "No hay jugadores disponibles"
@@ -1784,8 +1784,8 @@ msgstr "No hay jugadores disponibles"
msgid "No players enrolled yet"
msgstr "Aún no hay jugadores inscritos"
#: src/features/players/components/league-head-to-head.tsx:151
#: src/features/players/components/player-stats-table.tsx:486
#: src/features/players/components/league-head-to-head.tsx:156
#: src/features/players/components/player-stats-table.tsx:485
msgid "No players found matching \"{search}\""
msgstr "No se encontraron jugadores que coincidan con \"{search}\""
@@ -1818,7 +1818,7 @@ msgstr "No hay canción seleccionada"
msgid "No state captured"
msgstr "No se capturó ningún estado"
#: src/features/players/components/player-stats-table.tsx:319
#: src/features/players/components/player-stats-table.tsx:318
msgid "No Stats Available"
msgstr "No hay estadísticas disponibles"
@@ -2182,7 +2182,7 @@ msgid "rofl"
msgstr "carcajada"
#. placeholder {0}: match.round + 1
#: src/features/matches/components/match-card.tsx:79
#: src/features/matches/components/match-card.tsx:82
msgid "Round {0}"
msgstr "Ronda {0}"
@@ -2245,8 +2245,8 @@ msgstr "Buscar canciones..."
msgid "Search for teams to enroll..."
msgstr "Buscar equipos para inscribir..."
#: src/features/players/components/league-head-to-head.tsx:132
#: src/features/players/components/player-stats-table.tsx:332
#: src/features/players/components/league-head-to-head.tsx:137
#: src/features/players/components/player-stats-table.tsx:331
msgid "Search players"
msgstr "Buscar jugadores"
@@ -2283,7 +2283,7 @@ msgstr "Selecciona una insignia"
msgid "Select a device..."
msgstr "Selecciona un dispositivo..."
#: src/features/players/components/league-head-to-head.tsx:112
#: src/features/players/components/league-head-to-head.tsx:117
msgid "Select a player"
msgstr "Selecciona un jugador"
@@ -2382,7 +2382,7 @@ msgstr "Mostrar detalles"
#. placeholder {0}: filteredAndSortedStats.length
#. placeholder {1}: playerStats.length
#: src/features/players/components/player-stats-table.tsx:329
#: src/features/players/components/player-stats-table.tsx:328
msgid "Showing {0} of {1} players"
msgstr "Mostrando {0} de {1} jugadores"
@@ -2434,7 +2434,7 @@ msgstr "El segmento de la canción no debe durar más de 15 segundos"
msgid "Song start time is required"
msgstr "Se requiere la hora de inicio de la canción"
#: src/features/players/components/player-stats-table.tsx:350
#: src/features/players/components/player-stats-table.tsx:349
#: src/features/telemetry/components/shared/search-filter-bar.tsx:102
msgid "Sort:"
msgstr "Ordenar:"
@@ -2489,11 +2489,11 @@ msgstr "Empieza a escribir para buscar..."
msgid "Starts in"
msgstr "Comienza en"
#: src/features/players/components/player-stats-table.tsx:382
#: src/features/players/components/player-stats-table.tsx:381
msgid "Stat abbreviations and MMR info"
msgstr "Abreviaturas de estadísticas e información de MMR"
#: src/features/players/components/player-stats-table.tsx:389
#: src/features/players/components/player-stats-table.tsx:388
msgid "Stat Abbreviations:"
msgstr "Abreviaturas de estadísticas:"
@@ -2520,7 +2520,7 @@ msgstr "Estado"
#: src/components/sheet/slide-panel/slide-panel.tsx:40
#: src/features/login/components/player-prompt/index.tsx:115
#: src/features/login/components/player-prompt/index.tsx:126
#: src/features/predictions/components/prediction-editor.tsx:240
#: src/features/predictions/components/prediction-editor.tsx:243
#: src/features/tournaments/components/edit-rules.tsx:39
msgid "Submit"
msgstr "Enviar"
@@ -2543,7 +2543,7 @@ msgstr "Sistema"
msgid "T"
msgstr "T"
#: src/features/players/components/league-head-to-head.tsx:92
#: src/features/players/components/league-head-to-head.tsx:97
msgid "Tap an opponent below to compare"
msgstr "Toca un oponente abajo para comparar"
@@ -2810,7 +2810,7 @@ msgstr "Próximos"
msgid "Update Match"
msgstr "Actualizar partido"
#: src/features/players/components/profile/header.tsx:89
#: src/features/players/components/profile/header.tsx:92
msgid "Update Name"
msgstr "Actualizar nombre"
@@ -2853,8 +2853,8 @@ msgstr "Ver bracket"
msgid "View Groups"
msgstr "Ver grupos"
#: src/features/bracket/components/match-dock.tsx:182
#: src/features/matches/components/match-card.tsx:91
#: src/features/bracket/components/match-dock.tsx:187
#: src/features/matches/components/match-card.tsx:94
msgid "View head-to-head"
msgstr "Ver cara a cara"
@@ -2935,7 +2935,7 @@ msgstr "Final del bracket de ganadores"
#: src/components/stats-overview.tsx:103
#: src/components/stats-overview.tsx:136
#: src/features/players/components/player-stats-table.tsx:366
#: src/features/players/components/player-stats-table.tsx:365
msgid "Wins"
msgstr "Victorias"