Session 54: Audit cleanup — name edges + polish (2255 tests)

P1 name edge cases (BOTH playerName.js copies, kept identical):
- normalizeName strips hyphens (display+key): "Jung-hoo Lee" === "Jung Hoo Lee".
- nameKey strips single-letter MIDDLE tokens: "Josh H Smith" === "Josh Smith"
  (keeps first+last; real middle names + collapsed initials untouched).
- richie -> richard added to NICKNAMES.

P2 polish:
- Team Hub names normalized at the source (teamService.getTeamHub) so
  "J.C. Escarra" renders as "JC Escarra" like the dashboard.
- snapshotService dedup keeps the highest-confidence GRADE but the richest
  DISPLAY (accented "José" over "Jose") so prop rows match the pitcher line.
- correlationWarning names the game: "2 legs from the same game (NYY @ BOS)".

Backend 2246 -> 2255 tests (+9), 194 suites. Web build clean (exit 0).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kev
2026-06-19 15:45:07 -04:00
parent b012da13f8
commit 8629021774
11 changed files with 137 additions and 12 deletions
+26 -2
View File
@@ -4,8 +4,32 @@
2026-06-19
## Current Phase
SHIP BUILD v53.0 — Social preview fix: clean OG/Twitter meta + dynamically
generated 1200x630 OG image.
SHIP BUILD v54.0 — Audit cleanup: name edge cases (hyphen / middle-initial /
richie), Team Hub name normalization, accent-keeping dedup, parlay copy.
## Session 54 (2026-06-19) — SHIPPED ✅ AUDIT CLEANUP
Backend 2246 → **2255 tests** (+9), 194 suites. Web build clean (exit 0).
### Phase 1 — name edge cases (BOTH playerName.js copies, kept identical)
- **Hyphens** stripped in `normalizeName` display+key (`.replace(/-/g,' ')`) so
"Jung-hoo Lee" === "Jung Hoo Lee".
- **Middle single-letter tokens** stripped in `nameKey` (keep first + last) so
"Josh H Smith" === "Josh Smith". Guarded: real middle names ("Juan Carlos
Smith") and collapsed first initials ("JC Escarra") are untouched.
- **`richie: 'richard'`** added to NICKNAMES.
### Phase 2 — polish
- **Team Hub names normalized** at the source: `teamService.getTeamHub` now maps
every roster player (MLB + snapshot-fallback) through `normalizeName().display`
→ "J.C. Escarra" renders as "JC Escarra", matching the dashboard.
- **Accent-keeping dedup** (`snapshotService`): when collapsing variant grades,
the GRADE picked is still highest-confidence, but the DISPLAY now prefers the
accented variant ("José" over "Jose") so prop rows match the pitcher line.
- **Parlay copy**: same-game (different-team) warning now names the game —
"⚠ 2 legs from the same game (NYY @ BOS) — correlated".
## Session 53 (2026-06-19) — SHIPPED ✅ SOCIAL PREVIEW FIX
## Session 53 (2026-06-19) — SHIPPED ✅ SOCIAL PREVIEW FIX