- Modified ToolRepetitionDetector to skip repetition detection for browser_action scroll_down and scroll_up actions
- Added isBrowserScrollAction() helper method to identify scroll actions
- Added comprehensive tests for the new behavior
- Fixes issue where multiple scroll actions were incorrectly flagged as being stuck in a loop
Resolves: https://github.com/RooCodeInc/Roo-Code/discussions/7470
Co-authored-by: Roo Code <roomote@roocode.com>
* fix: change default showRooIgnoredFiles to false to hide ignored files
- Changed default value from true to false across all files
- Updated tests to reflect the new default behavior
- This prevents ignored files from appearing in environment details
Fixes#7368
* fix: update tests to match new showRooIgnoredFiles default
* fix: update test expectation to match new showRooIgnoredFiles default value
The PR changed the default value of showRooIgnoredFiles from true to false,
so the test needs to expect false instead of true when calling formatFilesList.
---------
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
• Replace dual Set<string> (acceptedFiles/rejectedFiles) with single Map<string, string> (acceptedBaselines) for cleaner state management
• Remove complex hiding/unhiding logic in applyPerFileBaselines()
• Rejected files are simply removed from changeset and reappear naturally when edited again via update FCOAfterEdit
• Accepted files get per-file baselines to show only incremental changes
• Self-correcting system: file visibility determined by diffs, not flags
Problem:
- FCO missing last edited file (calculated at checkpoint creation before tools execute)
- FCO disappears when tasks are aborted (state not preserved)
- Manual user edits must remain protected during rollback (issue #4827)
Solution:
- Add immediate FCO updates after each file editing tool execution
- Preserve FCO state during task abort and restore on resume
- Maintain checkpoint timing BEFORE edits for rollback safety
- Add final checkpoint on task completion to capture all changes
Changes:
- Add updateFCOAfterEdit helper to calculate and display changes without checkpoints
- Update presentAssistantMessage to call FCO updates after file tools
- Add final checkpoint in attemptCompletionTool
- Preserve/restore FCO state in ClineProvider during abort/resume
- Add test utilities for checkpoint functionality
This separates FCO visibility (immediate updates) from checkpoint safety (before edits),
solving both user experience issues while maintaining rollback protection.
- Fix checkpoint memory leak by making
ongoingCheckpointSaves task-scoped
- Moved ongoingCheckpointSaves Map from module-level to
Task class property
- Add cleanup in Task.dispose() method to prevent memory
leaks
- Update checkpoint functions to use task-scoped Map
- Fix test mock to include ongoingCheckpointSaves
property
From commit 71c63f9a6 'language files, theming, bug fix, Test improvements':
Theming Updates:
- Convert from Tailwind CSS classes to inline styles for consistent theming
- Make Files Changed Overview match TodoList theming (slim and compact)
- Simplify formatLineChanges to show only '+X, -Y' format (no translations)
- Remove parentheses from count format in summary
- Update FileItem to use thinner rows (32px instead of 60px)
- Apply compact padding and margins throughout component
Visual Changes:
- Smaller button sizes and padding for compact look
- Consistent inline styling using CSS variables
- Better alignment with VS Code theming system
- Matches TodoList component styling for unified look
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Applies commits 04bd21403 and 3d15bba1d from backup branch:
FCO Edge Case Fixes:
- Add .roo/ exclusion to checkpoint diffs
- Filter out directories from ShadowCheckpointService.getDiff()
- Implement improved line-by-line diff calculation in FileChangeManager
- Add comprehensive FileChangeManager tests (70+ test cases)
Windows Compatibility:
- Fix 'core.bare and core.worktree do not make sense' error
- Add core.bare=false configuration for shadow git repos
LLM-Only Filtering:
- Complete async integration of getLLMOnlyChanges() in FCO handlers
- Fix getCurrentCline → getCurrentTask method name alignment
- Update all FCO message handlers to use LLM-only filtering
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Change getCurrentCline() to getCurrentTask()
- Fix Promise return type in test mock
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added more tests for checkpoints
- Fixed bug where fco was not updating after checkpoints properly.
- It would include all previous edits from the previous checkpoint on tasks that were mid edit.
- Added timestamp checking to cover the edge case.
- Added tests for the edge cases covered.
- Bug fix for users enabling FCO after some time using the task.
- One more edge case being covered when the user enables fco after talking with the task for a while.
- To solve this, added test cases and have the settings enabled to set the timestamp if it was previously disabled.
- Added better separation of concerns for testing of FCO web ui.
- Added condition in getApiProtocol to return 'anthropic' for vercel-ai-gateway when modelId starts with 'anthropic/'
- Added tests for Vercel AI Gateway provider protocol detection
This ensures proper token counting for Anthropic models accessed through Vercel AI Gateway, as Anthropic and OpenAI count tokens differently (Anthropic excludes cache tokens from input count, OpenAI includes them).