Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates the scouting application for the 2026 FRC season with a new data model called "REBUILT". The changes replace the previous season's coral/algae scoring system with a fuel-based scoring system, update climb tracking from types (shallow/deep/park) to levels (1-3), and introduce new teleop shift tracking.
Changes:
- New data model with fuel scoring (auto, transition, teleop shifts 1-4, endgame) replacing coral/algae scoring
- Climb system changed from type-based to level-based (0-3)
- Removed mechanisms section from pit scouting
- Updated field map from 2025 to 2026
- Re-enabled Canvas.js auto-save with LocalForage
- Updated copyright year to 2026
Reviewed changes
Copilot reviewed 27 out of 31 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| app/utils.py | Removed storage_uri from Limiter initialization |
| app/app.py | Added RATELIMIT_STORAGE_URI configuration |
| app/models.py | Updated TeamData model with new fuel/climb fields, commented out old scoring fields |
| app/scout/scouting_utils.py | Updated database operations for new data model |
| app/scout/routes.py | Updated aggregation pipelines and API endpoints for fuel scoring |
| app/templates/scouting/*.html | Updated forms and tables for new scoring system |
| app/templates/lighthouse.html | Updated comparison UI for fuel scoring |
| app/static/js/*.js | Updated field image references and data handling |
| app/static/js/pit-scouting/*.js | Commented out old mechanism handling code |
| app/static/js/Canvas.js | Re-enabled LocalForage auto-save functionality |
Comments suppressed due to low confidence (1)
app/static/js/pit-scouting/list.js:55
- The code references 'climberCell' on line 46, but this variable is never defined. This will cause a runtime error when the CSV export function is called. The climberCell variable needs to be defined before line 46, or this entire block (lines 46-55) should be removed since the mechanisms section has been removed from pit scouting and there is no corresponding table cell to query.
const hasClimber = !climberCell.textContent.includes('🗙');
let climberType = '', climberNotes = '';
if (hasClimber) {
const climberText = climberCell.textContent.trim();
if (climberText.includes(' - ')) {
[climberType, climberNotes] = climberText.split(' - ').map(s => s.trim());
} else {
climberType = climberText;
}
}
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| # TODO | ||
| "auto_scoring": min((stats[0]["avg_auto_fuel"] or 0) / 10, 1), # Assumes ~10 max auto fuel | ||
| "teleop_scoring": min(avg_teleop_total / 30, 1), # Assumes ~30 max teleop fuel | ||
| "endgame_scoring": min((stats[0]["avg_endgame_fuel"] or 0) / 10, 1), # Assumes ~10 max endgame fuel | ||
| "climb_level": min((stats[0]["avg_climb_level"] or 0) / 3, 1), # Max level 3 |
There was a problem hiding this comment.
There is a TODO comment on line 319 that indicates incomplete normalization logic for the radar chart scoring calculations. The normalization values (dividing by 10, 30, etc.) are assumptions and should be finalized based on actual game data or scoring limits. This could lead to inaccurate radar chart representations.
* Change to certain branches to run desktop builds * Add Forgot Password Page (#26) * Add forgot password page * Fix(bug): Unable to edit scouting files when not in a team * Fix(workflows): Linux and Flatpak build errors * Add 2026 Season: REBUILT (#29) * Remove 2025 Game material * Add 2026 Game material * Remove all instances of 2025 game
* Change to certain branches to run desktop builds * Add Forgot Password Page (#26) * Add forgot password page * Fix(bug): Unable to edit scouting files when not in a team * Fix(workflows): Linux and Flatpak build errors * Add 2026 Season: REBUILT (#29) * Remove 2025 Game material * Add 2026 Game material * Remove all instances of 2025 game * Add auto climb * Add Ferried Fuel Field and +5,+10 increments * Testing Mock Alliance Selection (#27) * Mock Alliance Selection * Potential fix for code scanning alert no. 43: DOM text reinterpreted as HTML Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> * Fix bugs and add crown to winner of playoffs --------- Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> --------- Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
* Change to certain branches to run desktop builds * Add Forgot Password Page (#26) * Add forgot password page * Fix(bug): Unable to edit scouting files when not in a team * Fix(workflows): Linux and Flatpak build errors * Add 2026 Season: REBUILT (#29) * Remove 2025 Game material * Add 2026 Game material * Remove all instances of 2025 game * Add auto climb * Add Ferried Fuel Field and +5,+10 increments * Testing Mock Alliance Selection (#27) * Mock Alliance Selection * Potential fix for code scanning alert no. 43: DOM text reinterpreted as HTML Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> * Fix bugs and add crown to winner of playoffs --------- Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> * Add options for testing * Refactors * Fix TypeError Bugs * Fixes #32 * Add: Change password in settings (#34) * Bug fixes (#37) * Untested changes * Canvas #36 and Mobile UI Improvements #33 * Fix exporting pit scouting .csv blank spreadsheet and allow multiple instances of pit scouting. --------- Co-authored-by: elvizer <gamerprotime777@gmail.com> * Fix build issues * Bump BreifCase version to >=0.4.1 * Disable linux build workflows until working workflows --------- Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: elvizer <gamerprotime777@gmail.com>
Summary
A new season with new scouting data.
What's new:
Checklist