Golf - Juniortävlingar

Dokumentationsportal

20.63.8-live-runtime-stability-fix-test

  • Livefragment använder konsekvent timezone-aware UTC och kraschar inte på blandade timestampformat.
  • Dashboard och Live är read-only mot resultatdatabasen; endast schedulern utför automatisk Min Golf-sync.
  • UX-telemetri är fail-fast vid SQLite-lock och får inte blockera produkttrafik.
  • Nya CI-regressionstester täcker runtime-stabiliteten.

v20.49.0

Competition Location Integration: vägavstånd, restid, filter och sortering i tävlingsrekommendationer.

Changelog

v20.31.0-foundation

Tillagt

  • Förbättrat dokumentationscenter.
  • Systemstatussida under /docs/status.
  • Komplett systemdokumentation.
  • Systemarkitekturdokument.
  • Drift- och deploymentguide.
  • Utvecklingsguide.
  • API-översikt.
  • Säkerhets- och datadokument.
  • Architecture Decision Records.
  • Roadmap.

Ändrat

  • Dokumentationsportalen får vänstermeny och tydligare layout.
  • Dokumentlistan får stabil ordning och läsbara titlar.

Principbeslut

  • Framtida releaser ska levereras som kompletta releasepaket.
  • Ingen större funktion anses färdig förrän dokumentationen är uppdaterad.

v20.30.1-docs

Tillagt

  • Första versionen av inbyggd dokumentationsflik.

v20.30.0-beta1

Tillagt

  • Git- och releaseflöde.
  • Test- och produktionsmiljö med separata brancher.
  • Git Worktree.
  • Docker-image och .dockerignore.

v20.29.2-hotfix

Stabil baslinje

  • Första stabila Git-baslinjen.
  • EntryList API används för anmälningslistor.
  • Svenska Juniortouren fungerar.

20.34.0-result-importer-foundation-test

  • Modulärt parserlager för historiska resultat.
  • Typad normaliserad resultatmodell.
  • Första Golf.se-parsern med referensfixture.
  • Komplett parser-till-databas-test.

20.35.0

  • Secure Golf.se URL retrieval and HTML upload.
  • Signed two-step result preview and confirmed import.

20.36.0

  • Införde Min Golf Integration Layer.
  • Bytte liveimport från HTML-skrapning till Min Golfs JSON-API.
  • Lade till automatisk upptäckt och hämtning av samtliga tävlingsklasser.
  • Lade till normalisering av Min Golf-resultat till CompetitionDocument.
  • Lade till regressionstester baserade på verkliga API-svar.

20.37.0-historical-data-platform-test – 2026-07-20

  • Introducerar historisk discovery och delta-synk för Min Golf scratch-juniortävlingar.
  • Lägger till competition_sources och historical_sync_runs.
  • Återanvänder befintlig söklogik och normaliserad resultatimport.
  • Lägger till 4 regressionstester för historisk synk.
  • Rättar heredoc-hanteringen i scripts/export_developer_bundle.sh.

20.38.0-smart-synchronization-test – 2026-07-21

  • Added shared SyncService and isolated SyncPolicy.
  • Skip successfully synchronized competitions older than 30 days before result API fetch.
  • Retry FAILED sources automatically.
  • Added progress, ETA, retry and duration statistics.
  • Added additive database migrations and architecture decision records.

20.38.1

  • JSM Klubblag och lagmatchspel markeras som ej stödda i stället för FAILED.
  • Ny statistik skipped_unsupported och lagrad skip_reason.

20.39.0-incremental-synchronization-test – 2026-07-21

  • införde åldersstyrda kontrollintervall för redan importerade tävlingar,
  • dagens och pågående tävlingar kontrolleras fortfarande vid varje körning,
  • lade till körningsresultatet SKIPPED_FRESH,
  • sparar skipped_fresh_count i synkhistoriken,
  • gjorde intervallen konfigurerbara via miljövariabler,
  • utökade --force-refresh så att även intervallen kringgås,
  • lade till sex regressionstester för inkrementell synk.

20.40.0-historical-results-experience-test

  • Responsiv spelaröversikt och spelarprofil.
  • Responsiv tävlingsprofil och resultatlista.
  • Progressiv informationsvisning för historik och statistik.
  • Navigering mellan spelare och tävlingar.
  • Fem nya regressionstester.

20.41.2-club-name-normalization-test – 2026-07-28

  • Införde central normalisering av klubbnamn i presentationslagret.
  • Slog ihop kända Landeryd-alias under visningsnamnet Landeryds GK.
  • Utökade klubbsökning och klubbresultat så att alla alias ingår.
  • Lade till regressionstester för dubblettfri klubblista och sammanslagna resultat.

20.53.9-entry-identity-refresh-and-link-regression-fix-test

  • Återställer canonical_player_id direkt efter att Min Golf har ersatt anmälningsrader.
  • Säker exakt matchning på namn och klubb samt entydig namnfallback.
  • Nya regressionstester för den verkliga orsaken till försvunna spelarlänkar.
  • Äldre strukturkänsliga tester anpassade till den centraliserade renderingsfunktionen.

20.54.0-ci-release-foundation-test

  • Inför plattformsneutral CI-startpunkt med fast/full/release-lägen.
  • Lägger till metadata-, syntax-, test-, Docker- och artefaktkontroller.
  • Gör releaseartefakter immutabla genom att neka överskrivning av samma version.
  • Avgränsar produktionsdeploy och releasegate till senare CI/CD-etapp.

20.60.2

Se RELEASE_NOTES_v20_60_2.md för klassindelad resultatpresentation och komplett manuell discovery/synk.

20.60.3 – Result presentation refactor

Tävlingsprofil och live-dashboard använder nu gemensamma klass- och könssemantiker i result_classes.py.

20.61.0 – Unified Dashboard Experience

  • En universell sökning för spelare, klubbar och tävlingar.
  • Fyra stabila huvudområden på dashboarden.
  • Ny UX-konstitution i docs/UX_PRINCIPLES.md.

20.61.1 – Dashboard completeness and live refresh

  • Enhetliga domännamn i dashboard och navigation.
  • Grupperad universell sökning med klubbprioritering.
  • Informationsrikare dashboardkort.
  • Aktiv omsynk av förfallna live-tävlingar.
  • Klubbfilter i Live; spelarspecifik Live följs från spelarprofilen.

20.61.2 live score parity

Dashboarden visar alla pågående tävlingar och topp tre per faktisk Min Golf-klass/resultatlista. Källans klassnamn bevaras.

20.62.0-live-engine-stable-test – 2026-08-08

  • Etablerar Live Engine Stable som testmilstolpe efter 20.61-seriens diagnostik, snapshot-repair, parity guard och auto-repair.
  • Dokumenterar den permanenta referensuppsättningen med åtta verkliga Min Golf-tävlingar.
  • Fryser kontraktet Min Golf -> normalisering -> snapshot -> paritetskontroll -> lifecycle/visibility -> presentation.
  • Dokumenterar att accepterad 20.61.11-bas hade 300 gröna CI-tester och stage=OK för alla åtta Live Trace-referenser.
  • Ingen ny produktionslogik eller databasmigration i denna milstolpe.

20.63.2-dashboard-ux-complete-test

  • Dashboarden reducerad från fyra till tre huvudområden.
  • Live och historiska resultat samlas under Live & resultat och /resultat.
  • Resultatförhandsvisning visar endast tävlingar med verkliga resultatrader.
  • Resultatlösa dagens tävlingar döljs från livepresentation efter 20:30 svensk tid men fortsätter synkas.
  • Mobilnavigationen följer samma tre områden.
  • Berörda regressionstestkontrakt uppdaterade i samma patch.

20.63.3 – Live Refresh

  • Live-pollning 30 s, scheduler 10 s, klientuppdatering 15 s och stale-indikering efter 120 s.

20.63.5-live-stale-snapshot-refresh-test

  • Live presentation guard refreshes every due live snapshot, not only empty snapshots.
  • Added regression coverage for score/hole changes with unchanged player count.

20.63.6-live-scheduler-decision-diagnostics-test

  • Adds scheduler RUN/SKIP decision tracing and an on-disk scheduler heartbeat.
  • Adds live_scheduler_trace.sh to diagnose whether the daemon scheduler is alive, sees a competition as due and actually invokes the sync path.
  • No Live scheduling or result-import policy is changed in this diagnostic release.

20.63.7-live-scheduler-starvation-fix-test

  • Rättar Live-scheduler starvation: lifecycle-maintenance flyttar inte längre fram en redan planerad poll före due-kontrollen.
  • Lägger regressionstest för upprepade scheduler-ticks och korrekt reschedule efter faktisk sync.

20.63.9-analysis-request-nonblocking-test

  • Removed synchronous Min Golf EntryList refresh from player/tournament analysis requests.
  • Analysis now reads the persisted snapshot immediately and records whether external refresh is deferred.
  • Added regression tests for non-blocking analysis request behavior.

20.63.10-live-results-history-filter-test

  • Utökad Live & resultat med 20 historiska tävlingar, klubbfilter på samma sida, webbläsarlokala senaste klubbfilter och Min Golf-länk på historiska tävlingar.

20.63.11-results-workspace-complete-test

  • Resultatdelen på /resultat får klubb-, datum- och tävlingsfilter.
  • Klubbval visar automatiskt senaste 14 dagarna och endast tävlingar där klubbens spelare har resultat.
  • Varje tävling visar klubbens spelare med placering, klass och score; spelarnamn länkar till spelarprofil.
  • Historiska tävlingar behåller intern tävlingslänk och Min Golf-länk.

20.63.16-competition-planning-workspace-foundation-test

  • Ny tävlingsplaneringsyta med framtida tävlingar.
  • Filter på tävlingsdatum och sista anmälningsdag.
  • Direktlänk till Min Golf från varje tävlingskort.

20.64.1 – Competition deadline parsing and backfill

  • Parsar details.entryDates med svenska månadsförkortningar inklusive punkt.
  • Fyller registration_deadline och entry_close_date från intervallets slutdatum.
  • Lägger till idempotent lokal backfill från competitions.raw_json.
  • Lägger regressionstest för observerade Min Golf-värden.

v20.64.3

  • Nästa deadlines på startsidan väljer och sorterar nu på framtida anmälningsdeadline i stället för framtida tävlingsdatum.

v20.65.1

  • Qualification engine för Svenska Juniortourens uppflyttningsplatser.
  • Uppflyttningsstatus visas i anmälningsfält och påverkar rekommendationsprognosen.
  • Personlig behörighetsfiltrering för lag-/kvaltävlingar och Svenska Juniortourens ålder/handicap.

v20.65.2

  • Hela anmälningsfältet integrerat i tävlingsanalysen.
  • Sortering på SGF-ranking, därefter handicap.
  • Uppflyttningsplatser markerade direkt i det integrerade fältet.
  • Tyst 12-tävlingsgräns borttagen från rekommendationssidan.

v20.65.3

  • Rekommendation filtrerar bort tävlingar där sista anmälningstiden passerat eller saknas.
  • Befintlig scoring, qualification-logik och full-period-visning är oförändrade.

v20.65.4

  • FK-säker retention av redundanta COMPLETED result_imports efter lyckad import.
  • Nytt cleanup-script med dry-run som standard.
  • Live-hämtning, parser, parity och normaliserade resultat lämnas oförändrade.

v20.65.5

  • Central false-by-default kill switch för golf.se/Min Golf server-side HTTP.
  • Scheduler skippar SGF competition- och Live-synk när OFF.
  • GolfData-ranking lämnas utanför spärren för separat rättighetsbedömning.

v20.65.6

  • Master kill switch för all server-side extern HTTP, default OFF.
  • GolfData, routing och geokodning stoppas tillsammans med SGF/Min Golf.
  • Lokal DB fortsätter driva spelar-, tävlings-, resultat- och analysvyer.
  • UI markerar offline/testläge och tidsstämplar lagrade anmälningslistor.