Frontmatter
| id | 9064 |
| title | Feat: Implement ''Commits Only'' Toggle for DevRank Grid |
| state | Closed |
| labels | enhancementai |
| assignees | tobiu |
| createdAt | Feb 9, 2026, 12:56 AM |
| updatedAt | Feb 9, 2026, 1:45 AM |
| githubUrl | https://github.com/neomjs/neo/issues/9064 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 8930 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Feb 9, 2026, 1:45 AM |
Feat: Implement 'Commits Only' Toggle for DevRank Grid
tobiu assigned to @tobiu on Feb 9, 2026, 12:56 AM
tobiu added parent issue #8930 on Feb 9, 2026, 12:57 AM

tobiu
Feb 9, 2026, 1:45 AM
Input from Gemini 3 Pro:
✦ I have implemented the "Commits Only" toggle in the DevRank UI.
Features:
- UI: Added a "Commits Only" checkbox to the Controls panel.
- Grid Logic: Toggling the checkbox dynamically updates:
- Year Columns: Switches between Total (
yXXXX) and Commits (cyXXXX) data.- Sparkline: Updates the chart to show the corresponding dataset.
- Total Column: Updates to show
total_commits(calculated).- Sorting: Automatically switches the active sorter to the corresponding field (e.g.,
total_contributions->total_commits).Model Support:
- Updated
Contributormodel to includecommits_array(mapped tocy) and a calculatedtotal_commitsfield.Note: A known issue with sorting in Turbo Mode (lazy instantiation) has been identified and tracked in #9066.
tobiu closed this issue on Feb 9, 2026, 1:45 AM
We need to add a "Commits Only" toggle to the DevRank controls. This involves several updates:
Data Model (
Contributor.mjs):cmapping,commitsfield).total_contributionsand year fields (y2020, etc.) to be dynamic based on the active mode (Total vs. Commits).UI (
ControlsContainer.mjs):CheckBoxfor "Commits Only".Grid (
GridContainer.mjs):yXXXXfields update correctly when the underlying data logic changes.total_contributions).Backend (
Updater.mjs):totalCommitContributions. We need to ensure this data is now persisted in theusers.jsonschema (as a separate array or structure).This ticket focuses on the frontend implementation (1-3) and assumes data is available or will be mocked until the backend fully populates it.