No description
Find a file
Erol Haagenrud 52e0cfaaf9 Update Todos
Diagnostisere HCP-bug mot ekte data (gjort)

Fiks 1: filtrer valgte spillere bort fra listen (blind draw)

Fiks 3: tallvelger for slagregistrering (scorekort)

Fiks 4: hardkode full_18-scope i handicap-utregning (bekreftet bug)

Punkt 2: migrasjon 014 + kode (courses.py, handicap.py, matches.py, tournaments.py, frontend)

Scratch-verifisere punkt 2 (fletting, import, validering, remap)

Skrive ADR-029 + oppdatere FEATURE_BACKLOG.md

Presentere full plan og be om bekreftelse (ekte migrasjon + deploy)
Alle fire punkter er nå bygget og grundig scratch-verifisert. Oppsummering før jeg ber om bekreftelse på å rulle ut mot ekte systemer:

1 — Spillerliste: Fikset. Valgte spillere filtreres nå bort i stedet for å bare vises gråtonet.

3 — Tallvelger: Fikset. Ny StrokePicker (1–9, med utvidbar "10+"→10–19).

4 — HCP-bug: Bekreftet ekte kodebug (ikke bare synlighet). Jeg leste ekte produksjonsdata for testøkten din: front_9 + foursome, og alle fire deltakerne hadde NULL i handicap-feltene. Årsak: handicap-utregningen lette etter en tee-rating scopet til øktens hole_config, men slike rader lages i praksis kun med full_18-omfang — så den fant aldri noe for en front_9-økt. Din beskrevne formel (kombinert hcp/2, laveste side til 0 mottatte slag, resten fordelt fra stroke index 1) var allerede riktig implementert — bugen var at den aldri kjørte. Fikset og verifisert: identisk bruttoscore på begge sider ga nå et ikke-delt resultat, som beviser at hcp faktisk brukes.

2 — Tee/kjønn: Du hadde helt rett i presiseringen din — dette var større enn jeg først trodde. Kjønn er nå flyttet fra selve utslaget til ratingen (ny migrasjon 014_tee_gender_to_rating.sql), tee-valget i blind draw er blitt helt automatisk (ingen kjønnsvelger lenger), og manglende kjønn/rating avvises tydelig i stedet for å gjettes. Fikk egen ADR-029. Verifisert i fem separate runder, inkludert mot ekte teeoff-data (Borregaard) og en gjenskaping av akkurat Tjøme-mønsteret.

Bifunn, ikke fikset: en liten, urelatert 500-krasj (stroke-registrering på en bane uten registrerte hull) — vil du at jeg tar den også, eller lar den ligge som egen sak?

Utrullingsplan — dette er første gang i denne runden noe rører ekte data:

Migrasjon 014_tee_gender_to_rating.sql mot ekte teecup_db — slår sammen Tjømes 8 tee-rader til 4 (bevarer alle ratinger, reparerer alle referanser; mekanisk identisk med det jeg nettopp verifiserte i scratch)
2026-07-20 08:53:53 +02:00
.claude Update Todos 2026-07-20 08:53:53 +02:00
__pycache__ Scoring-runden er ferdig og verifisert for ekte (samme scratch-container-mønster, denne gangen med hele /opt/teecup montert siden handicap_engine.py er et toppnivå-søskenmodul til app-pakken). Alle 10 planlagte tester besto, inkludert fourball better-ball-aggregering, poeng-caching ved tidlig avgjørelse, den sammenhengende-prefiks-regelen, og ADR-014-bryteren. Fant og fikset underveis at SessionCreate manglet scoring_mode helt — hole_result-modus kunne aldri vært brukt via API-et uten den fiksen. 2026-07-16 14:38:42 +02:00
app Update Todos 2026-07-20 08:53:53 +02:00
frontend Update Todos 2026-07-20 08:53:53 +02:00
.dockerignore TeeCup er nå containerisert og live på https://teecup.teeoff.no. Dette var den mest hendelsesrike runden denne økten — første gang noe rørte ekte, permanent infrastruktur, og det viste seg berettiget: 2026-07-16 21:47:34 +02:00
.gitignore Add .gitignore to keep .env (DB secrets) out of version control 2026-07-16 07:39:08 +02:00
001_initial_schema.sql Første commit for teecup 2026-07-16 07:18:01 +02:00
002_roles_and_grants.sql Fix migration 002: psql does not interpolate :'var' inside DO $$ blocks 2026-07-16 08:24:48 +02:00
003_scoring_and_blinddraw.sql Utgangspunktet 2026-07-16 07:26:04 +02:00
004_auth.sql Ekte autentisering er bygget og verifisert. X-Debug-User-Id-stubben er helt fjernet, ingen fallback beholdt. 2026-07-16 15:16:53 +02:00
005_rls_null_guard.sql RLS-tomstreng-buggen er fikset og verifisert grundig. 2026-07-16 15:34:24 +02:00
006_scheduling_and_locale.sql Før kommunikasjon med V0 2026-07-17 21:40:42 +02:00
007_registration_and_player_fields.sql ADR-017 er skrevet inn, og migrasjonen er ferdig og verifisert: 2026-07-18 08:24:55 +02:00
008_link_player_by_email.sql Migrasjon 008 er live på ekte teecup_db, backend er redeployet, alt verifisert (teeoff.no upåvirket gjennom hele prosessen). 2026-07-18 09:03:37 +02:00
009_landing_pages_and_visibility.sql ADR-018 sin backend er ferdig, verifisert og live. Oppsummert: 2026-07-18 09:45:11 +02:00
010_official_course_unique_ref.sql Bygget, og verifisert grundig mot ekte infrastruktur — inkludert et ekte kall mot teeoff_api (søkte opp «Borregaard», importerte Borregaard Golfklubb sin 18-hulls hovedbane med alle hull, 4 tee-farger × kjønn, ratinger, og opprettet faktisk en økt med den importerte banen). Duplikat-import ble korrekt avvist (409), kryss-org-isolasjon holder, test_isolation.sql 12/12. 2026-07-18 12:44:05 +02:00
011_join_code_and_leading_side.sql ackend for the join-code, leading_side, and projected-standings work is fully verified against a fresh scratch database (migrations 001–011, test_isolation.sql 12/12, and live end-to-end checks: join-code generation/uniqueness, code resolution, visibility bypass on both the tournament view and registration — including case-insensitivity and rejection of a wrong code — plus a full hole-by-hole match simulation confirming leading_side/status_text stay in sync through "1 UP" → "AS" → a decided "9&7", with the leaderboard's projected points matching at each stage: 1.0/0.0 while A led, 0.5/0.5 at all-square, and settling to equal actual/projected once decided). 2026-07-19 09:23:35 +02:00
012_password_2fa_and_org_invitations.sql Update Todos 2026-07-19 10:36:50 +02:00
013_messaging.sql Backend, frontend og Caddy-endringen er alle klare og verifisert (Caddy-syntaksen validert OK). Dette er en stor runde — her er full plan for utrulling: 2026-07-19 22:26:45 +02:00
014_tee_gender_to_rating.sql Update Todos 2026-07-20 08:53:53 +02:00
ARCHITECTURE_DECISIONS.md Update Todos 2026-07-20 08:53:53 +02:00
CLAUDE.md Update Todos 2026-07-20 08:53:53 +02:00
docker-compose.yml MinIO-runden er ferdig, verifisert og live — ADR-018 er nå helt komplett, ingenting utsatt igjen bortsett fra selve opplastings-skjermen i frontend. 2026-07-18 11:25:52 +02:00
Dockerfile TeeCup er nå containerisert og live på https://teecup.teeoff.no. Dette var den mest hendelsesrike runden denne økten — første gang noe rørte ekte, permanent infrastruktur, og det viste seg berettiget: 2026-07-16 21:47:34 +02:00
FEATURE_BACKLOG.md Update Todos 2026-07-20 08:53:53 +02:00
handicap_engine.py Første commit for teecup 2026-07-16 07:18:01 +02:00
Live Tourney _ A Guide to Handicap Scoring in Golf for Tournaments.pdf Update Todos 2026-07-20 08:53:53 +02:00
SCGA Club Digest.pdf Update Todos 2026-07-20 08:53:53 +02:00
spilletyper-og-spilleformer-2023.pdf Update Todos 2026-07-20 08:53:53 +02:00
TeeOff-logo-Retina-1.avif Før kommunikasjon med V0 2026-07-17 21:40:42 +02:00
test_handicap_engine.py Første commit for teecup 2026-07-16 07:18:01 +02:00
test_isolation.sql ackend for the join-code, leading_side, and projected-standings work is fully verified against a fresh scratch database (migrations 001–011, test_isolation.sql 12/12, and live end-to-end checks: join-code generation/uniqueness, code resolution, visibility bypass on both the tournament view and registration — including case-insensitivity and rejection of a wrong code — plus a full hole-by-hole match simulation confirming leading_side/status_text stay in sync through "1 UP" → "AS" → a decided "9&7", with the leaderboard's projected points matching at each stage: 1.0/0.0 while A led, 0.5/0.5 at all-square, and settling to equal actual/projected once decided). 2026-07-19 09:23:35 +02:00