Fix new comments navigator duplicate counts #2607
                
     Open
            
            
          
      
        
          +20
        
        
          −4
        
        
          
        
      
    
  
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
Description
Fixes #2606
When navigator receives a new comment ref, the deduplication process only checks if the exact ref received is already present in the commentRefs array. When a comment gets collapsed and uncollapsed, its ref dies and the comparison would just fail.
The fix involves making the comment counter aware of stale (disconnected) refs and refreshing it on every action.
This way, the navigator gets rid of stale refs and the counter will always be truthful to what is shown to the user; fixing duplicate counts (collapsing and uncollapsing), and stale counts (collapsing).
Screenshots
tbd
Additional Context
This is another reminder for me to refactor the outlining system, since the outlining effect shouldn't run on every collapse/uncollapse.
Checklist
Are your changes backward compatible? Please answer below:
For example, a change is not backward compatible if you removed a GraphQL field or dropped a database column.
Yes
On a scale of 1-10 how well and how have you QA'd this change and any features it might affect? Please answer below:
7, scrolling to a comment, collapsing and uncollapsing works correctly.
For frontend changes: Tested on mobile, light and dark mode? Please answer below:
n/a
Did you introduce any new environment variables? If so, call them out explicitly here:
n/a
Did you use AI for this? If so, how much did it assist you?
no
Note
Make the comments navigator robust to disconnected refs and add cleanup to untrack comments, ensuring accurate new-comment counts.
components/use-comments-navigator.js):throttleCountUpdate.untrackNewComment, update count even if the ref is missing; always callthrottleCountUpdateafter processing.scrollToComment, handle missing nodes by triggering a count refresh; update dependencies.components/comment.js):useEffectto callnavigator.untrackNewComment(ref, { includeDescendants: true })when effect cleans up, preventing stale tracking.Written by Cursor Bugbot for commit 1d0c3e5. This will update automatically on new commits. Configure here.