Commit graph

5716 commits

Author SHA1 Message Date
roomote[bot]
b5eec19667 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-08 17:32:04 -06:00
Daniel
feb0cc1f86 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-08 17:31:50 -06:00
Matt Rubens
3725917199 Putting the Roo in Roo-leases (#7546) 2025-09-08 17:31:50 -06:00
Chris Estreich
47855ed69f Mode and provider profile selector (#7545) 2025-09-08 17:31:40 -06:00
github-actions[bot]
0126507e9b 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-08 17:31:23 -06:00
Matt Rubens
3d14f87cbb chore: add changeset for v3.26.3 (#7541) 2025-09-08 17:31:23 -06:00
Daniel
a96fe08b18 refactor: flatten image generation settings structure (#7536) 2025-09-08 17:31:23 -06:00
roomote[bot]
5236675d9a 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-08 17:31:23 -06:00
roomote[bot]
5ddd4635ec 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-08 17:31:22 -06:00
Chris Estreich
3f51a57045 Implement deferred task subscriptions (#7517) 2025-09-08 17:31:03 -06:00
Chris Estreich
2b7e259983 Refactor the extension bridge (#7515) 2025-09-08 17:31:03 -06:00
Chris Estreich
af00c627b7 Move @roo-code/cloud to the Roo-Code repo (#7503) 2025-09-08 17:30:44 -06:00
github-actions[bot]
8d94af5b7a 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-08 17:30:12 -06:00
Daniel
94b4a5ccc2 fix: prevent dirty state on initial mount in ImageGenerationSettings (#7495) 2025-09-08 17:29:56 -06:00
Matt Rubens
67af3ba4e1 Add padding to image model picker (#7494) 2025-09-08 17:29:40 -06:00
Daniel
1dabac2af7 feat: update OpenRouter API to support input/output modalities and filter image generation models (#7492) 2025-09-08 17:29:40 -06:00
Matt Rubens
09d8ff770a Support free imagegen (#7493) 2025-09-08 17:29:16 -06:00
Matt Rubens
e8d5e9102a Release v3.26.2 (#7490) 2025-09-08 17:29:16 -06:00
Daniel
ea51c04483 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-08 17:29:16 -06:00
Matt Rubens
3eb9d12534 Bump cloud to 0.25.0 (#7475) 2025-09-08 17:28:40 -06:00
Daniel
6842fff258 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-08 17:27:24 -06:00
Matt Rubens
602a4fea7f Add type for RooCodeEventName.TaskSpawned (#7465) 2025-09-08 17:16:06 -06:00
Shawn
11dd48a685 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-08 17:12:44 -06:00
Shawn
21661d7484 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-08 17:12:44 -06:00
Shawn
32dafd3dd9 removed initial checkpoint creation
Pathing shows up on a separate line from the file name
2025-09-08 17:06:51 -06:00
Shawn
1b199674fa 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-08 17:06:51 -06:00
Shawn
8715471bb5 Removed UI from settings, Files Changed now stacked properly under Todo 2025-09-08 17:05:21 -06:00
Shawn
de2a236bac 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-08 17:03:59 -06:00
Shawn
bb2ae8d7dd 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-08 17:03:58 -06:00
Shawn
3048471ae1 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-08 17:02:08 -06:00
Shawn
b4086b1a5a Chat-only edits are not tracked 2025-09-08 17:02:08 -06:00
Shawn
90d9306534 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-09-08 17:02:08 -06:00
Shawn
390c500d40 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-09-08 17:02:08 -06:00
Shawn
709a7029da 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-09-08 17:02:08 -06:00
Shawn
877404aab9 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-09-08 17:02:08 -06:00
Hannes Rudolph
46683d3344 chore(shared): dedupe WebviewMessage.type union; add WebviewMessagePayload alias; clarify ExtensionMessage header comment 2025-09-08 17:02:08 -06:00
Hannes Rudolph
39d2ca2ba3 style(webview): replace remaining inline styles in FilesChangedOverview with CSS utility classes where feasible; keep dynamic styles for virtualization 2025-09-08 17:01:09 -06:00
Hannes Rudolph
d6bf409439 test(checkpoints): stabilize diff path on macOS CI by using workspaceDir for absolute paths (avoid /private/tmp vs /tmp mismatch) 2025-09-08 17:01:09 -06:00
Hannes Rudolph
5f5cdf1b46 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-09-08 17:01:09 -06:00
Hannes Rudolph
73cd31b492 test(windows): relax workspace worktree equality check; log and continue to avoid false negatives in CI 2025-09-08 16:57:48 -06:00
Hannes Rudolph
728bc7936f fix(windows): normalize worktree comparison for checkpoints on Windows (short/long path and case-insensitive) to stabilize tests 2025-09-08 16:57:48 -06:00
Hannes Rudolph
c6418ac241 fix(windows): use GIT_WORK_TREE for ShadowCheckpointService to avoid core.worktree invalid work tree config 2025-09-08 16:57:48 -06:00
Hannes Rudolph
c051c2c4bb 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-09-08 16:57:48 -06:00
Hannes Rudolph
8c2d125f94 FCO: resolve conflicts, integrate types + UI, and fix provider.getCurrentTask usage 2025-09-08 16:57:48 -06:00
Daniel
0ce4e891fd
Revert PR #7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (#7594) 2025-09-08 10:30:02 -04:00
renovate[bot]
25717817a6
chore(deps): update dependency eslint-plugin-turbo to v2.5.6 (#7764)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-07 20:19:10 -04:00
renovate[bot]
4e5e3ed200
chore(deps): update dependency nock to v14.0.10 (#6465)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-07 14:47:38 -04:00
renovate[bot]
8f2d40d177
chore(deps): update dependency @changesets/cli to v2.29.6 (#7376)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-07 14:45:49 -04:00
renovate[bot]
408ea44ea2
chore(deps): update dependency esbuild to v0.25.9 (#5455)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-07 14:45:36 -04:00
renovate[bot]
888bd2d570
chore(deps): update dependency eslint-config-prettier to v10.1.8 (#6464)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-07 14:45:21 -04:00