<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:g-custom="http://base.google.com/cns/1.0" version="2.0">
  <channel>
    <title>ggk-new</title>
    <link>https://www.golfgameskeeper.net</link>
    <description />
    <atom:link href="https://www.golfgameskeeper.net/feed/rss2" type="application/rss+xml" rel="self" />
    <item>
      <title>Release feature-set-1 (August 3, 2026)</title>
      <link>https://www.golfgameskeeper.net/release-feature-set-1-august-3-2026</link>
      <description />
      <content:encoded>&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
           What's New
          &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Noonan Chat Agent — Full Launch
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            AI-powered data assistant for league administrators, embedded directly in the web app.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Natural language queries → SQL generation → formatted results with CSV export.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Thumbs up/down rating on responses, building a semantic query library.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Pipeline tracing for debugging and observability.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Token usage tracking, auto-CSV for 5+ row results, SQL retry on validation failure.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Noonan Page-Aware Presets
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            AI icon on key pages (Players, Pairings, Standings, Financial Report) with contextual suggested prompts.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Intent router, preset registry, deterministic SQL implementations for known queries.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Follow-up modification — "also add phone numbers" works after a preset export.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Expandable chat panel (380px → 700px), markdown rendering in responses.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Noonan Results Explainer
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Answers "why did X win?" and "how were payouts calculated?" questions.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Per-game GPT-4o calls with structured context, then combined for accuracy.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Session awareness — follow-up questions stay in explainer context.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Noonan Saved Reports
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Save any query result as a named report. Execute later with parameterized placeholders.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Backend service, API endpoints, frontend dialog and chat integration.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Noonan Context-Free Chat
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Soft page context — Noonan works from any page, not just event-specific views.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Flight resolver reads from 
           &#xD;
      &lt;/span&gt;&#xD;
      &lt;code&gt;&#xD;
        
            game_config_json
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             (correct source of truth).
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Saved reports accessible from any page.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Deterministic Validation Report
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Zero-AI validation pipeline — structured JSON response showing registration vs. payment integrity per game.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Shows actual collected vs. expected amounts per leaderboard.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Expandable card UI in the chat panel.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Financial Report Overhaul
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Noonan integrated into financial report page.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Reconciliation CSV export with Credits Used and Payment columns.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Stripe receipt URLs fetched fresh from the API (no more expired links).
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Stripe charge = subtotal - credits (don't trust stored 
           &#xD;
      &lt;/span&gt;&#xD;
      &lt;code&gt;&#xD;
        
            payment_cents
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
            ).
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Exclude wait list and cancelled players from summary.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Wait List
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Full wait list system: automatic detection when event is full, join button, position display.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Admin section for managing wait list, promoting players (with audit trail).
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Wait list badge on mobile home screen, leave button on event info page.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Wait list for all registration states with distinct messages (not open, full, closed).
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Member-Only Enforcement
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Pricing items can be marked member-only — non-members see them but can't select them.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Backend persistence, API guard, and frontend UI across web and mobile.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Invited-Only Events (Backend)
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Backend enforcement layer for restricted registration (frontend wired in feature-set-2).
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Scorecard Upload Agent
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            AI-powered scorecard image extraction — take a photo of a paper scorecard, AI reads it.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Multi-step dialog with real-time progress polling.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Course name validation, partial success with skip/copy, combination tee support.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            AVIF support, 9-hole support, and observability logging.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Event Snapshot Tab
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            New Organize step showing registered players per game/fee.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Required fees show missing players, optional fees show who opted in.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Displays handicap index from round data.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Overall Round Scoping
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Per-round inclusion controls for leaderboards — choose which rounds count toward overall standings.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Dual-Win Exclusion
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Full implementation: when a player wins both gross and net, they're excluded from one board and payouts redistribute.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Iterative exclusion algorithm re-checks after redistribution.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Tie-group pooling, USGA Cascade tiebreaker resolution.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Multi-flavor API, 
           &#xD;
      &lt;/span&gt;&#xD;
      &lt;code&gt;&#xD;
        
            award_position
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             field for resolved payout order.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Frontend combined boards showing exclusion results.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Mobile — Multi-Round Leaderboard
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Game/scope/flavor navigation on results.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Smart active round detection.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Per-game visible scope filtering.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Flighted leaderboard display grouped by flight.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Winners grouped by game and flight with conditional money/points columns.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Mobile — Nassau Bets
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            LocalStorage persistence, correct round_id resolution.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Detailed results with presses, inline edit for existing bets.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Round picker for multi-round events.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Mobile — Live Scoring Enhancements
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Block scoring on verified rounds + time-window enforcement with admin bypass.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Playing handicap calculated client-side using WHS formula.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Skins tab uses selected round scope with round selector pills.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Admin UX Improvements
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Invoice optional when admin adds player — "Register Only" + "Register &amp;amp; Invoice" buttons.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Send Invoice checkbox on Edit Registration (prevents accidental billing).
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Disable game deletion when players are registered.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Rounds Played column in roster CSV export.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Credit refund option when dropping a player (mobile).
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Pairings CSV export with flight labels, game-based course handicap, and registration audit columns.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
           What We Fixed
          &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Idempotency check on 
           &#xD;
      &lt;/span&gt;&#xD;
      &lt;code&gt;&#xD;
        
            registerAfterPaymentNew
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             prevents duplicate registration.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Deduplicate 
           &#xD;
      &lt;/span&gt;&#xD;
      &lt;code&gt;&#xD;
        
            registration_payment_audit
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             — only latest record per player returned.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Reconciliation CC charge derived from items_total - credits_used (not unreliable 
           &#xD;
      &lt;/span&gt;&#xD;
      &lt;code&gt;&#xD;
        
            payment_cents
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
            ).
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Best ball reads 
           &#xD;
      &lt;/span&gt;&#xD;
      &lt;code&gt;&#xD;
        
            allowancePct
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             from GGK+ 
           &#xD;
      &lt;/span&gt;&#xD;
      &lt;code&gt;&#xD;
        
            gameConfig.handicap
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             when legacy fields empty.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Always use 
           &#xD;
      &lt;/span&gt;&#xD;
      &lt;code&gt;&#xD;
        
            round.player_index
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             as source of truth — removed 
           &#xD;
      &lt;/span&gt;&#xD;
      &lt;code&gt;&#xD;
        
            playerHandicaps
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             override (was incorrect for multi-round).
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Best ball leaderboard only matches net flavor requests (prevents duplicate gross/net).
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Nullable 
           &#xD;
      &lt;/span&gt;&#xD;
      &lt;code&gt;&#xD;
        
            EventRound
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             ratings prevent crashes on incomplete course data.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Round scoping persisted through normalize/sanitize functions.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Deduplicate players in team generator for multi-round events.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Quota proration uses 
           &#xD;
      &lt;/span&gt;&#xD;
      &lt;code&gt;&#xD;
        
            holes_completed
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             during live play.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Sort live leaderboards by to-par instead of raw score.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Legacy-to-GGK+ conversion sets 
           &#xD;
      &lt;/span&gt;&#xD;
      &lt;code&gt;&#xD;
        
            event_type = 3
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             on master event.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Calendar split: 
           &#xD;
      &lt;/span&gt;&#xD;
      &lt;code&gt;&#xD;
        
            getCalendarEvents
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             reverted to legacy behavior, new 
           &#xD;
      &lt;/span&gt;&#xD;
      &lt;code&gt;&#xD;
        
            ggkGetCalendarEvents
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             for GGK+ apps.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Orphan player resolution — integrity detection, fix endpoints, tee time fix.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;code&gt;&#xD;
        
            updateRound
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             propagates 
           &#xD;
      &lt;/span&gt;&#xD;
      &lt;code&gt;&#xD;
        
            use_hcp
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             to 
           &#xD;
      &lt;/span&gt;&#xD;
      &lt;code&gt;&#xD;
        
            round.hcp_used
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             and recalculates group handicaps.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Team games (Scramble, Chapman) set 
           &#xD;
      &lt;/span&gt;&#xD;
      &lt;code&gt;&#xD;
        
            hcp_used=0
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             for single-score rounds.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Awards only run when all rounds are saved + verified.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Apply 
           &#xD;
      &lt;/span&gt;&#xD;
      &lt;code&gt;&#xD;
        
            allowancePct
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             from game config in all providers (Chicago/Quota/Stableford/Skins).
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Only deduct handicap strokes on holes with scores (live results accuracy).
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Points assigned to both gross and net for quota/chicago/stableford games.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Skip paid-player filtering when 
           &#xD;
      &lt;/span&gt;&#xD;
      &lt;code&gt;&#xD;
        
            buyIn
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             is disabled (sponsored money awards apply to all).
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Cancelled player reinstate warning in registration.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Mobile: proper round resolution for play/admin pages, skins uses correct field names, flight label off-by-one fixed.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;</content:encoded>
      <pubDate>Thu, 27 Aug 2026 20:52:50 GMT</pubDate>
      <guid>https://www.golfgameskeeper.net/release-feature-set-1-august-3-2026</guid>
      <g-custom:tags type="string" />
    </item>
    <item>
      <title>Release feature-set-2 (August 17, 2026)</title>
      <link>https://www.golfgameskeeper.net/release-feature-set-2-august-17-2026</link>
      <description />
      <content:encoded>&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
           What's New
          &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Noonan Investigation Agent
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Full iterative investigation agent powered by GPT-5.6 Terra via the OpenAI Responses API.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            8 investigation tools: database schema search, SQL queries, code search (across 3 repos via Azure DevOps), code file reading, API calls, log search, endpoint search, and preset execution.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Automatic progress reporting — the frontend shows live investigation steps as Noonan works.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Evidence standards — the system prompt now enforces confirmed cause vs. observation vs. hypothesis in final answers.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Architectural knowledge seeded — 5 rows describing event structure, results pipelines, code layout, and data model for richer investigations.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Session continuity — Save and Update Report from investigation results, with report SQL flowing into future sessions.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Execute-over-advise rule — Noonan now prioritizes running tools and providing answers over suggesting the user do it themselves.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Enhanced Schema Discovery
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;code&gt;&#xD;
        
            search_database_schema
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             now returns semantic metadata (purpose, category, relationships, field notes) and auto-expands lookup table values when found.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Verification Before Awards
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Points and money awards now require round verification before being applied. Cache cleared on verify to immediately reflect changes.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Restricted Event Registration (Invited-Only)
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            New enforcement layer: events can be marked as invited-only, blocking registration for non-invited players across web and mobile.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Qualification tab renamed from Registration, moved above Games in the event builder.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Member-Only Enforcement Hardened
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Registration now properly blocks when all required items are member-only and the player is a non-member (previously allowed through).
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Frontend shows restricted item backgrounds with updated messaging.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Mobile Results Improvements
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Event date/time and player count shown on Ready to Play page.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Winning score displayed on skins tab next to hole number.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Winners tab separated by flights when game is flighted.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Game name + Flighted/Overall labels on scope pills.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Gross relative-to-par indicator + collapsible results header/footer.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
           What We Fixed
          &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            SQL validator now handles parameterized SQL and bumps max length to 4096 characters.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Results endpoints added to the Noonan API allowlist.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            All bypass pipelines disabled (validation, reconciliation, results explainer) — everything goes through the investigation loop now.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Full player name (first + last) shown in skins results.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;code&gt;&#xD;
        
            EventRound
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             course metadata fields made nullable to prevent deserialization crashes on incomplete course data.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            "New" player status removed — all players added to groups now start as Member (status 1).
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Registration now rejects when required pricing exists but no items are selected.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;code&gt;&#xD;
        
            member_only=0
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             enforced on entry/admin fees (can't accidentally make event-level fees member-only).
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Pairing requests now query master event ID instead of child round.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Noonan context integration tests skipped pending investigate() mock update (tech debt acknowledged).
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Mobile: full API URL used in production builds.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Mobile: Nassau bet-memory pre-population + prod proxy mode fix.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;</content:encoded>
      <pubDate>Thu, 27 Aug 2026 20:51:17 GMT</pubDate>
      <guid>https://www.golfgameskeeper.net/release-feature-set-2-august-17-2026</guid>
      <g-custom:tags type="string" />
    </item>
    <item>
      <title>Release v2026.08.26 (August 26, 2026)</title>
      <link>https://www.golfgameskeeper.net/release-v2026-08-26-august-26-2026</link>
      <description />
      <content:encoded>&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
           What's New
          &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Noonan AI — Hybrid Orchestrator
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Unified query + investigation pipeline. Noonan now handles both quick data questions and deep investigations through a single entry point, automatically choosing the right approach.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Stored procedure inspection tools — Noonan can now list and read stored procedures to explain handicap calculations and other database logic directly.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            GPT-5.6 Terra across the board — the hybrid orchestrator now uses the same advanced model as the investigation agent for all queries.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Session continuity improvements — preset context flows through to investigations, so follow-up questions retain awareness of what was just discussed.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Configurable Flight Assignment
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            New auto-assign by index endpoint — admins can auto-populate flights based on player handicap index, with configurable flight count and assignment strategy.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Backend resolvers and SQL migration for the new flight configuration model.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Frontend UI for flight config: auto-assign by index, custom naming, saved config restoration.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Ledger Description Standardization
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            All ledger entries now lead with the event name, making it trivial to pivot and group credits/debits by event across the financial report.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           GGK+ League Flag
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Groups flagged as GGK+ leagues now always create GGK+ events (no legacy option). Simplifies the workflow for modern leagues.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Admin UX — Pete's Requests (August 2026)
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Edit Indexes Save/Cancel UX + Files for Course bundle on the web.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Copy Printables Link and Waitlist Promote on the mobile app.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;strong&gt;&#xD;
      
           Best Ball Display Fix
          &#xD;
    &lt;/strong&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Team handicap sum badge now hidden for best ball games (where individual handicaps apply, not a combined team handicap).
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
           What We Fixed
          &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Saved report SQL now correctly parameterizes both camelCase and snake_case placeholders.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;code&gt;&#xD;
        
            noonanSaveReport
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             properly requires 
           &#xD;
      &lt;/span&gt;&#xD;
      &lt;code&gt;&#xD;
        
            event_id
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             (ASMX doesn't support optional params).
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Null summary guard + CSV/summarization error logging in the hybrid pipeline.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Full input sent on first iteration when using session continuity with 
           &#xD;
      &lt;/span&gt;&#xD;
      &lt;code&gt;&#xD;
        
            previous_response_id
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
            .
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Registration gate added to legacy 
           &#xD;
      &lt;/span&gt;&#xD;
      &lt;code&gt;&#xD;
        
            registerAfterPayment
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             endpoint (prevents unregistered GGK+ registrations through old path).
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;code&gt;&#xD;
        
            getEventPlayersAllRounds
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             converted from implicit JOIN to subquery to avoid conflicts with LEFT JOIN on group_handicap.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Flight naming restored from saved config in the flight generator.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;code&gt;&#xD;
        
            ggkCreateNewSeason
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             payload fixed — nests the 
           &#xD;
      &lt;/span&gt;&#xD;
      &lt;code&gt;&#xD;
        
            league_season
           &#xD;
      &lt;/code&gt;&#xD;
      &lt;span&gt;&#xD;
        
             object correctly for ASMX binding.
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
            Member status sync — leagues and clubs now start as Guest (not the previous Member default).
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;</content:encoded>
      <pubDate>Thu, 27 Aug 2026 20:49:26 GMT</pubDate>
      <guid>https://www.golfgameskeeper.net/release-v2026-08-26-august-26-2026</guid>
      <g-custom:tags type="string" />
    </item>
  </channel>
</rss>
