Small user-visible defects collected during the 2026-08-02 in-browser test matrix. Grouped because each is a one-line fix.
1. Pluralization — "1 players", "1 expenses"
- Announcements list: an announcement targeted at one player renders "1 players" on the card. The compose dialog gets it right ("1 player selected") — only the card is wrong.
- Travel expenses panel: a trip with one expense renders "1 expenses" under Total Expenses.
Both need the same conditional-plural treatment already used elsewhere in the codebase (e.g. ${n} round${n === 1 ? '' : 's'} in golf.ts).
2. New Round offers to restore a draft with zero holes
Starting a fresh round pops the recovery modal:
Recover Unsaved Progress?
Found locally saved data with 0 completed holes. This data may have been saved when the app was interrupted.
[Discard] [Restore]
Offering to restore nothing is pure friction on an otherwise clean start, and it trains players to dismiss a dialog that matters when it has real data in it. Suppress the prompt when the recovered draft has 0 completed holes (just discard silently), or at minimum don't offer "Restore" for an empty draft.
3. "Action needed" badge persists on an acknowledged announcement
After a player acknowledges an ack-required announcement, the card correctly flips its counter to 1/1 ack and the filter chips for Unread and Action needed disappear — but the "Action needed" badge on the card itself remains. The card simultaneously reads "Action needed" and "1/1 ack".
Badge should clear once the viewing player's own acknowledgement is recorded.
4. Approach miss grid: two buttons both render the letter "L"
In the approach miss-direction 3×3 grid, ↑ L (Long) and ← L (Left) both display "L"; only the arrow glyph distinguishes them. The aria-labels are correct ("Long", "Left"), so this is visual only — but at a glance in the field the two are easy to confuse. Consider Lg/Lft, or dropping the letter and relying on the arrow plus position.
All four verified in-browser on Demo University Golf as coach and as Cole Bennett.
Small user-visible defects collected during the 2026-08-02 in-browser test matrix. Grouped because each is a one-line fix.
1. Pluralization — "1 players", "1 expenses"
Both need the same conditional-plural treatment already used elsewhere in the codebase (e.g.
${n} round${n === 1 ? '' : 's'}ingolf.ts).2. New Round offers to restore a draft with zero holes
Starting a fresh round pops the recovery modal:
Offering to restore nothing is pure friction on an otherwise clean start, and it trains players to dismiss a dialog that matters when it has real data in it. Suppress the prompt when the recovered draft has 0 completed holes (just discard silently), or at minimum don't offer "Restore" for an empty draft.
3. "Action needed" badge persists on an acknowledged announcement
After a player acknowledges an ack-required announcement, the card correctly flips its counter to
1/1 ackand the filter chips forUnreadandAction neededdisappear — but the "Action needed" badge on the card itself remains. The card simultaneously reads "Action needed" and "1/1 ack".Badge should clear once the viewing player's own acknowledgement is recorded.
4. Approach miss grid: two buttons both render the letter "L"
In the approach miss-direction 3×3 grid,
↑ L(Long) and← L(Left) both display "L"; only the arrow glyph distinguishes them. Thearia-labels are correct ("Long", "Left"), so this is visual only — but at a glance in the field the two are easy to confuse. ConsiderLg/Lft, or dropping the letter and relying on the arrow plus position.All four verified in-browser on Demo University Golf as coach and as Cole Bennett.