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 Rulle ut mot ekte teecup_db + containere, oppdatere .md-status Notere PDF-ressursene i CLAUDE.md/FEATURE_BACKLOG.md + minne Alt er rullet ut og verifisert: Migrasjon 014 kjørt mot ekte teecup_db: Tjømes 8 tee-rader slått sammen til 4 fysiske utslag, alle ratinger og match_participant-referanser intakte (bekreftet med en direkte spørring — 0 brutte referanser). Begge containere redeployet (teecup_api, teecup_frontend), boot-et rent, /health/dashboard → 200, teeoff.no upåvirket. Alle fire tilbakemeldingene dine er dermed løst og live. PDF-ene er notert i CLAUDE.md sin "Autoritative kilder"-seksjon (leses nå ved starten av hver økt) og i FEATURE_BACKLOG.md sitt punkt om de fire nye turneringsformatene, siden det er der de trolig blir mest relevante først. Jeg la også inn en tilsvarende referanse i min egen tvers-av-økt-hukommelse, slik at jeg husker å lese dem selv i en fremstidig, separat samtale om dette prosjektet.
This commit is contained in:
parent
52e0cfaaf9
commit
a5de225afe
4 changed files with 51 additions and 23 deletions
|
|
@ -325,7 +325,8 @@
|
||||||
"Bash(python3 -c \"import httpx\")",
|
"Bash(python3 -c \"import httpx\")",
|
||||||
"Bash(curl -s http://localhost:18800/health)",
|
"Bash(curl -s http://localhost:18800/health)",
|
||||||
"Bash(python3 /tmp/claude-1000/-opt-teecup/a8bd2fc3-4b9c-4682-a2be-cf36e143de78/scratchpad/test_hcp_fix.py)",
|
"Bash(python3 /tmp/claude-1000/-opt-teecup/a8bd2fc3-4b9c-4682-a2be-cf36e143de78/scratchpad/test_hcp_fix.py)",
|
||||||
"Bash(python3 /tmp/claude-1000/-opt-teecup/a8bd2fc3-4b9c-4682-a2be-cf36e143de78/scratchpad/test_tee_gender.py)"
|
"Bash(python3 /tmp/claude-1000/-opt-teecup/a8bd2fc3-4b9c-4682-a2be-cf36e143de78/scratchpad/test_tee_gender.py)",
|
||||||
|
"Bash(curl -s -o /dev/null -w \"%{http_code}\\\\n\" https://teeoff.no)"
|
||||||
],
|
],
|
||||||
"additionalDirectories": [
|
"additionalDirectories": [
|
||||||
"/opt/teeoff/deploy",
|
"/opt/teeoff/deploy",
|
||||||
|
|
|
||||||
|
|
@ -1396,12 +1396,13 @@ rader. (6) `_remap_course`: bane-bytte til en bane UTEN matchende
|
||||||
kjønnsrating avvist tydelig, bane-bytte til en bane MED matchende
|
kjønnsrating avvist tydelig, bane-bytte til en bane MED matchende
|
||||||
rating lykket.
|
rating lykket.
|
||||||
|
|
||||||
**Status: ✅ BYGGET OG SCRATCH-VERIFISERT 2026-07-19, IKKE ENNÅ RULLET UT**
|
**Status: ✅ BYGGET OG LIVE 2026-07-19.** Migrasjon 014 kjørt mot ekte
|
||||||
mot ekte `teecup_db` -- migrasjon 014 endrer ekte produksjonsdata
|
`teecup_db`, bruker bekreftet eksplisitt: Tjømes 8 tee-rader slått sammen
|
||||||
(Tjøme-utslagene slås faktisk sammen), venter derfor på eksplisitt
|
til 4 fysiske utslag, alle 8 `tee_rating`-rader fikk riktig `gender`,
|
||||||
brukerbekreftelse før den kjøres mot den ekte databasen, i tråd med
|
`match_participant`-referansene forble gyldige (0 brutte fremmednøkler
|
||||||
CLAUDE.md sin regel om å alltid vise planen og vente på bekreftelse før
|
etter migrasjonen, bekreftet med en direkte spørring). Begge containere
|
||||||
noe som migrerer ekte data kjøres.
|
(`teecup_api`, `teecup_frontend`) bygget og redeployet, `/health`/
|
||||||
|
`/dashboard` → 200, `teeoff.no` upåvirket.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
36
CLAUDE.md
36
CLAUDE.md
|
|
@ -3,10 +3,22 @@
|
||||||
Les dette først i hver økt. Det koder hva vi har bestemt og hvordan vi jobber.
|
Les dette først i hver økt. Det koder hva vi har bestemt og hvordan vi jobber.
|
||||||
|
|
||||||
## Autoritative kilder (les før du gjør noe)
|
## Autoritative kilder (les før du gjør noe)
|
||||||
- `ARCHITECTURE_DECISIONS.md` — hva som er bestemt og hvorfor (ADR-001…018). Fasit.
|
- `ARCHITECTURE_DECISIONS.md` — hva som er bestemt og hvorfor (ADR-001…029). Fasit.
|
||||||
- `FEATURE_BACKLOG.md` — hva som gjenstår, hva som er utsatt, hva som mangler.
|
- `FEATURE_BACKLOG.md` — hva som gjenstår, hva som er utsatt, hva som mangler.
|
||||||
- Endres en beslutning: legg til en ny ADR, ikke slett historikk. Hold begge
|
- Endres en beslutning: legg til en ny ADR, ikke slett historikk. Hold begge
|
||||||
filene oppdatert når noe avgjøres.
|
filene oppdatert når noe avgjøres.
|
||||||
|
- **Regelverk for HCP/slagfordeling — tre PDF-er lastet opp av brukeren til
|
||||||
|
prosjektroten 2026-07-19** (ikke innsjekket i git, kun lokale filer på
|
||||||
|
serveren): `spilletyper-og-spilleformer-2023.pdf`,
|
||||||
|
`Live Tourney _ A Guide to Handicap Scoring in Golf for Tournaments.pdf`,
|
||||||
|
`SCGA Club Digest.pdf`. Brukeren: disse tre gir til sammen en tydelig
|
||||||
|
beskrivelse av hvordan HCP og mottatte/tildelte slag skal beregnes/
|
||||||
|
fordeles. Les disse FØR videre arbeid med `handicap_engine.py`,
|
||||||
|
`app/handicap.py`, allowance-strategier (ADR-005/014) eller
|
||||||
|
slagfordeling (ADR-008) — spesielt relevant for de fire
|
||||||
|
turneringsformatene som ennå ikke er designet (Københavner/High-low-high/
|
||||||
|
Robbins/Try all, se FEATURE_BACKLOG.md), siden disse dokumentene trolig
|
||||||
|
dekker akkurat de reglene som trengs der.
|
||||||
|
|
||||||
## Sikkerhetsregler (ufravikelige)
|
## Sikkerhetsregler (ufravikelige)
|
||||||
- Rør ALDRI `teeoff`-databasen eller den ekte `teecup_db` uten at brukeren
|
- Rør ALDRI `teeoff`-databasen eller den ekte `teecup_db` uten at brukeren
|
||||||
|
|
@ -1832,8 +1844,9 @@ Ferdig og verifisert:
|
||||||
container (`python:3.12-slim`, `app/` og `handicap_engine.py` montert
|
container (`python:3.12-slim`, `app/` og `handicap_engine.py` montert
|
||||||
read-only), alt ryddet opp etter verifisering. Typesjekket
|
read-only), alt ryddet opp etter verifisering. Typesjekket
|
||||||
produksjonsbuild kjørt for frontend-fiksene (1+3), alle 16 ruter listet.
|
produksjonsbuild kjørt for frontend-fiksene (1+3), alle 16 ruter listet.
|
||||||
**Ikke rullet ut ennå** — venter på utrullingsbekreftelse. Punkt 2
|
**Rullet ut live 2026-07-19**, bruker bekreftet eksplisitt, se eget
|
||||||
(tee/kjønn-modellen) venter på designavklaring med bruker før noe bygges.
|
punkt lenger ned for punkt 2 (som ble bygget og rullet ut sammen med
|
||||||
|
disse tre i én utrulling).
|
||||||
|
|
||||||
- **Punkt 2 (tee/kjønn) BYGGET OG SCRATCH-VERIFISERT (2026-07-19, ADR-029),
|
- **Punkt 2 (tee/kjønn) BYGGET OG SCRATCH-VERIFISERT (2026-07-19, ADR-029),
|
||||||
samme dag, rett etter designavklaringen:** bruker bekreftet begge
|
samme dag, rett etter designavklaringen:** bruker bekreftet begge
|
||||||
|
|
@ -1886,10 +1899,13 @@ Ferdig og verifisert:
|
||||||
avvist tydelig, bane-bytte til en bane MED matchende rating lykket.
|
avvist tydelig, bane-bytte til en bane MED matchende rating lykket.
|
||||||
Ekte typesjekket produksjonsbuild av frontend kjørt på nytt og
|
Ekte typesjekket produksjonsbuild av frontend kjørt på nytt og
|
||||||
bekreftet etter blind draw-forenklingen.
|
bekreftet etter blind draw-forenklingen.
|
||||||
**Ikke rullet ut ennå** — migrasjon 014 endrer EKTE produksjonsdata
|
**Rullet ut live 2026-07-19**, bruker bekreftet eksplisitt: migrasjon
|
||||||
(slår sammen Tjømes 8 tee-rader til 4), venter derfor på eksplisitt
|
014 kjørt mot ekte `teecup_db` FØRST (Tjømes 8 tee-rader slått sammen
|
||||||
brukerbekreftelse før den kjøres mot ekte `teecup_db`, sammen med de
|
til 4 — bekreftet 0 brutte `match_participant.tee_id`-referanser
|
||||||
tre andre fiksene (1/3/4) i samme utrulling.
|
etterpå med en direkte spørring), deretter `docker compose up -d
|
||||||
|
--build teecup_api teecup_frontend` sammen med punkt 1/3/4 i samme
|
||||||
|
utrulling. Begge containere boot-et rent, `/health`/`dashboard` → 200,
|
||||||
|
`teeoff.no` upåvirket.
|
||||||
|
|
||||||
Neste steg:
|
Neste steg:
|
||||||
1. **Oppfølgingspunkt fra PWA-runden, eksplisitt notert på brukerens
|
1. **Oppfølgingspunkt fra PWA-runden, eksplisitt notert på brukerens
|
||||||
|
|
@ -1902,10 +1918,8 @@ Neste steg:
|
||||||
Rewrite/medlemsside-bugen (#2) er den mest presserende siden siden er
|
Rewrite/medlemsside-bugen (#2) er den mest presserende siden siden er
|
||||||
helt utilgjengelig i dag.
|
helt utilgjengelig i dag.
|
||||||
3. **Alle fire nye hull (spillerliste, tee/kjønn-modell ADR-029,
|
3. **Alle fire nye hull (spillerliste, tee/kjønn-modell ADR-029,
|
||||||
tallvelger, hcp-scope-bug) er FIKSET OG SCRATCH-VERIFISERT** (se over)
|
tallvelger, hcp-scope-bug) er FIKSET OG LIVE** (se over, 2026-07-19,
|
||||||
— venter på utrullingsbekreftelse. Punkt 2 KREVER en ekte migrasjon
|
migrasjon 014 kjørt mot ekte data). En liten, urelatert 500-krasj
|
||||||
(`014_tee_gender_to_rating.sql`, endrer Tjømes tee-data) i tillegg til
|
|
||||||
kode-redeploy av begge containere. En liten, urelatert 500-krasj
|
|
||||||
(stroke-innsending på bane uten hull) ble også funnet under
|
(stroke-innsending på bane uten hull) ble også funnet under
|
||||||
verifiseringen, ikke fikset — egen, liten sak.
|
verifiseringen, ikke fikset — egen, liten sak.
|
||||||
4. Fortsatt åpne beslutninger fra FEATURE_BACKLOG.md: kode-regenerering for
|
4. Fortsatt åpne beslutninger fra FEATURE_BACKLOG.md: kode-regenerering for
|
||||||
|
|
|
||||||
|
|
@ -551,6 +551,13 @@
|
||||||
(lavest kostnad) hvis en rask seier er ønskelig, eller med «Københavner»
|
(lavest kostnad) hvis en rask seier er ønskelig, eller med «Københavner»
|
||||||
hvis en bredere individuell/felt-basert turneringstype uansett skal bygges
|
hvis en bredere individuell/felt-basert turneringstype uansett skal bygges
|
||||||
først som fundament for de andre.
|
først som fundament for de andre.
|
||||||
|
- **Ressurs, lagt til 2026-07-19:** brukeren har lastet opp tre PDF-er til
|
||||||
|
prosjektroten (`spilletyper-og-spilleformer-2023.pdf`, `Live Tourney _ A
|
||||||
|
Guide to Handicap Scoring in Golf for Tournaments.pdf`, `SCGA Club
|
||||||
|
Digest.pdf`) som til sammen skal gi en tydelig beskrivelse av hvordan HCP
|
||||||
|
og mottatte/tildelte slag beregnes/fordeles — les disse FØR design av
|
||||||
|
handicap-/slagfordelingslogikken for disse fire formatene, se CLAUDE.md
|
||||||
|
sin "Autoritative kilder"-seksjon.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -824,8 +831,7 @@ en reell skjemamigrasjon (`014_tee_gender_to_rating.sql`).
|
||||||
Fikset: `roster`-listen FILTRERES nå ned til kun ledige spillere før
|
Fikset: `roster`-listen FILTRERES nå ned til kun ledige spillere før
|
||||||
den rendres, i stedet for å deaktivere valget.
|
den rendres, i stedet for å deaktivere valget.
|
||||||
|
|
||||||
2. **✅ FIKSET OG SCRATCH-VERIFISERT 2026-07-19 (ADR-029), IKKE ENNÅ RULLET
|
2. **✅ FIKSET OG LIVE 2026-07-19 (ADR-029).** Brukeren presiserte at min opprinnelige forståelse
|
||||||
UT mot ekte data.** Brukeren presiserte at min opprinnelige forståelse
|
|
||||||
var feil: en golfbane har IKKE fysisk kjønnsdelte utslag — begge kjønn
|
var feil: en golfbane har IKKE fysisk kjønnsdelte utslag — begge kjønn
|
||||||
kan som regel spille fra ethvert utslag. Det eneste som faktisk
|
kan som regel spille fra ethvert utslag. Det eneste som faktisk
|
||||||
varierer per kjønn er om klubben har VALGT å slope (rate) et gitt
|
varierer per kjønn er om klubben har VALGT å slope (rate) et gitt
|
||||||
|
|
@ -895,9 +901,15 @@ en reell skjemamigrasjon (`014_tee_gender_to_rating.sql`).
|
||||||
**Designspørsmålene for punkt 2 er avklart** (bruker valgte det anbefalte
|
**Designspørsmålene for punkt 2 er avklart** (bruker valgte det anbefalte
|
||||||
alternativet på begge, se ADR-029 Beslutning B/C): helautomatisk tee-valg
|
alternativet på begge, se ADR-029 Beslutning B/C): helautomatisk tee-valg
|
||||||
(ingen manuell kjønnsvelger), og "feil høyt" ved manglende kjønn/rating
|
(ingen manuell kjønnsvelger), og "feil høyt" ved manglende kjønn/rating
|
||||||
(ingen stille fallback). Migrasjon 014 er skrevet og scratch-verifisert,
|
(ingen stille fallback). Migrasjon 014 kjørt mot ekte `teecup_db`
|
||||||
men IKKE kjørt mot ekte `teecup_db` ennå — venter på eksplisitt
|
2026-07-19, bruker bekreftet eksplisitt — Tjømes 8 tee-rader slått sammen
|
||||||
brukerbekreftelse (endrer ekte Tjøme-data: slår sammen 8 tee-rader til 4).
|
til 4, alle referanser intakte.
|
||||||
|
|
||||||
|
**Alle fire punkter rullet ut live 2026-07-19**, bruker bekreftet
|
||||||
|
eksplisitt: migrasjon 014 + `docker compose up -d --build teecup_api
|
||||||
|
teecup_frontend`. Verifisert: `/health`/`dashboard` → 200, `teeoff.no`
|
||||||
|
upåvirket, 0 brutte `match_participant.tee_id`-referanser etter
|
||||||
|
sammenslåingen.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue