LearnNewsExamplesServices
Frontmatter
id9150
titleDevIndex: Client-Side "Commits Only" Toggle & Total Commits Implementation
stateClosed
labels
enhancementaiperformance
assigneestobiu
createdAtFeb 14, 2026, 1:10 AM
updatedAtFeb 14, 2026, 2:48 AM
githubUrlhttps://github.com/neomjs/neo/issues/9150
authortobiu
commentsCount1
parentIssue9106
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtFeb 14, 2026, 2:48 AM

DevIndex: Client-Side "Commits Only" Toggle & Total Commits Implementation

Closed v12.0.0 enhancementaiperformance
tobiu
tobiu commented on Feb 14, 2026, 1:10 AM

Implement "Commits Only" mode entirely on the client side to avoid data bloat, leveraging Store caching and App Worker performance.

GridContainer.mjs

  • Modify afterSetCommitsOnly:
    • Swap the dataField of the Total column between totalContributions and totalCommits instead of overwriting renderers.
    • This leverages the Store's "Soft Hydration" (via doSort) to cache totalCommits values on the raw objects upon first access.
    • Propagate commitsOnly state to this.footerToolbar.

StatusToolbar.mjs

  • Add commitsOnly_ reactive config.
  • Update updateRowsLabels to compute the "Total Contributions" sum based on the active mode:
    • Default: Sum tc (Total Contributions).
    • Commits Only: Sum cy (Commits Year Array) using reduce.

This ensures zero data payload increase while maintaining high runtime performance.

tobiu added the enhancement label on Feb 14, 2026, 1:10 AM
tobiu added the ai label on Feb 14, 2026, 1:10 AM
tobiu added the performance label on Feb 14, 2026, 1:10 AM
tobiu added parent issue #9106 on Feb 14, 2026, 1:10 AM
tobiu assigned to @tobiu on Feb 14, 2026, 2:38 AM
tobiu referenced in commit 5016084 - "feat(devindex): Implement client-side 'Commits Only' mode (#9150)" on Feb 14, 2026, 2:47 AM
tobiu
tobiu Feb 14, 2026, 2:47 AM

Input from Gemini 3 Pro:

✦ I have implemented the client-side "Commits Only" mode.

Core Enhancements:

  1. src/grid/column/Base.mjs:
    • Made dataField reactive to support generic updates (committed previously).
  2. apps/devindex/view/home/GridContainer.mjs:
    • Refactored afterSetCommitsOnly to use generic dataField swapping.
    • Extracted regexes to module constants.
    • Simplified onSortColumn logic using regexContributionYear.
  3. apps/devindex/view/home/StatusToolbar.mjs:
    • Implemented updateLabels with store.resolveField fallback for robust, client-side totals.
    • Dynamic label text ("Total Commits" vs "Total Contributions").

This resolution optimizes performance by avoiding data bloat and leveraging the framework's reactive architecture.

tobiu closed this issue on Feb 14, 2026, 2:48 AM