-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Files Changed Overview ( from #5626 rebased and within scope) #7856
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- Add FilesChangedOverview UI + i18n and supporting hook (useDebouncedAction) - Introduce FileChangeManager and FCOMessageHandler services - Wire FCO into ClineProvider and webviewMessageHandler (experiment toggle) - Track LLM-edited files in tools (applyDiff, insertContent, searchAndReplace) - Add ShadowCheckpointService helpers: getContent and getCurrentCheckpoint - Minimal checkpoint integration: send filesChanged on checkpoint; reset baseline on restore - No checkpoint behavior changes; scoped to upstream/main - removed UseDebouncedAction since it is already implemented elsewhere. - added changes mentioned by roo in the review
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for your contribution! I've reviewed the Files Changed Overview feature implementation and found several issues that need attention before merging. The feature looks promising but requires some critical fixes for stability and completeness.
|
Hey @playcations can you take a look at the failing unit test? |
|
It is missing tests I have at home that I missed pushing. I will get those in when I get home in about 4 hours. |
|
Added tests and updated language files. fixed found edge cases. |
|
I will be closing this branch as I am working on a refactor with better separation of concerns, less dependencies on tools, etc. Hopefully will be ready later this week. |
This is a rebased version of PR #5626 to resolve merge conflicts and scope.
Original PR: #5626
Original Title: Files Changed Overview (FCO)
What was done:
Closes Issue: #4454 when merged.
Closes PR: #5626 when merged.
Old PR Notes:
Related GitHub Issue
Closes: # 4454
Description
This adds a collapsable window in chat to show files that have been modified by agents.
Features include accepting changes, diffing and rejecting file changes outright.
This prevents you from needing to keep git open or going back to a previous checkpoint after every big modifications to the codebase. I definitely had times where some good changes have happened but then the agent decides theya ren't done! You can easily reject some of the changes instead of all of them. If you don't like this feature, you can also turn it off in the settings menu.
Checkpoints system did need modifications to get this to work properly. You can see what was done there and let me know what you think.
ShadowCheckpoints are now stored in a .roo folder in root. This prevents the need to search for all git files and turn off the system if some are found not in root. This was a real bummer when I went to use roo on larger codebases that have .gits throughout.
Test Procedure
run the following tests:
src/core/webview/tests/ClineProvider.spec.ts
src/services/checkpoints/tests/ShadowCheckpointService.spec.ts
src/services/file-changes/tests/FileChangeManager.test.ts
webview-ui/src/components/file-changes/tests/FilesChangedOverview.spec.tsx
webview-ui/src/components/settings/tests/UISettings.spec.tsx
webview-ui/src/context/tests/ExtensionStateContext.spec.tsx
check all languages exist.
open chat and ask it to modify some files, make new files, different types of tool calls, etc. accept and reject the changes
open settings menu and under interfaces, turn off the feature, go through the steps again
turn on the feature on last time and go through the steps again.
make sure checkpoints still work.
when restoring a checkpoint, fco clears and disappears.
Pre-Submission Checklist
Screenshots / Videos
Before:
After Checkpoint is hit:
Settings option:
Documentation Updates
You can add a line like, "After every checkpoint, Files changed will appear in chat. You have the option to accept or reject them on a file by file basis. to turn this feature off, find it in the settings menu" but I don't think it makes much to consider it significant.
Additional Notes
I consolidated the feature, made a new branch, pushed just feature changes, and squashed it into a single commit to only contain changes made that involve this feature.
Important
Introduces a feature to track and manage file changes between checkpoints, with UI updates, backend integration, and internationalization support.
FilesChangedOverviewcomponent to display modified files between checkpoints inTaskHeader.tsx.FCOMessageHandlerinFCOMessageHandler.tsto handle file change messages.FileChangeManagerinFileChangeManager.tsfor managing file changes.checkpointRestoreandgetCheckpointServiceinindex.tsto integrate file change tracking.applyDiffToolLegacy,attemptCompletionTool,insertContentTool, andsearchAndReplaceToolto track file edits.FCOMessageHandlerandFileChangeManagerinFCOMessageHandler.test.tsandFileChangeManager.test.ts.settings.jsonfor Italian, Russian, and Chinese locales to include new feature descriptions.useDebouncedActionhook inuseDebouncedAction.tsfor debouncing actions.This description was created by
for 5f7999d. You can customize this summary. It will automatically update as commits are pushed.