No description
Find a file
Erol Haagenrud a65858af84 Statistikk: lineær regresjon i stedet for glidende snitt, trend på alle variabler
Brukeren påpekte (med rette) at det glidende 3-runde-snittet i "Utvikling"
bare gjentok stolpediagrammet med én runde forsinkelse -- for få punkter
til at det smoothet noe reelt. Foreslo tre alternativer via
AskUserQuestion (lineær regresjon / eksponentielt glidende snitt /
kumulativt løpende snitt); brukeren valgte lineær regresjon.

Lineær regresjon (minste kvadraters metode) gir en rett linje --
stigningstallet leses direkte som "endring per runde" og vises nå i
bildeteksten (f.eks. "+7 pp per runde"). Visuelt en helt annen form enn
stolpene (rett strek vs. hakkete stolper), som løser selve klagen.

Bruker ba samtidig om trend på ALLE variabler, ikke bare snitt til par.
Lagt til stolpe+trend for: Fairwaytreff, Greentreff (GIR), Putt/18,
Én-putt, Chip/runde, Bunkerslag/runde, Straffeslag/runde, Anywayslag/
runde -- hver plassert i det eksisterende kortet for akkurat den
metrikken. Scrambling/sand save er unntaket (brukervalg via
AskUserQuestion): for få kvalifiserte hull per runde (0-2) til at et
per-runde-tall er meningsfullt, vises i stedet som én kumulativ linje
("raten din til og med hver runde"), ingen stolper.

Backend: RoundStatsSummary sitt gamle round_series-felt (kun snitt til
par) erstattet av et nytt round_series på RoundStatsWindowSummary-nivå,
med per-runde-tall for alle variabler pluss kumulativ scrambling/sand
save. Fanget og rettet en enhets-bug selv under scratch-verifisering:
scrambling/sand save ble først bygget som 0-1-brøker (kopiert fra en
boolsk 1.0/0.0-sjekk) i stedet for samme 0-100-skala som resten av
API-et -- rettet før commit.

Verifisert: tsc --noEmit rent, 45/45 vitest, 31/31 backend-tester. Full
scratch-stack med åtte syntetiske runder (bevisst støyende fremgang, for
å faktisk se at regresjonslinjen skiller seg fra stolpene) browser-
verifisert lys+mørk: regresjonslinje bekreftet rett og visuelt distinkt
fra stolpene på alle variabler, riktig fortegn/farge på stigningstall,
ingen dobbel enhet i bildetekstene, kumulative linjer for scrambling/
sand save konvergerer som forventet. Ingen konsollfeil. teecup_db urørt.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-12 11:17:00 +02:00
.claude Alt kompilerer rent. Oppsummering av denne runden: 2026-08-10 18:34:31 +02:00
.forgejo/workflows Frontend-testinfrastruktur (Vitest) -- geo, offline-queue, formats 2026-08-10 23:44:30 +02:00
__pycache__ All five tasks from the original list are complete, plus one critical production bug found and fixed along the way. Summary: 2026-08-05 21:37:32 +02:00
app Statistikk: lineær regresjon i stedet for glidende snitt, trend på alle variabler 2026-08-12 11:17:00 +02:00
frontend Statistikk: lineær regresjon i stedet for glidende snitt, trend på alle variabler 2026-08-12 11:17:00 +02:00
scripts Automatisert backend-testinfrastruktur: RLS, versjonssjekk, aldersgrense 2026-08-10 22:25:02 +02:00
tests @-tagging (backend): medspillere/venner i runde-feeden 2026-08-11 09:10:17 +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 Selvhostet Forgejo Actions-runner for backend-testene 2026-08-10 22:41:48 +02:00
.mcp.json Update Todos 2026-07-27 14:34:18 +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
015_user_profile.sql Update Todos 2026-07-20 10:41:30 +02:00
016_profile_contact.sql Live og dokumentert. /dashboard er nå den ene, felles adressen for enhver innlogget bruker — organisator, spiller, eller begge — med personlig profil (inkl. e-post og mobil) redigerbar på /account. 2026-07-20 11:32:10 +02:00
017_secondary_email.sql Update Todos 2026-07-22 06:14:31 +02:00
018_handicap_history.sql Update Todos 2026-07-22 06:31:11 +02:00
019_profile_country_bio.sql Update Todos 2026-07-22 07:53:29 +02:00
020_personal_rounds.sql Andre byggesteg ferdig: databaseskjemaet. 2026-07-22 10:46:10 +02:00
021_round_participant_rating_snapshot.sql Migrasjonen er kjørt, og jeg har fortsatt helt til et komplett, verifisert API-lag. 2026-07-22 11:31:08 +02:00
022_round_stats_and_bag.sql Oppsummering av det som er fikset/bygget i denne runden: 2026-07-24 06:27:35 +02:00
023_round_start_time.sql Update Todos 2026-07-24 11:21:39 +02:00
024_round_name.sql All three changes are implemented and scratch-verified (22/22 checks passed, test_isolation.sql still 12/12, frontend typechecks cleanly). Summary of what's ready to ship: 2026-07-25 06:29:09 +02:00
025_friends.sql Backend for fase 1 (venner-kjernen) er bygget og scratch-verifisert (31/31 sjekker, test_isolation.sql fortsatt 12/12). Ny migrasjon 025_friends.sql, nytt app/routers/friends.py med tiered søk, forespørsel/aksept/fjern, og privat kategorisering — bekreftet at kategoriseringen faktisk er privat (B ser aldri hvilke grupper A har satt B i). 2026-07-25 08:14:48 +02:00
026_notifications.sql Varsler (fra zip 20): in-app varslingssenter er live — bjelle med uleste-tall i dashbord-headeren, /my-notifications-side. Trigges i dag ved venneforespørsel sendt/akseptert; flere hendelser kan kobles på senere. 2026-07-26 06:53:58 +02:00
027_round_participant_user_unique.sql Update Todos 2026-07-26 08:22:41 +02:00
028_round_participant_tee.sql Alt er live. Kort oppsummert: 2026-07-26 09:18:52 +02:00
029_round_participant_guest_email.sql Leaderboard — ikke bygget frontend ennå, kun backend. V0-prompten er skrevet og ligger i FEATURE_BACKLOG.md, klar til å limes inn i v0.app. 2026-07-26 09:42:06 +02:00
030_actual_handicap_index.sql Alt er ferdig, verifisert og live. Oppsummert: 2026-07-28 11:04:51 +02:00
031_round_play_formats.sql Ferdig og live. Kort oppsummert: 2026-07-28 13:00:50 +02:00
032_round_visibility.sql Bygget: ADR-036 fase 2 — rundevisibilitet, helt etter det allerede designede mønsteret (privat/offentlig/venner-i-valgt-kategori): 2026-07-28 19:25:37 +02:00
033_notification_email_prefs.sql Update Todos 2026-07-28 20:09:21 +02:00
034_session_scorecard_invitations.sql Update Todos 2026-07-28 20:56:08 +02:00
035_round_flight_group.sql Update Todos 2026-07-28 22:34:16 +02:00
036_round_hole_selected_participant.sql Update Todos 2026-07-28 22:34:16 +02:00
037_push_subscriptions.sql Update Todos 2026-07-28 22:34:16 +02:00
038_stableford_and_pickup.sql Stableford is now a real spilleform for frittstående runder, alongside Slagspill/Match: selectable at round creation, editable afterward, shown as a badge everywhere the round appears. 2026-07-29 19:46:17 +02:00
039_hole_score_selected_participant.sql "Utslag brukt"-statistikk for scramble/greensome finnes nå også for org-scopede turneringer — samme funksjon som frittstående runder fikk 2026-07-25, bygget som en rask, avgrenset oppfølger. 2026-07-29 22:20:50 +02:00
040_individual_tournaments.sql Migrasjonsutkastet er klart og scratch-verifisert. Skrevet til /opt/teecup/040_individual_tournaments.sql — ikke kjørt mot ekte teecup_db, kun mot en isolert scratch-database jeg satte opp og ryddet opp etterpå. 2026-07-30 06:52:33 +02:00
041_chapman_format.sql All eight new turneringsformater have backend + engine complete and scratch-verified — Chapman, Nassau, Københavner, Bingo Bango Bongo, Flaggturnering, Shamble, Money Ball, and High-low-high. Built and tested one format at a time (engine tests → migration → API wiring → scratch verification) exactly per the approved plan: 2026-07-30 14:54:11 +02:00
042_copenhagen_round_and_tournament.sql All eight new turneringsformater have backend + engine complete and scratch-verified — Chapman, Nassau, Københavner, Bingo Bango Bongo, Flaggturnering, Shamble, Money Ball, and High-low-high. Built and tested one format at a time (engine tests → migration → API wiring → scratch verification) exactly per the approved plan: 2026-07-30 14:54:11 +02:00
043_bbb_round_format.sql All eight new turneringsformater have backend + engine complete and scratch-verified — Chapman, Nassau, Københavner, Bingo Bango Bongo, Flaggturnering, Shamble, Money Ball, and High-low-high. Built and tested one format at a time (engine tests → migration → API wiring → scratch verification) exactly per the approved plan: 2026-07-30 14:54:11 +02:00
044_bbb_individual_tournament.sql All eight new turneringsformater have backend + engine complete and scratch-verified — Chapman, Nassau, Københavner, Bingo Bango Bongo, Flaggturnering, Shamble, Money Ball, and High-low-high. Built and tested one format at a time (engine tests → migration → API wiring → scratch verification) exactly per the approved plan: 2026-07-30 14:54:11 +02:00
045_flag_round_format.sql All eight new turneringsformater have backend + engine complete and scratch-verified — Chapman, Nassau, Københavner, Bingo Bango Bongo, Flaggturnering, Shamble, Money Ball, and High-low-high. Built and tested one format at a time (engine tests → migration → API wiring → scratch verification) exactly per the approved plan: 2026-07-30 14:54:11 +02:00
046_flag_individual_tournament.sql All eight new turneringsformater have backend + engine complete and scratch-verified — Chapman, Nassau, Københavner, Bingo Bango Bongo, Flaggturnering, Shamble, Money Ball, and High-low-high. Built and tested one format at a time (engine tests → migration → API wiring → scratch verification) exactly per the approved plan: 2026-07-30 14:54:11 +02:00
047_shamble_round_and_session.sql All eight new turneringsformater have backend + engine complete and scratch-verified — Chapman, Nassau, Københavner, Bingo Bango Bongo, Flaggturnering, Shamble, Money Ball, and High-low-high. Built and tested one format at a time (engine tests → migration → API wiring → scratch verification) exactly per the approved plan: 2026-07-30 14:54:11 +02:00
048_money_ball_round.sql All eight new turneringsformater have backend + engine complete and scratch-verified — Chapman, Nassau, Københavner, Bingo Bango Bongo, Flaggturnering, Shamble, Money Ball, and High-low-high. Built and tested one format at a time (engine tests → migration → API wiring → scratch verification) exactly per the approved plan: 2026-07-30 14:54:11 +02:00
049_money_ball_session.sql All eight new turneringsformater have backend + engine complete and scratch-verified — Chapman, Nassau, Københavner, Bingo Bango Bongo, Flaggturnering, Shamble, Money Ball, and High-low-high. Built and tested one format at a time (engine tests → migration → API wiring → scratch verification) exactly per the approved plan: 2026-07-30 14:54:11 +02:00
050_high_low_high_round_and_session.sql All eight new turneringsformater have backend + engine complete and scratch-verified — Chapman, Nassau, Københavner, Bingo Bango Bongo, Flaggturnering, Shamble, Money Ball, and High-low-high. Built and tested one format at a time (engine tests → migration → API wiring → scratch verification) exactly per the approved plan: 2026-07-30 14:54:11 +02:00
051_round_allowance_override.sql Ja, jeg forsto rekkefølgen — steg 1 og 2 er nå ferdig og scratch-verifisert: 2026-08-02 08:24:01 +02:00
052_guest_name_split.sql Update Todos 2026-08-03 06:24:57 +02:00
053_tournament_classes.sql Alt er bygget og grundig scratch-verifisert — både API-nivå og ekte nettleser-klikk, på begge turneringstyper. Før jeg ruller ut mot ekte teecup_db, her er planen: 2026-08-04 03:44:16 +02:00
054_personal_course_provenance.sql Fiks turneringsoppsett-rekkefølge, koble til TeeOff-import, og bygg delt bane-mal-bibliotek 2026-08-04 11:34:28 +02:00
055_order_of_merit.sql Bygg Order of Merit: sesong-sammenlagt spillerrangering på tvers av turneringer 2026-08-04 14:19:30 +02:00
056_scramble_solo_round.sql All five tasks from the original list are complete, plus one critical production bug found and fixed along the way. Summary: 2026-08-05 21:37:32 +02:00
057_scramble_solo_match_round.sql All five tasks from the original list are complete, plus one critical production bug found and fixed along the way. Summary: 2026-08-05 21:37:32 +02:00
058_round_messages.sql e reelle bugger (500 på /feeds paginering, en rute-/rewrite-kollisjon på /feed, og manglende WS-refetch-kobling for kommentarer) — se ADR-044/CHANGELOG for detaljer. Før jeg ruller dette ut mot ekte teecup_db, her er planen: 2026-08-06 07:01:22 +02:00
059_post_reactions_and_comments.sql Før redesign 2026-08-07 22:02:56 +02:00
060_round_shot.sql Før redesign 2026-08-07 22:02:56 +02:00
061_round_shot_end_method.sql Kort på hull-kortet: "end"-steget (ballens posisjon) tilbyr nå samme valg som utslags-steget: GPS ("Jeg er ved ballen nå") eller kart ("Vis kart mens jeg går"). 2026-08-08 21:38:10 +02:00
062_round_hole_version.sql Alt kompilerer rent. Oppsummering av denne runden: 2026-08-10 18:34:31 +02:00
063_hole_score_version.sql Optimistisk versjonssjekk for org-turneringers match-scoring 2026-08-10 23:19:29 +02:00
064_message_tags.sql @-tagging (backend): medspillere/venner i runde-feeden 2026-08-11 09:10:17 +02:00
ARCHITECTURE_DECISIONS.md Dokumenter ScrollFade-fiksen i ADR-062/CHANGELOG.md 2026-08-11 14:42:29 +02:00
CHANGELOG.md Dokumenter utrulling av statistikk-omstruktureringen 2026-08-12 09:15:39 +02:00
CLAUDE.md Før redesign 2026-08-07 22:02:56 +02:00
DESIGN_SYSTEM.md Ny-runde-veiviseren er live med clubhouse-designet, bekreftet uten konsollfeil på teecup.golf. 2026-08-10 09:07:33 +02:00
docker-compose.yml Selvhostet Forgejo Actions-runner for backend-testene 2026-08-10 22:41:48 +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
Dockerfile.test Automatisert backend-testinfrastruktur: RLS, versjonssjekk, aldersgrense 2026-08-10 22:25:02 +02:00
FEATURE_BACKLOG.md @-tagging (backend): medspillere/venner i runde-feeden 2026-08-11 09:10:17 +02:00
handicap_engine.py Alt kompilerer rent. Oppsummering av denne runden: 2026-08-10 18:34:31 +02:00
pytest.ini Automatisert backend-testinfrastruktur: RLS, versjonssjekk, aldersgrense 2026-08-10 22:25:02 +02:00
TeeCup logo.svg e reelle bugger (500 på /feeds paginering, en rute-/rewrite-kollisjon på /feed, og manglende WS-refetch-kobling for kommentarer) — se ADR-044/CHANGELOG for detaljer. Før jeg ruller dette ut mot ekte teecup_db, her er planen: 2026-08-06 07:01:22 +02:00
teecup-beskrivelse.md 13-årsgrense — håndhevet server-side (eneste vei inn i appen, ADR-051) og med umiddelbar rød feilmelding klientside i begge profil-skjemaer. Testet på nøyaktig dagsgrensen. 2026-08-10 07:00:11 +02:00
teecup-scorekort-og-entry-spec.md Ja, den gir mye mening — og jeg sjekket to av påstandene direkte mot koden i stedet for å ta dem på tro: 2026-07-27 09:03:15 +02:00
TeeOff-logo-Retina-1.avif Før kommunikasjon med V0 2026-07-17 21:40:42 +02:00
test_handicap_engine.py Alt kompilerer rent. Oppsummering av denne runden: 2026-08-10 18:34:31 +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