feat: implement filename-based thread status management#14
Merged
Conversation
- Add automatic status tracking via filename prefixes: - action-required_: awaiting code author response - waiting-review_: awaiting reviewer response - resolved_: thread resolved - Simplify frontmatter by removing status fields - Add claude_code_author config for AI assistant detection - Update file operations to handle status changes via rename - Fix reply file creation to update existing thread file This enables efficient workflow tracking between AI assistants and human reviewers without parsing file contents.
- Add test_filename_status.lua with full coverage - Test parse_filename and make_filename functions - Test determine_thread_status logic - Test automatic file renaming on replies - Test thread file operations - Test wildcard search functionality - Test status preservation in list view - Test resolve thread filename updates - Export internal functions from storage/file.lua for testing
- Fix E5108 error when displaying comments with newlines - Split comment content by lines before passing to nvim_buf_set_lines - Ensures each line is added separately to avoid newline issues
- Show selection dialog when resolving threads at cursor position - Display thread status, preview, and comment count for each thread - Sort threads by ID for consistent ordering - Previously only showed warning without allowing resolution
- Add list_threads() function to show thread-based view - Display thread status icons ([\!], [⏳], [✓]) - Show root comment preview and total comment count - Sort threads by file and line number - Currently supports quickfix list (telescope/fzf-lua support TODO)
- Show thread selection UI when multiple threads at cursor - Single thread: show all comments in that thread - Multiple threads: let user choose which thread to view - Display thread status, preview, and comment count in selection - No threads: show all comments as before
- Add wrap=true to show long lines without horizontal scrolling - Add linebreak=true to wrap at word boundaries - Improves readability of long comments in <leader>rs
- Comment input window: width 60 -> 80 - Preview window vertical split: width 80 -> 100 - Comment display window: width 60 -> 80 - Keep heights unchanged as they auto-expand based on content
- Add color differentiation for comment statuses: - waiting-review: green (#50fa7b) - needs user attention - action-required: light gray (#6c7086) - pending Claude Code - resolved: dark gray (#44475a) - completed - Keep gutter sign as vertical line (┃) with color variations - Add status-specific virtual text icons: - waiting-review: mail icon () - action-required: circle (○) - resolved: hidden (gutter only) - Fix thread_status not being set from filename - Remove debug notifications
- Implement list_threads_with_fzf_lua() with full preview support - Implement list_threads_with_telescope() with status-aware display - Unify status icons across all list views (quickfix, fzf-lua, telescope) - waiting-review: (mail icon) - action-required: ○ - resolved: ✓ - Apply status-specific colors in telescope view - Fix fzf-lua preview by properly storing entries and preview_buffers
This was referenced Jul 9, 2025
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
This PR implements a comprehensive filename-based thread status management system for better integration with Claude Code and other AI assistants. Comment files now include status prefixes in their filenames, making it easy to identify which threads need attention.
Major Features
1. Filename-based Status Management
action-required_*.md,waiting-review_*.md,resolved_*.mdgrep -l "waiting-review_" .code-review/)2. Enhanced UI/UX Features
<leader>rl)waiting-review: Green ( mail icon) - User's attention neededaction-required: Light gray (○) - Claude Code needs to respondresolved: Dark gray (✓) - Completed threads3. Updated Keybindings
<leader>rlnow lists threads (instead of individual comments) for better overview<leader>rsincludes thread selection UI when multiple threads exist at the cursor position4. Comprehensive Test Coverage
Breaking Changes
Test Plan