Feat/persist inline comments#2358
Conversation
Review Summary by QodoPersist inline comments with deduplication and auto feedback disable improvements
WalkthroughsDescription• **Persistent inline comments with deduplication**: Implemented core deduplication algorithm in inline_comments_dedup.py using stable content-derived hashing to identify and update existing inline comments across PR runs • **GitHub provider support**: Added get_bot_review_comments(), edit_review_comment(), and thread resolution methods using GraphQL; enhanced publish_code_suggestions() with deduplication logic supporting off/update/skip modes • **GitLab provider support**: Implemented equivalent persistent inline comment functionality with MR discussion fetching and thread resolution capabilities • **Configuration options**: Added persistent_inline_comments (update/skip/off modes), resolve_outdated_inline_comments, and claude_extended_thinking_models_override settings • **Base provider interface**: Extended git_provider.py with new methods for inline comment management and fixed get_user_description() parsing bug • **Documentation**: Added comprehensive guide explaining deduplication mechanism, identity rules, and configuration • **Auto feedback disable simplification**: Unified auto feedback disable logic across all webhook servers (GitHub, GitLab, Bitbucket, Gitea, Azure DevOps) and GitHub Action runner • **Add docs integration**: Added original_suggestion field to documentation suggestions for deduplication support • **Extensive test coverage**: Added 769 lines of GitLab tests, 634 lines of GitHub tests, plus core algorithm, integration, and configuration validation tests Diagramflowchart LR
A["PR Suggestions<br/>GitHub/GitLab"] -->|"Deduplication<br/>Algorithm"| B["inline_comments_dedup.py<br/>Stable Hashing"]
B -->|"Match & Update"| C["Existing Bot<br/>Comments"]
C -->|"Resolve/Unresolve<br/>Threads"| D["Updated PR<br/>with Persistent<br/>Comments"]
E["Configuration<br/>persistent_inline_comments<br/>resolve_outdated_inline_comments"] -.->|"Controls Behavior"| B
F["GitHub/GitLab<br/>Providers"] -->|"Fetch & Edit"| C
File Changes1. tests/unittest/test_gitlab_inline_dedup.py
|
Code Review by Qodo
Context used 1.
|
|
Persistent review updated to latest commit 9089f58 |
|
Persistent review updated to latest commit 568eb42 |
|
Persistent review updated to latest commit 0dc5adf |
Resolves #2357 and #2037 (and likely other dupes of "Persist Inline Comments")