Commit graph

348 commits

Author SHA1 Message Date
8c9669217d CHANGELOG/ADR: bekreft utrulling av Jakter Jesper-visningsmodus
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-24 08:49:18 +02:00
7614c4b83a Legg til Jakter Jesper som visningsmodus for netto-scoring (ADR-106)
Bruker beskrev en turneringsform (start på -spillehandicap, brutto mot
par løpende, lavest sluttsum vinner) og spurte om dette egentlig var en
presentasjonsform fremfor en ny turneringsform. Riktig observasjon:
sluttsummen er matematisk identisk med stroke_net sitt netto-til-par.

Ny tournament.net_display_style ('standard'/'hunt', migrasjon 092), kun
gyldig sammen med scoring_method='stroke_net'. _attach_stroke_play_columns
fikk én stroke_val()-hjelper som bytter net_total (gradvis slagindeks-
basert) med gross_total - playing_handicap (hele handicapet trukket fra
med én gang) når hunt er aktiv -- ingen ny motorfunksjon. Ny, generelt
tilgjengelig tiebreak-verdi lowest_playing_hcp.

5 nye pytest-tester + full regresjon (198/198), tsc rent, full-stack
scratch-verifisert (hånd-utregnede tall matchet eksakt, offentlig
følg-live + utskrift arvet visningen uten kodeendring der).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-24 08:46:35 +02:00
c8bfe96eb6 CHANGELOG: bekreft utrulling av kompakt Score-FAB
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-23 18:13:59 +02:00
b45aa5bbe4 Erstatt flytende Registrer score-banner med kompakt hjørne-FAB (V0)
Fullbredde-bunnbanneret hadde tre runder med bugs i skjul/vis-ved-
scroll-mekanismen (playerListReached), sist når det ble hengende synlig
over Kommentarer. Bruker avviste en fjerde punktfiks og ba i stedet om
en redesign: en liten, hjørne-forankret FAB som er liten nok til at den
ikke trenger å skjule seg igjen for å unngå å dekke innhold.

Ny frontend/components/compact-score-fab.tsx (V0-eksport, integrert
uendret). round-detail.tsx: playerListReached-mekanismen fjernet i sin
helhet (state + effekt + den sårbare mapExpanded-vakten), erstattet med
CompactScoreFab drevet av eksisterende inFlowButtonVisible. Netto -75
linjer.

Verifisert i full-stack scratch (3 spillere + 6 kommentarer): FAB
forblir synlig og ikke-obstruktiv helt ned til og forbi Kommentarer,
lys+mørk modus, 48px trykkflate. tsc rent.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-23 08:34:39 +02:00
9d44e1cadb CLAUDE.md: noter norsk som standardspråk i chat + CHANGELOG-notat om reversert punktfiks
CLAUDE.md hadde ikke skriftlig instruks om norsk kommunikasjon fra før --
lagt til under Arbeidsmåte. CHANGELOG punkt 164 omskrevet til å
reflektere at punktfiksen for den flytende knappen ble reversert (bruker
ønsker en redesign via V0 i stedet, ikke bare enda en fiks i
skjul/vis-mekanismen som allerede har hatt tre runder med bugs).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-23 08:04:29 +02:00
0d690e84d8 Revert "Fiks flytende Registrer score-knapp som ble hengende over Kommentarer"
This reverts commit 3b90061c73.
2026-08-23 08:03:35 +02:00
3b90061c73 Fiks flytende Registrer score-knapp som ble hengende over Kommentarer
playerListReached-effekten i round-detail.tsx hadde en stale
"if (!mapExpanded) return"-vakt igjen fra før knappens synlighets-
trigger ble frikoblet fra mapExpanded (se CHANGELOG #146). Siden
banekartet er kollapset som standard, kjørte effekten aldri for de
fleste brukere -- playerListReached ble værende false for alltid, og
knappen sluttet aldri å vises igjen etter å ha dukket opp forbi
side-flyt-knappen, inkl. over Kommentarer-seksjonen lengre ned.

Fjernet vakten, effekten måler nå alltid. Verifisert i full-stack
scratch med samme scenario som brukerens skjermdump (3 spillere + 6
kommentarer), aria-hidden bekreftet korrekt gjennom hele scrollet.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-23 07:54:11 +02:00
6fdd40ae5c CHANGELOG: bekreft utrulling av org-turnering-stats-blanding (ADR-105)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-22 17:17:53 +02:00
c5b5f441da Bland org-turnering-runder inn i personlig statistikk-dashboard (ADR-105)
Punkt 3 i scoring-paritet-gap-listen: GET /rounds/stats/summary leste
tidligere kun frittstående runder. Ny _fetch_tournament_stats_rows()
speiler hole_history.py sin N+1-per-org-henting og blander resultatet
inn i samme by_round/stat_level_by_round/played_at_by_round-dict-er som
personlige rader -- ingen endring i selve aggregeringslogikken
(_resolve_stats_window/_build_round_series/_summarize_rounds er allerede
generiske). Kilde-antall vises separat i UI (samme presedens som
hole_history.py sin times_personal/times_tournament).

5 nye pytest-tester + full regresjon (193/193), tsc rent, full-stack
scratch-verifisert.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-22 17:15:05 +02:00
5ef8d155e7 CHANGELOG: bekreft utrulling av flerspiller-scorekort-grid + offline-kø (ADR-104)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-22 07:53:00 +02:00
629197d22a Fullt flerspiller-scorekort-grid + offline-kø for score-føring (ADR-104)
Punkt 4 og 1 i scoring-paritet-gap-listen, bygget samtidig (samme fil,
begge små/uavhengige endringer). Ny TournamentScorecardGrid erstatter
pille-rad + enkelt-spiller-HoleGrid (nå slettet) med et ekte
alle-spillere×alle-hull-rutenett, samme struktur som round-detail.tsx
sin ScorecardGrid men denne filens egne classify/scoreMarkClasses.
updateHoleFull fikk samme offline-kø-/409-håndtering som round-detail.tsx
sitt etablerte mønster (ADR-028/057/060), samme delte offline-queue.ts
uendret. Ingen backend-endring.

Ikke rullet ut mot ekte containere ennå -- venter på brukerbekreftelse.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-22 07:49:05 +02:00
8c3cdfff2e CHANGELOG: bekreft utrulling av slag-for-slag GPS-avstandsmåling (ADR-103)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-22 07:21:46 +02:00
885dcac4e5 Slag-for-slag GPS-avstandsmåling for org-turneringer (ADR-103)
Ny tournament_round_shot-tabell (org-scopet RLS, FK-et til
tournament_round_participant + hole_number siden tournament_round_hole
kanskje ikke finnes ennå). ShotMeasurementSheet/MapPointPicker gjenbrukt
uendret; ShotMeasurementEntry generalisert fra en lokal round-detail.tsx-
funksjon til en delt, URL-parameterisert komponent. Deling går til den
rundespesifikke kommentartråden (ADR-102) i stedet for Banter Board.
Autorisasjon speiler update_hole (self/org-admin), strengere enn ADR-102s
kommentar-nivå.

Migrasjon 091 IKKE kjørt mot ekte teecup_db ennå -- venter på
brukerbekreftelse før utrulling.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-22 07:16:14 +02:00
bd965ba2ed CHANGELOG: bekreft utrulling av rundespesifikk kommentartråd (ADR-102)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-22 06:41:43 +02:00
d8d1cf39ae Rundespesifikk kommentartråd for org-turneringer (ADR-102)
Ekte parallell til frittstående runders RoundMessages (ADR-044), ikke
en utvidelse av Banter Board (ADR-025) -- ny org-scopet (RLS)
tournament_round_message-tabell, én tråd per turneringsrunde. Reaksjoner
og trådede kommentarer med via eksisterende PostEngagement-komponent
uendret; @-tagging og sanntid bevisst utenfor v1 (se ADR-102).

Migrasjon 090 IKKE kjørt mot ekte teecup_db ennå -- venter på
brukerbekreftelse før utrulling.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-22 06:39:44 +02:00
a915fa7bc4 Skriv ned full gap-analyse for scoring-paritet (frittstående vs. org-turnering)
Erstatter den tidligere kun-muntlige "8-punktslisten" (referert i
ADR-099/100 men aldri committet noe sted) med en grundig, kodeverifisert
liste over 8 gjenstående gap + 1 i motsatt retning, i FEATURE_BACKLOG.md.
Ren dokumentasjon -- ingen kode endret.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-22 05:49:27 +02:00
9d4b4de590 Noter krav om inkrementell deltaker-id (startnummer) for turneringer
Fanget opp i FEATURE_BACKLOG.md (ikke designet/bygget ennå) + en
pekende note i scorekort-spec-dokumentet der id-en skal vises.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-22 05:32:23 +02:00
89fd2bbfea CHANGELOG: bekreft utrulling av leaderboard hull-for-hull-utvidelse (ADR-101)
Ingen migrasjon. teecup_api + teecup_frontend bygget og restartet.
Health-sjekk OK.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-22 05:27:45 +02:00
dcc2a9275c Hull-for-hull-utvidelse i den autentiserte leaderboard-fanen (ADR-101)
Klikk på en spiller i slagspill/netto/Stableford-leaderboardet
ekspanderer nå raden til Ut/Inn-tabeller med hull-for-hull-score, portert
fra det tilsvarende mønsteret på den offentlige "Følg live"-siden. Nytt
lite, isolert backend-endepunkt (tournament_participant_id-nøkkede
hull), ingen migrasjon. StrokePlayLeaderboard sin LeaderboardRow-type
er uendret -- nytt valgfritt prop-sett på komponenten selv.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-22 05:26:46 +02:00
4a415ac377 CHANGELOG: bekreft utrulling av kjedet flerspiller-scoring (ADR-100)
Ingen migrasjon (ingen backend-endring). teecup_api + teecup_frontend
bygget og restartet. Health-sjekk OK.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 23:02:03 +02:00
707df01e2a Kjedet flerspiller-scoring i ScoreTab (ADR-100) -- steg 2 av parity-planen
Hull-først kortliste + kjedet flerspiller-veiviser (V0-skall, ekte
skjemakomponenter fra HoleStatsSheet/TournamentScoringWizard). Ingen
backend-endring. Tre reelle bugs funnet og rettet i scratch: standardhull-
valg racet mot ufullstendig data, auto-hopp uteble for spiller 2+ pga.
stale state ved spillerbytte, DSQ'et spiller blokkerte "hull ferdig"
permanent.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 23:00:22 +02:00
71c1b81e3b CHANGELOG: bekreft utrulling av flight-scoping i ScoreTab (ADR-099)
Migrasjon 089 kjørt mot ekte teecup_db, teecup_api + teecup_frontend
bygget og restartet. Health-sjekk OK.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 21:54:52 +02:00
4587503d03 Flight/gruppe-scoping i ScoreTab (ADR-099) -- steg 1 av parity-planen
ScoreTab viste hele turneringsfeltet i stedet for brukerens egen
utslagsgruppe. Defaulter nå til egen flight med "vis hele feltet"-
veksling og fallback når gruppe mangler. is_self beregnes server-side
(aldri rå user_id). Lukker et reelt RLS-hull på tournament_round_group
funnet underveis (migrasjon 089).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 21:46:38 +02:00
dd974678fa Skjul HCP på offentlig leaderboard for rene bruttoslagspill-turneringer
Bruker: "når det er brutto som er hovedkonkurransen trenger vi ikke se
hcp i leaderboarden" -- HCP er kun meningsfullt der den faktisk brukes
til slagfordeling (netto/stableford/Københavner/BBB), ikke ren brutto/
eclectic-gross. PublicTournamentInfo += scoring_method (manglet før),
leaderboard-raden skjuler nå HCP-teksten når turneringens scoring_method
er stroke_gross eller eclectic_gross. Verifisert mot ekte Klubbmesterskap
2026 (bekreftet stroke_gross) i scratch før utrulling.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 20:20:22 +02:00
3a9ae02841 Rett Thru-kolonnens vertikale justering i offentlig leaderboard
Bruker rapporterte fra ekte mobilbruk (teecup.golf, live): THRU-etiketten
sto lavere enn I DAG/TOTAL. Thru-verdien manglet samme min-h-10 som
ScoreShape (brukt av I dag/Total) gir de andre kolonnene -- hele
Thru-kolonnen ble dermed lavere og sentrerte etiketten ut av linje.
Verifisert rettet i scratch før utrulling.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 20:14:48 +02:00
e54902f109 CHANGELOG: bekreft utrulling av utskriftsfunksjon + offentlig individuell live
Begge byggene (dagens tidligere print-feature/valideringsfiks-bygg, og
dagens siste bygg med offentlig individuell "Følg live") bekreftet friske
og verifisert mot ekte teecup.golf. Flagger én reell gjenstående sak:
selve PDF-nedlastingsknappene er ikke klikk-gjennom-testet ennå.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 20:10:19 +02:00
b8e7d1d004 Rett navn-avkorting på smale mobilskjermer i offentlig leaderboard
Funnet under scratch-verifisering (360px viewport): spillernavn ble kuttet
med "..." ("Erol Haag..."), under lesbarhetsbarren (CLAUDE.md, ufravikelig
tilgjengelighetsregel). Navnet får nå bryte til ny linje i stedet for å
avkortes -- undertittelen (HCP/klasse) beholder truncate siden den er
mindre kritisk. Strammet også inn radens gap/padding på de minste
skjermene for å gi navnekolonnen mer plass. Verifisert på nytt mot 360px
med et bevisst langt testnavn, bekreftet OK.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 20:08:11 +02:00
9fad4b3f38 Offentlig "Følg live" for individuelle turneringer: V0-UI + full kobling
Fullfører ADR-098. Ny components/public-individual-live.tsx (V0-bygget,
presentasjonslaget uendret fra eksporten) koblet til de ekte endepunktene
fra forrige commit. Rettet en reell modellmismatch underveis: V0-mock-en
modellerte hver runde som sitt eget separate leaderboard, den ekte
backend-beregningen er ett samlet, kumulativt turnering-leaderboard --
rundevelgeren styrer nå kun hvilken rundes hull-for-hull som lastes.

Ny offentlig GET .../rounds/{round_id}/participants/{tournament_participant_id}
/holes for hull-for-hull-utvidelsen (egen rute, ikke gjenbruk av
frittstående-runders tilsvarende -- ulik datamodell).

app/t/[id]/live/page.tsx avgjør nå format SERVER-side før noe rendres,
unngår klient-side-feilklassen fra forrige commit helt for denne siden.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 19:50:35 +02:00
f207be374f Offentlig "Følg live" for individuelle turneringer: backend + Program-fiks
Org-individuelle turneringer manglet en fungerende offentlig tilskuerside
helt (bevisst utsatt i FEATURE_BACKLOG.md 2026-08-14, "hvis/når etterspurt"
-- nå etterspurt). Denne runden bygger backend-grunnmuren:

- PublicTournamentInfo += format_type (manglet, landingssiden kunne ikke
  skille format offentlig).
- Ny GET /public/tournaments/{id}/rounds -- rundeliste med utledet status
  (ikke startet/pågår/fullført).
- Ny GET /public/tournaments/{id}/individual-leaderboard -- gjenbruker
  _compute_individual_standings uendret, fjerner kun player_id, inkluderer
  HCP (bruker bekreftet eksplisitt).
- Sanntid: broadcast_live_update() koblet inn i _recompute_round_score,
  gjenbruker samme WebSocket-kanal Cup-siden allerede bruker (ADR-027-
  mønsteret), ingen ny WS-infrastruktur.
- public-tournament.tsx sin "Program"-seksjon viser nå rundeliste for
  individuelle turneringer i stedet for en alltid-tom Cup-økt-liste.

Selve "Følg live"-sidens UI (V0) og /t/[id]/live sin format-forgrening
gjenstår -- egen commit når V0-eksporten er klar.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 19:44:13 +02:00
f9ae32f4e1 Kopierbar offentlig lenke + trygg fallback for ikke-innlogget besøkende
Organisator delte ved et uhell sin egen admin-URL (/tournaments/{id}?org=...)
i stedet for den ekte offentlige (/t/{id}) -- lenken fantes fra før, men var
kun ren, ikke-kopierbar tekst. tournament-presentation.tsx fikk en ekte
kopier-knapp.

Reell, uavhengig bug: tournament-router.tsx falt ubetinget tilbake til
Cup-format-adminskjermen ved ENHVER feil i formatoppslaget, inkl. 401 for en
ikke-innlogget besøkende -- viste et ødelagt lag-oppsett-skjermbilde for en
individuell turnering. Skiller nå 401 fra andre feil og sender videre til
den ekte offentlige siden i stedet.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 19:44:02 +02:00
6644447b3e CHANGELOG: bekreft full opprydning av Tjøme-baneforvirringen mot ekte teecup_db
Alle 4 runder peker nå på riktig offisiell bane, 51 spilleres utslag
korrekt flyttet, tre duplikat-baner slettet, lekket bane-mal rettet.
Gitignorer backups/ (fulle databasedumper skal aldri committes).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 17:35:00 +02:00
1e3ffe634b Ærlig feilmelding for ugyldig kilde-data ved baneimport (EXTERNAL_DATA_INVALID)
Rotårsak for "banen er allerede importert"-forvirringen rundt Tjøme-baner:
teeoffs egen hull-data hadde en duplisert hcp-indeks (13 to ganger, 14
manglet). Manglende validering lot dette komme gjennom og feile stille på
en UNIQUE-constraint, oversatt til den misvisende DUPLICATE-meldingen.
Legger til eksplisitt 1-18-validering før lagring, med en ærlig feilkode/
-melding, i både teeoff- og GolfAPI-import-stiene og alle fire frontend-
kallstedene.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 17:11:41 +02:00
546900c2d6 Før endringer i turneringsoppsettet
Some checks failed
Backend-tester / test (push) Successful in 1m8s
Frontend-tester / test (push) Failing after 20s
2026-08-21 13:54:01 +02:00
64d57f56ba CHANGELOG: bekreft utrulling av shotgun-start
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 09:03:22 +02:00
30d009b490 CHANGELOG/ADR-096/BACKLOG: logg for shotgun-start
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 08:59:58 +02:00
9f81797324 Shotgun-start: frontend (individuell + Cup-format)
Løpende/Shotgun-veksler i rundens gruppeoppsett og øktoppsett, per-
gruppe/per-match starthull-felt i shotgun-modus. Fant og rettet en
reell bug underveis: begge skjermene hadde en hardkodet sequence-sort
som stille overstyrte backendens starthull-sortering for shotgun.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 08:59:54 +02:00
f1575c9b42 Shotgun-start: backend (migrasjon 088, ADR-096)
Ny start_mode ('consecutive'/'shotgun') på tournament_round + session,
og valgfri start_hole på tournament_round_group + match. Shotgun: alle
grupper/matcher går ut samtidig, sortert etter starthull i stedet for
klokkeslett. Reverserer/utvider migrasjon 084s bevisste "ikke shotgun"
fra 2026-08-18 -- nytt behov oppdaget under utskrift-planlegging.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 08:59:48 +02:00
0792205c64 CHANGELOG: bekreft utrulling av hindrings-/kartretning-fiksen
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 08:06:25 +02:00
a3f306c388 CHANGELOG: logg for cut-kaskade, sorterbare kolonner, Ny runde-fiksene og Score-fane-rettelsene
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 08:05:17 +02:00
e940e932c1 Score-fanen: flytende knapp ved mange hindringer, hindringsrekkefølge, kartretning
- Flytende "Registrer score" trigges nå av faktisk synlighet til
  side-flyt-knappen, ikke av om banekartet er utvidet -- en lang
  hindringsliste alene (uten utvidet kart) kunne dytte knappen ut av
  syne uten at den flytende versjonen noensinne dukket opp.
- Hindringslisten sortert fra fjernest (øverst) til nærmest (nederst),
  matcher loddrett telefon-holdning med green øverst/utslag nederst.
  Bakkant brukt som sorteringsnøkkel der en finnes.
- Kartretning ved slagmåling følger nå ekte utslag->green-geometri
  (green opp/utslag ned) når begge er kjent, vinner over den eldre
  forrige-slag-gjetningen.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 08:05:14 +02:00
a0163eaa16 Ny runde-veiviseren: tre fikser (overleggsmeny, HCP-overstyring, statistikk-default)
- "Administrer runde"-dialogen lukker seg nå automatisk ved navigasjon
  til "Spillere og runde" (var stående åpen ved samme-rute-navigasjon).
- HCP kan nå overstyres for en kontokoblet medspiller fra første stund
  i veiviseren, ikke bare senere via "Runde og runde". Backend sitt
  add_participant æret aldri en eksplisitt overstyring for user_id,
  ulikt PATCH-endepunktet (ADR-038-avvik, nå rettet).
- Standard statistikknivå for en NY medspiller er nå "Kun slag" i
  stedet for å arve scoreførerens eget valg.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 08:05:05 +02:00
6603e94fd3 Sorterbare kolonner i Spillere-tabellen (turneringsoppsett)
Klikk header sykler stigende/synkende/opprinnelig rekkefølge for
Spiller/Hcp/Klasse/Statistikknivå/Status/Kjønn/Alder. Runde-kolonnene
og handlingskolonnen forblir usorterbare. V0-mønster integrert.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 08:04:57 +02:00
544c952cab Kaskader cut-resultatet til alle senere runder (ADR-095)
Overlevere auto-legges til runder etter cut (tee kopiert fra cut-runden),
kuttede spilleres rundedeltakelse fjernes -- med mindre de allerede har
scorer der, da beskyttes dataene av eksisterende cut-sperre i stedet.
Bruker bekreftet eksplisitt: kaskade til ALLE runder, ikke bare neste.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 08:04:53 +02:00
7e41daf1de CHANGELOG: bekreft utrulling av hull-fremgang-scroll-fiksen
Bruker aksepterte eksplisitt den svakere verifiseringen på denne, med
plan om å reversere/justere om nødvendig.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 09:31:10 +02:00
dbb589d9f6 Fiks scroll ved automatisk hull-fremgang (samme header-høyde-fiks som #142)
scrollToHolePanel() brukte samme flawed scroll-mt-28-mønster som
scrollToPlayerList() hadde i #142 -- byttet til samme getHeaderHeight()-
baserte manuelle scroll. Denne kalles fra BÅDE manuell Forrige/Neste OG
automatisk hull-fremgang etter siste spillers siste steg. Kunne IKKE
klikkes gjennom og verifiseres presist denne runden -- scratch-
nettleserøkten hard-reloadet uforklarlig på ethvert router.replace-kall,
også mot den ekte /my-rounds/[id]-ruta. Notert ærlig som et
verifiseringsgap i CHANGELOG.md #143, ikke skjult. Ikke rullet ut ennå.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 09:28:06 +02:00
ecb3362058 CHANGELOG: bekreft utrulling av live header-høyde-fiksen og hide-on-reach
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 09:00:20 +02:00
116600cd3c Fiks scroll-til-spillerliste for godt: mål header-høyden live, ikke hardkodet
Presis scratch-måling avdekket at den hardkodede 112px-antagelsen (arvet
fra scroll-mt-28) var feil -- ekte headerhøyde var 141.5px for en runde
med bane+utslag+dato+klokkeslett samtidig, siden headeren pakkes til
flere linjer avhengig av innhold. Ny getHeaderHeight() måler live i
stedet for å gjette. scrollToPlayerList() erstatter scrollIntoView med
manuell beregning; playerListReached bruker samme terskel (delt
SCROLL_GAP_PX-konstant) -- måtte rettes en gang til underveis da de to
brukte ulike terskler. Se CHANGELOG.md #142. Ikke rullet ut ennå.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 08:57:22 +02:00
76b306cb29 Skjul flytende "Registrer score" når spillerlisten er nådd/passert
Ny playerListReached-tilstand skjuler den flytende knappen (og dens
spacer) fra #140 så snart spillerlisten når headerens høyde -- forblir
skjult resten av veien nedover, dukker opp igjen kun ved scroll tilbake
opp forbi listen. Første forsøk med IntersectionObserver+rootMargin var
feil (fyrer ikke på interne terskler mens allerede overlappende) -- byttet
til en scroll/resize-lytter med direkte getBoundingClientRect-sjekk. Se
CHANGELOG.md #141. Ikke rullet ut ennå.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 08:45:54 +02:00
200d00cf5f CHANGELOG: bekreft utrulling av scroll-mt-fiks og flytende Registrer score-knapp
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 08:27:20 +02:00
ee31b2d00b Flytende "Registrer score" når banekartet er utvidet
V0-eksport integrert: RegisterScoreButton gjenbrukt i normal flyt
(kollapset) og som fixed bottom-pinnet knapp (utvidet), med gradient-
scrim, skygge, safe-area-inset-bottom, og aria-hidden/pointer-events-none
korrekt håndtert når skjult. Se CHANGELOG.md #140. Ikke rullet ut ennå.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 08:25:11 +02:00