1.5.3 May 6, 2026
Changed
  • iOS: app is now iPhone-only. The App Store listing no longer shows “Designed for iPad”; the app continues to run on iPad in iPhone compatibility mode for existing users.
1.5.2 April 30, 2026
Added
  • Visual hold-progress feedback for the press-and-hold manual score edit gesture: a fading progress bar and “HOLD TO EDIT SCORE” hint appears after a brief delay and fills over one second, making the long-press affordance discoverable without changing the existing activation threshold.
Fixed
  • PDF/CSV export filenames: special characters in team names (for example #, [, ;, !, $) no longer cause sharing to mis-parse the cache URI and strip the file extension.
Changed
  • Single source of truth for Expo config: removed app.json and consolidated all configuration into app.config.js.
  • Bumped Expo SDK packages to their latest 55.x patch releases and React Native to 0.83.6.
1.5.1 April 27, 2026
Added
  • Settings → About: “View Tutorial Again” entry that replays the first-run onboarding walkthrough on demand.
  • Settings → About: “Website” entry that opens rallypointscorekeeper.com in the system browser.
  • Website: dedicated Feedback & Suggestions page with hosted form embed and email fallback, linked from site navigation and footer.
Changed
  • Home screen Supported Formats section redesigned as segmented tabs with a structured detail panel (Sets, Points, Win by, Other).
1.5.0 March 24, 2026
Added
  • Social share option on match summary: a bold, square-format graphic optimized for social media feeds (Facebook, Instagram, X).
  • Crash reporting via Sentry (production-only, no PII).
  • UI component test infrastructure with 13 tests covering SocialShareCard and StorageSafetyBanner.
  • Comprehensive test coverage expansion: 259 total tests across 7 suites.
  • Side-Out Tracking feature for scoring runs across sets.
  • Scoring run visualization with colored blocks in match summary.
  • Scoring run data in PDF exports.
  • Score tick marks under scoring run bars for cumulative side-out boundaries.
  • Service error tracking — optional per-set service error counter with ✕ button. Records error on the serving team and awards a point to the opponent.
  • Confetti win celebration — animated confetti cannon on match completion.
  • Service Tracking accordion on new match screen — Aces and Errors toggles grouped under a collapsible section.
  • App logo embedded in PDF export header.
Changed
  • Match summary share grid reorganized: Text | Email | Social (row 1), Scorecard | CSV | PDF (row 2).
  • Full-detail image export renamed from “Image” to “Scorecard” to distinguish from the social graphic.
  • SECURITY.md updated with current supported versions, Sentry disclosure, export sanitization, and input length constraints.
  • Privacy policy updated with social share image, detailed per-format data descriptions, and Sentry crash reporting disclosure.
  • Export generation now sanitizes user-provided text in HTML output and generated filenames.
  • Match history retention is now configurable in settings (50/100/250/500).
  • Database startup runs integrity checks and switches to read-only safety mode if corruption is detected.
  • History and Settings show a persistent storage safety badge when DB is in read-only mode.
  • Scoring run data removed from email and CSV exports for cleaner output; PDF retains the full visual scoring run bars.
  • CSV export ace columns replaced with a single totals row above the final result for cleaner spreadsheet output.
  • PDF ace tracking display: aces now shown as a summary row below the set table instead of extra columns.
  • Team panel scoring run block dividers now use the team's own color instead of white.
  • Same-color divider line between team panels on the active scoring screen.
  • Removed “-D” label suffix from deciding set indicator.
Fixed
  • Active match state now flushes to disk immediately when the app is backgrounded, preventing score loss.
  • Home dashboard stats now use SQL aggregation instead of loading full records into memory.
  • Database file is now backed up before schema migrations for recovery.
  • New match form inputs enforce maximum lengths (team names: 50 chars, venue/tournament: 100 chars).
  • Side-switch alert no longer re-fires after undo and re-score to the same combined score.
  • Android predictive back gesture enabled for Android 14+.
  • Added missing accessibility roles and labels to share buttons, autocomplete suggestions, and onboarding controls.
  • Theme flash on launch: splash screen now waits for theme settings to load before hiding.
  • Persistence debounce flush no longer blocks the JS thread on every state change, preventing score skips during rapid tapping.
  • Android keyboard no longer covers Venue and Tournament fields on new match screen.
  • Fixed @xmldom/xmldom high-severity vulnerability (XML injection via unsafe CDATA serialization).
1.2.0 March 20, 2026
Added
  • Home screen redesign with branded hero, live stats dashboard, last match result card, and format reference chips.
  • Serving indicator — gold “SERVING” badge tracking the serving team using rally scoring rules.
  • Ace tracking — optional per-set serve ace counter with ⚡ button.
  • Club format — Best of 3 sets with indoor rules, ideal for rec leagues.
  • Serve alternation — first serve alternates between teams each set.
  • Score change animation — score text pulses via react-native-reanimated.
  • Swipe-to-delete — Gmail-style swipe-left on history cards.
  • First-run onboarding overlay — 4-screen walkthrough for new users.
Changed
  • SetData type now includes servingTeam, acesA, and acesB fields.
  • MatchConfig type now includes aceTrackingEnabled option.
  • History cards no longer use long-press for deletion (replaced by swipe).
1.0.0 March 20, 2026
Added
  • Indoor volleyball format — Best of 5, 25-point sets, deciding set to 15.
  • Beach volleyball format — Best of 3, 21-point sets, deciding set to 15.
  • Custom match format — configurable sets, points, win-by margin, and timeouts.
  • Automatic deuce detection and extended play (win by 2).
  • Split-screen scoring with large tappable areas (portrait and landscape).
  • Set and match completion modals with winner highlight and undo.
  • Full undo support for points, timeouts, and set completions.
  • Manual score editing via long-press with validation.
  • Auto-save to SQLite after every action.
  • Match resume across app restarts.
  • Match history — browse, search, delete, clear all.
  • 5 export formats: Text, Email, Image, CSV, PDF.
  • Dark, light, and system theme support.
  • 12 team color presets.
  • Team name, venue, and tournament autocomplete.
  • Haptic feedback and keep-screen-awake options.
  • Landscape mode support.
  • Parameterized SQLite queries, no remote data transmission, no PII collection.