Track all updates, improvements, and fixes to FullOut
Fix notification click not navigating on iOS PWA
a21aa88Add Source PDF link to schedule page header
f0b7ac9Move stage before competition name in notifications
41c8040Add stage name to end of performance notifications
cbecb74Add @types/pdf-parse to fix build error
ccf9aaaExclude root scratch files from TypeScript build
f359b9fSurface actual push subscription error messages to the user
536db2fAdd push subscribe error feedback and better error logging
9ab65d4Improve push permission denied message with platform-specific reset instructions
7e6def7Fix gym name contamination and improve generic team name validation
af01386Add explicit Enable Push button to notification settings
924acf7Fix iOS push detection: check actual PushManager support instead of blanket-blocking iOS
e0e9f8dFix silent push notification failures: validate subscriptions, fix counting, add logging
9b57187Fix SSR crash: wrap useIsIOSPWA in useEffect to avoid window/navigator on server
8201e29Refactor PWA notifications: iOS detection, reorganize alerts page, improve notification URLs
592e0a1Fix PDF print: constrain column widths, allow text wrapping
3a0170bFix saved schedules not appearing until manual reload
d13b469Replace SMS notification settings with "Coming Soon" label
19623f3Fix push notifications not sent: trigger push subscription on bell toggle
65ef8dfAdd color-coded column groups to PDF export matching website
0ecc01cMove filter sidebar toggle below folder toggle, remove from card header
4eb9a56Add toggle to hide/show the scorecard filter sidebar
6e4b7d3Move grouping, sorting, and display controls into collapsible sidebar
2377d8dFix PDF export: wrap score column headers and use landscape layout
0ab8476Show Scorecards link on all analyze modes, apply layout tweaks
14fe798Fix rescrape: disable bulk scrape when RESCRAPE_ENABLED to prevent month contention
1701763Add PDF scoresheets feature to PRO tier on pricing page
8b28c66Fix Railway crash: validate Supabase URL before creating client
be36db9Fix backfill script: correct Varsity API parsing and round stripping
62ab36aFix broken search: invalid regex character range in REGEXP_REPLACE
687dfe4Add PDF scoresheet storage & PRO-tier access
10aca34Fix scorecard column header text color and improve level parsing in import scripts
2f9cc43Add Scorecards button to gym dashboard, move filters into scorecard panel
5bef286Convert Whole Gym page from tabs to single scrollable page
fe5ccb7Move Scorecards to top-level navigation, remove from Whole Gym tabs
d97415bPass gymSlug and username to GymDashboard in analyze page
17afcfcAdd rt_drivers and st_drivers aliases to score mapper for DOD fields
e2a3ffeAdd standalone scorecards page with saved scorecards & folders
270e170Fix gym scorecard header rendering and readability
ce94d9dImprove scraper pipeline: gym name splitting, level parsing regex, program filter sweep, and normalized competition search
e9e52f8Handle status poll timeouts gracefully in scrape job processor
686daaaAdd data quality overhaul: validation framework, rescrape orchestrator, and auto-changelog
da46cffScraper & import pipeline improvements, schedule review system
3950f3fAdmin feedback system, notifications, and map improvements
0e5b61eCompetition schedules feature with PDF import and mobile optimization
5bb93faGroups dashboard redesign and multi-day competition date fixes
de77096Account switcher, email verification, and UI enhancements
bba9135Prisma relation naming fixes and type safety improvements
6304b2cBlog system, username search, and profile enhancements
4d51bbdProfile photo upgrades and explore polish
0afef81Major Feature Expansion - Monetization, Exports, Glossary
8949a30Initial Release - Analytics Dashboard
695a050This changelog follows the format inspired by Keep a Changelog. All notable changes to FullOut are documented here.
Each release includes the version number, release date with timezone, git commit hash, and a detailed summary of all changes organized by type.