Commit graph

5620 commits

Author SHA1 Message Date
roomote[bot]
ec45503a98 feat: rename Account tab to Cloud tab (#7558)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-03 00:24:28 -04:00
Daniel
68b68a22cd feat: optimize memory usage for image handling in webview (#7556)
* feat: optimize memory usage for image handling in webview

- Replace base64 image data with webview URIs to reduce memory footprint
- Add proper resource roots to webview for workspace file access
- Implement convertToWebviewUri method for safe file-to-URI conversion
- Update ImageViewer to handle both webview URIs and file paths separately
- Add image message type for proper image rendering in chat
- Improve error handling and display for failed image loads
- Add comprehensive tests for ImageViewer component
- Format display paths as relative for better readability

This change significantly reduces memory usage by avoiding base64 encoding
of images and instead using VSCode's webview URI system for direct file
access. Images are now loaded on-demand from disk rather than being held
in memory as base64 strings.

* fix: address PR review comments

- Use safeJsonParse instead of JSON.parse in ChatRow.tsx
- Add type definition for parsed image info
- Add more specific error types in ClineProvider.ts
- Add comprehensive JSDoc comments to ImageBlock.tsx
- Improve error handling and type safety

* fix: address MrUbens' review comments

- Remove hardcoded 'rc1' pattern in formatDisplayPath, use generic workspace detection
- Internationalize 'No image data' text using i18n system

* chore: remove useless comment

* chore(i18n): add image.noData to all locales to fix translation check

* test: update ImageViewer.spec to align with i18n key and flexible path formatting
2025-09-03 00:24:28 -04:00
Piotr Wilkin (ilintar)
08d3b6c5ab fix: special tokens should not break task processing (#7540) 2025-09-03 00:24:28 -04:00
Chris Estreich
565d2df3e8 Fix evals (#7547) 2025-09-03 00:24:28 -04:00
Matt Rubens
6655709872 Putting the Roo in Roo-leases (#7546) 2025-09-03 00:24:28 -04:00
Chris Estreich
ce12bffb8c Mode and provider profile selector (#7545) 2025-09-03 00:17:56 -04:00
github-actions[bot]
b2c233385d Changeset version bump (#7542)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-02 23:35:17 -04:00
Matt Rubens
49d994de0f chore: add changeset for v3.26.3 (#7541) 2025-09-02 23:35:17 -04:00
Daniel
df556e72f9 refactor: flatten image generation settings structure (#7536) 2025-09-02 23:33:20 -04:00
roomote[bot]
666db9a7f4 feat: sync extension bridge settings with cloud (#7535)
- Use CloudService.getUserSettings() for remoteControlEnabled instead of global state
- Update CloudService.updateUserSettings when toggling remote control
- Add BridgeOrchestrator.connectOrDisconnect handling in settings update handler
- Remove dependency on contentProxy/globalSettings for remote control state
---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: John Richmond <5629+jr@users.noreply.github.com>
2025-09-02 23:26:36 -04:00
roomote[bot]
1797b653ed feat: add optional input image parameter to image generation tool (#7525)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-09-02 23:22:10 -04:00
Chris Estreich
1cbb57b1a1 Implement deferred task subscriptions (#7517) 2025-09-02 23:22:10 -04:00
Chris Estreich
be4fe29935 Refactor the extension bridge (#7515) 2025-09-02 23:22:10 -04:00
Chris Estreich
bdf128a79e Move @roo-code/cloud to the Roo-Code repo (#7503) 2025-09-02 23:22:10 -04:00
Chris Hasson
1e7d33eb76 Show console logging in vitests when the --no-silent flag is set (#7467)
By default, all of the tests run in silent mode with monkey-patched the console logging so no console logging will ever appear in test output.
This confuses the agent- sometimes it will add console logging to help it debug things, and it won't see the logs that it expects.

Adds src/utils/vitest-verbosity.ts to handle verbosity resolution and console logging.
Modifies src/vitest.config.ts and webview-ui/vitest.config.ts to integrate the new verbosity control.
Removes manual console suppression from src/vitest.setup.ts and webview-ui/vitest.setup.ts as it's now handled dynamically.

Co-authored-by: Chris Hasson <noreply@example.com>
2025-09-02 23:15:28 -04:00
github-actions[bot]
cb2efe2e22 Changeset version bump (#7491)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-02 23:15:28 -04:00
Daniel
313a674d9e fix: prevent dirty state on initial mount in ImageGenerationSettings (#7495) 2025-09-02 23:15:28 -04:00
Matt Rubens
fce45487b8 Add padding to image model picker (#7494) 2025-09-02 23:15:27 -04:00
Daniel
0829f0595f feat: update OpenRouter API to support input/output modalities and filter image generation models (#7492) 2025-09-02 23:15:27 -04:00
Matt Rubens
76a64cbbb3 Support free imagegen (#7493) 2025-09-02 23:15:27 -04:00
Matt Rubens
761297d8bc Release v3.26.2 (#7490) 2025-09-02 23:15:27 -04:00
Matt Rubens
cf8b15d9b0 Make the default image filename more generic (#7479) 2025-09-02 23:15:27 -04:00
Daniel
ef88be25fc feat: add image generation tool with OpenRouter integration (#7474)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: cte <cestreich@gmail.com>
2025-09-02 23:15:27 -04:00
Matt Rubens
5150dd96b8 Bump cloud to 0.25.0 (#7475) 2025-09-02 23:11:59 -04:00
Daniel
daa50ed495 Fix GPT-5 Responses API issues with condensing and image support (#7067)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2025-09-02 23:11:59 -04:00
roomote[bot]
7bca53c93b fix: exclude browser scroll actions from repetition detection (#7471)
- 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>
2025-09-02 23:11:59 -04:00
roomote[bot]
7e8217b797 fix: hide .rooignore'd files from environment details by default (#7369)
* 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>
2025-09-02 23:11:59 -04:00
Matt Rubens
7a9c55b0e4 Add type for RooCodeEventName.TaskSpawned (#7465) 2025-09-02 23:11:59 -04:00
Shawn
29f6e0a035 Simplify FileChangeManager architecture with proper accept and reject logic for Files Change Overview
• 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
2025-09-02 21:22:41 -04:00
Shawn
cb2f668575 Files Changed Overview updating after file edits using tool calls.
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.
2025-09-02 00:04:38 -04:00
Shawn
306dd5e0ab removed initial checkpoint creation
Pathing shows up on a separate line from the file name
2025-09-01 17:31:41 -04:00
Shawn
94c46f44fb possible checkpoint memory leak
- 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
2025-09-01 11:33:44 -04:00
Shawn
24d626c815 Removed UI from settings, Files Changed now stacked properly under Todo 2025-09-01 11:22:53 -04:00
Shawn
901a0e2c39 Switched to tailwind for FilesChangedOverview
- Reduced from 21 to 4 inline styles (only dynamic ones remain)
  - Converted static styles to Tailwind CSS classes:
    - Container styles: border, px-2.5, py-1.5, m-0, etc.
    - Flexbox layouts: flex, justify-between, items-center, gap-2
    - Button styles: Consistent classes for primary/secondary/icon buttons
    - Text styles: font-mono, text-xs, font-medium, etc.
  - Preserved dynamic styles for runtime calculations:
    - Virtualization: height, transform
    - State-based: opacity, borderBottom
  - Updated tests to check for CSS classes instead of inline styles
2025-09-01 10:53:39 -04:00
Shawn
91a6587a4c ix: code quality improvements for FCO feature and address more comments
- Remove duplicate enableCheckpoints check in checkpoints/index.ts
  - Remove unused _CheckpointEventData interface from
  FilesChangedOverview.tsx
  - Fix message type naming consistency: checkpoint_created ->
  checkpointCreated, checkpoint_restored -> checkpointRestored
  - Remove debug console.log statements from checkpoints/index.ts
2025-09-01 09:18:26 -04:00
Shawn
a06779c37a Ignore empty tool usage
Added more test cases missing and removed cases in case nothing was changed. and made it so those get ignored by the fco
2025-09-01 00:12:06 -04:00
Shawn
3461836507 Chat-only edits are not tracked 2025-08-31 22:10:47 -04:00
Shawn
a157aceb20 Apply missing FCO theming changes from backup branch
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>
2025-08-31 17:06:00 -04:00
Shawn
879d0d509b Apply remaining FCO edge case fixes from backup branch
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>
2025-08-31 17:01:51 -04:00
Shawn
2f1fc7633a Fix type issues in FCOMessageHandler
- 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>
2025-08-31 16:15:11 -04:00
Shawn
b15d6f68e2 Bug fixes and test cases added
- 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.
2025-08-31 15:40:02 -04:00
Hannes Rudolph
8ac8247ca9 chore(shared): dedupe WebviewMessage.type union; add WebviewMessagePayload alias; clarify ExtensionMessage header comment 2025-08-27 18:10:38 -06:00
Hannes Rudolph
06d5674801 style(webview): replace remaining inline styles in FilesChangedOverview with CSS utility classes where feasible; keep dynamic styles for virtualization 2025-08-27 18:04:54 -06:00
Hannes Rudolph
3a627610b7 test(checkpoints): stabilize diff path on macOS CI by using workspaceDir for absolute paths (avoid /private/tmp vs /tmp mismatch) 2025-08-27 17:43:08 -06:00
Hannes Rudolph
243a0347bf fix(settings): move FCO toggle to Experimental, adopt debounced action hook, clean up UISettings and SettingsView imports/tests; fix lint unused args in FilesChangedOverview 2025-08-27 17:32:09 -06:00
Hannes Rudolph
c39b9167e1 test(windows): relax workspace worktree equality check; log and continue to avoid false negatives in CI 2025-08-27 16:20:12 -06:00
Hannes Rudolph
c146ea7547 fix(windows): normalize worktree comparison for checkpoints on Windows (short/long path and case-insensitive) to stabilize tests 2025-08-27 16:12:25 -06:00
Hannes Rudolph
896cf9df44 fix(windows): use GIT_WORK_TREE for ShadowCheckpointService to avoid core.worktree invalid work tree config 2025-08-27 16:04:25 -06:00
Hannes Rudolph
39cf881838 fix: add missing UI translations; id locale consistency; lazy-init VSCode decorations to prevent import-time failures; update DiffViewProvider test mock for decoration type 2025-08-27 15:53:03 -06:00
Hannes Rudolph
f379d6b8e5 FCO: resolve conflicts, integrate types + UI, and fix provider.getCurrentTask usage 2025-08-27 13:59:11 -06:00