diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 456686b..77730a0 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -247,7 +247,8 @@ "Bash(awk -F: '$1>=782 && $1<=980')", "Bash(python3 -)", "Bash(python3 -c \"import json,sys; d=json.load\\(sys.stdin\\); print\\(len\\(d\\), 'facilities'\\); print\\(d[:2]\\)\")", - "Bash(rm -f /tmp/claude-1000/-opt-teecup/a8bd2fc3-4b9c-4682-a2be-cf36e143de78/scratchpad/scratch.env /tmp/claude-1000/-opt-teecup/a8bd2fc3-4b9c-4682-a2be-cf36e143de78/scratchpad/scratch_app_pw.txt /tmp/claude-1000/-opt-teecup/a8bd2fc3-4b9c-4682-a2be-cf36e143de78/scratchpad/minio_user.txt /tmp/claude-1000/-opt-teecup/a8bd2fc3-4b9c-4682-a2be-cf36e143de78/scratchpad/minio_pass.txt /tmp/scratch_cookies2.txt)" + "Bash(rm -f /tmp/claude-1000/-opt-teecup/a8bd2fc3-4b9c-4682-a2be-cf36e143de78/scratchpad/scratch.env /tmp/claude-1000/-opt-teecup/a8bd2fc3-4b9c-4682-a2be-cf36e143de78/scratchpad/scratch_app_pw.txt /tmp/claude-1000/-opt-teecup/a8bd2fc3-4b9c-4682-a2be-cf36e143de78/scratchpad/minio_user.txt /tmp/claude-1000/-opt-teecup/a8bd2fc3-4b9c-4682-a2be-cf36e143de78/scratchpad/minio_pass.txt /tmp/scratch_cookies2.txt)", + "Bash(curl -s \"https://teecup.teeoff.no/tournaments/73b6bf38-90cd-4ef7-9535-8b8e108eaa9a?org=test-org-id&name=Test\")" ], "additionalDirectories": [ "/opt/teeoff/deploy", diff --git a/CLAUDE.md b/CLAUDE.md index cddac6b..c786176 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -732,11 +732,54 @@ Ferdig og verifisert: prinsipp som handicap-snapshotten (ADR-007). Server-til-server-kall (`teecup_api` → `http://teeoff_api:8000`, internt Docker-nettverk, ingen auth trengs). Ny migrasjon `010` (unik `external_course_ref` per org, - hindrer dupliserte importer). Bygges nå — se ADR-019 for alle fem - delbeslutningene. + hindrer dupliserte importer). Se ADR-019 for alle fem delbeslutningene. + **Bygget, scratch-verifisert MOT EKTE `teeoff_api`** (ikke en simulert + respons — ekte HTTP-kall til den kjørende produksjonscontaineren, kun + lesing): søkte opp "Borregaard" i teeoff sine 174 publiserte anlegg, + hentet Borregaard Golfklubb sin hovedbane (18 hull, 4 tee-farger × + kjønn), importerte den til en scratch-org — alle 18 hull med riktig + par/stroke-index (1-18, unik), alle 8 tee/tee_rating-rader med riktig + full_18 course/slope-rating verifisert direkte i databasen, opprettet + deretter en ekte økt med den importerte banen som `course_id` (beviser + hele veien til handicap-motoren fungerer, ikke bare selve importen). + Reimport av samme bane korrekt avvist (409 DUPLICATE, migrasjon 010 sin + indeks). Kryss-org-isolasjon bekreftet, ukjent teeoff-slug ga korrekt 404, + `test_isolation.sql` 12/12. Ekte typesjekket produksjonsbuild av + frontend-utvidelsen (bane-søk i program-skjemaet: søk anlegg → velg bane → + importer, samme UI-mønster som spiller-/bane-type-ahead ellers i appen). + **Rullet ut live 2026-07-18**, bruker bekreftet eksplisitt: migrasjon 010 + kjørt mot ekte `teecup_db` (kun én ny partiell unik-indeks, ingen + eksisterende rader rørt), begge containere bygget+redeployet, live + sjekker OK, `teeoff.no` upåvirket. **"Bygg i rekkefølgen ting brukes"- + planen gjenopptas nå** — blind draw-skjermen er neste steg. + **Reell produksjonsbug funnet OG fikset samme dag, rapportert av bruker + som faktisk brukte funksjonen:** brukeren klikket seg korrekt via + dashbord → turnering → Program-fane (bekreftet med skjermbilde + full + klikk-sti, ikke gjettet), åpnet "Hent bane fra teeoff", søkte "Tjøme", og + fikk feilmeldingen "Mangler organisasjon i lenken" — URL-en hadde da + MISTET `?org=...&name=...`. Root-cause: `OfficialCourseSearch` sitt eget + søke-`