Commit graph

1323 commits

Author SHA1 Message Date
kiwina
64901c867c
fix: Address multiple memory leaks in CodeBlock component (#4244)
* fix: address multiple memory leaks in CodeBlock component (CodeBlock_247, CodeBlock_459, CodeBlock_694)

* fix: Address review feedback for CodeBlock memory leak fixes

- Consolidate isMountedRef management into syntax highlighting useEffect
- Unify timeout cleanup patterns for consistent maintainability
- Maintain all existing memory leak protections
- Improve code organization and readability

Addresses review comments from daniel-lxs in PR #4244

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-23 18:45:59 -04:00
xyOz
976dcfdcef
memory cleanup (#4190)
* memory cleaanup

* forgot to run linter
2025-06-23 18:45:15 -04:00
Daniel
041c28d8e5
fix: improve LM Studio model detection to show all downloaded models (#5047) 2025-06-23 14:46:56 -04:00
Chris Estreich
0a8c55cbd2
Fix TemperatureControl test flake (#5045) 2025-06-23 08:48:26 -07:00
Hannes Rudolph
ff9b6b3ef6
feat: add Claude Code provider for local CLI integration (#4864)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-22 23:17:55 -04:00
Daniel
5b9907b925
fix: resolve MCP tool eye icon state and hide in chat context (#4993) (#4994) 2025-06-21 15:22:20 -04:00
Chris Estreich
00ad4256d1
Fix flakey ModelPicker test (#4972) 2025-06-21 00:34:08 -07:00
SannidhyaSah
7392f14e44
feat: add profile-specific context condensing thresholds (#4456)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-20 23:02:04 -04:00
Brad Davis
37ed013157
fix context length for lmstudio and ollama (#2462) (#4314)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-20 22:53:04 -04:00
Ksandr
d99ae582d0
feature: add toggle for disable mcp server tool from prompt (#3551)
* add toggle for disable mcp server tool from prompt

* languages

* fix error message

* Update src/core/prompts/instructions/create-mcp-server.ts

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* fix build

* typo

* refactor: make the switch style consistent

* respect review

* refactor: improve layout and styling in McpToolRow component

* fix: update new mcp tests

* tailwind css for disabledTool swipper

* id locale (from main)

* fix: improve error message for updating tool settings

* fix: specify type for serverConfigData as Record<string, any>

* fix: enhance UI layout and improve accessibility for tool controls

* fix: migrate jest.Mock to vitest Mock type

* Update .changeset/slimy-years-smell.md

* fix: replace enabled switch with button

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-20 19:14:59 -04:00
xyOz
93b8f6d87f
Update MarkdownBlock.tsx (#4841)
* Update MarkdownBlock.tsx

* fix: correct URL handling in MarkdownBlock and add tests for trailing punctuation

* Fix URL punctuation rendering

* fix: improve URL handling in MarkdownBlock and update tests for trailing punctuation

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-20 17:46:38 -04:00
Daniel
9da598c9db
fix: update MarketplaceViewStateManager test to match default isFetching state (#4954)
The test was expecting isFetching to be false in the default state, but the implementation correctly initializes it as true to show a loading state on initial load. Updated the test expectation to match the actual behavior.
2025-06-20 13:36:26 -07:00
Hannes Rudolph
85d73af334
feat: add LaTeX math equation rendering in chat window (#4258) (#4786)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-20 15:45:18 -04:00
roomote
d598fc3795
Fixes #4794: Fix marketplace blanking after populating (#4796)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-20 15:42:36 -04:00
Matt Rubens
8370591ec0
Display the organization image in the account view (#4953) 2025-06-20 15:14:18 -04:00
Daniel
9a5f6ce7ea
fix: resolve marketplace timeout issues and display installed MCPs (#4817) (#4941) 2025-06-20 13:20:02 -04:00
Matt Rubens
d1eecb9084
Fix logo centering (#4945) 2025-06-20 12:56:35 -04:00
Matt Rubens
b6bbb1e95b
Add choice to share with organization or publicly (#4899) 2025-06-19 22:29:42 -04:00
Bruno Bergher
886a8a7f1f
Onboarding tweaks to emphasize modes (#4791)
Co-authored-by: Bruno Bergher <me@brunobergher.comexport>
2025-06-19 21:47:52 -04:00
Chris Estreich
44f3a8418b
Convert all webview-ui tests: jest -> vitest (#4771) 2025-06-17 15:29:17 -07:00
Chris Hasson
e484bfff32
Reapply "Always focus the panel when clicked to ensure menu buttons are visible" (#4598)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-17 16:51:56 -04:00
Dicha Zelianivan Arkana
b8505fe175
fix: ambiguous model id error (#4306) 2025-06-17 11:32:08 -07:00
Matt Rubens
7b5a1d987d
Turn on marketplace (#4788) 2025-06-17 14:00:27 -04:00
Matt Rubens
9d0c636b21
Add telemetry for marketplace tab views and install clicks (#4781) 2025-06-17 11:44:25 -04:00
Matt Rubens
322a15ee5d
Fetch organization info in the extension (#4751) 2025-06-16 14:58:49 -04:00
SmirnovDev
bfe2274813
Add max tokens checkbox option for OpenAI compatible provider (#4467)
Co-authored-by: AlexandruSmirnov <test@example.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-14 23:28:09 -04:00
Chris Hasson
54edab571a
Fix the save/discard/revert flow for Prompt Settings (#4623)
Add support for the save/discard flow for support prompt setting page

Normally when you edit things on the settings pages, the save button lights up,
allowing you to discard your changes. Currently the prompts page doesn't support this flow-
the prompts are immediately saved when they change.

With this change, we use the normal cachedState system in the SettingView, allowing users to dicard changes to their prompts like any other setting.
This removed the need for the resetSupportPrompt event since we send the entire state of the support prompts (same as before).

Test plan:
* Manually verified prompts can be saved/discarded for different types of support prompts.
2025-06-14 10:36:14 -04:00
Dicha Zelianivan Arkana
e618fa958c
refactor: more consistent history UI (#4684) 2025-06-13 23:53:58 -04:00
Matt Rubens
1a4c6892a3
Make listing tools respect auto-approve settings for outside of the workspace (#4682) 2025-06-13 23:12:31 -04:00
Daniel
91f632ed00
fix: improve prompt history navigation to not interfere with text editing (#4677) 2025-06-13 22:10:50 -04:00
John Richmond
7dd56d6551
Move marketplace types to @roo-code/types (#4671)
And do some cleanup & consolidation.
2025-06-13 17:02:16 -07:00
Matt Rubens
7d0b22f9e6
Add logic to prevent auto-approving edits of configuration files (#4667)
* Add logic to prevent auto-approving edits of configuration files

* Fix tests

* Update patterns
2025-06-13 19:58:55 -04:00
Matt Rubens
10b2fb32ed
Adjust searching outside of the workspace to respect the auto-approve… (#4670)
Adjust searching outside of the workspace to respect the auto-approve checkbox
2025-06-13 18:49:39 -04:00
Sam Hoang Van
8fb368dd6b
feat(ui): add max height constraint to MCP execution response (#4644) 2025-06-13 11:29:41 -04:00
Daniel
a1b8b12928
Prevent MCP 'installed' label from being squeezed #4630 (#4649) 2025-06-13 11:28:33 -04:00
Daniel
28ad8d719e
Reapply reasoning for bedrock with fix (#4645)
* Add reasoning budget support to Bedrock models and update related components

- Introduced `supportsReasoningBudget` property in Bedrock models.
- Enhanced `AwsBedrockHandler` to handle reasoning budget in payloads.
- Updated `ThinkingBudget` component to dynamically set max tokens based on reasoning support.
- Modified `ApiOptions` and `Bedrock` components to conditionally render `ThinkingBudget`.
- Added tests for extended thinking functionality in `bedrock-reasoning.test.ts`.

* Add BedrockThinkingConfig interface and update payload structure

* fix: address PR review feedback (#4481)

- Simplify ThinkingBudget ternary logic since component only renders when reasoning budget supported
- Break down complex thinking enabled condition with clear documentation
- Replace 'as any' usage with proper TypeScript interfaces for AWS SDK events
- Add comprehensive documentation for multiple stream structures explaining AWS SDK compatibility

* feat: show ThinkingBudget component unconditionally

Remove selectedProviderModels.length check to display ThinkingBudget
for all providers, not just those with available models

---------

Co-authored-by: hannesrudolph <hrudolph@gmail.com>
2025-06-13 11:07:27 -04:00
Sam Hoang Van
9eb9fabee0
feat(ui): sync BatchDiffApproval styling with BatchFilePermission (#4640) 2025-06-13 09:01:47 -04:00
Raffael
dc00167289
Update ContextManagementSettings.tsx (#4634)
Allow 5% threshold for context condensing (thats already 50k with gemini 1M context, enough for many tasks)
2025-06-13 06:42:55 -04:00
Matt Rubens
47e84b4572
Revert "feat: Add reasoning budget support to Bedrock models for extended thinking (#4201)" (#4626) 2025-06-13 01:43:06 -04:00
Hannes Rudolph
bde7a7bf2a
feat: Add indexing status badge to chat view (#4429) (#4532)
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-12 21:56:57 -04:00
Daniel
5f29348519
Improve performance of MCP execution block (#4615) 2025-06-12 21:17:55 -04:00
Matt Rubens
ffc8dc7b6b
v3.20 (#4609)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-06-12 17:54:53 -04:00
Matt Rubens
184c4803c6
Move concurrent reads into context settings and default to 5 (#4597)
* Move concurrent reads into context settings and default to 5

* Spacing tweaks

* Change max back to 100
2025-06-12 16:21:39 -04:00
Matt Rubens
2eca105e35
Add a footer to the marketplace to report issues (#4604) 2025-06-12 16:18:07 -04:00
Chris Estreich
fe52c19fde
Evals fixes (#4599) 2025-06-12 13:01:59 -07:00
axb
dfcf8fe760
add mermaid buttons (#4547)
* add mermaid buttons

* feat: Add Modal, TabButton, and ZoomControls components

* feat: Add error handling messages for image operations and file opening

* mermaid: Add drag functionality and support contious zooming

* add active color for tabbutton

* refactor zoom controls

* refactor: Remove unused svgToPng prop and simplify handleCopy function

* Move zoom to constants and increase max zoom

* feat: add save image functionality and refactor image handling

* feat: add translations

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-12 13:06:27 -04:00
Matt Rubens
85fd86e675
Revert "Always focus the panel when clicked to ensure menu buttons are visible" (#4592)
Revert "Always focus the panel when clicked to ensure menu buttons are visibl…"

This reverts commit 1b1e5a20f1.
2025-06-12 12:51:34 -04:00
Hannes Rudolph
fb3a728a30
feat: Add reasoning budget support to Bedrock models for extended thinking (#4201) (#4481)
* Add reasoning budget support to Bedrock models and update related components

- Introduced `supportsReasoningBudget` property in Bedrock models.
- Enhanced `AwsBedrockHandler` to handle reasoning budget in payloads.
- Updated `ThinkingBudget` component to dynamically set max tokens based on reasoning support.
- Modified `ApiOptions` and `Bedrock` components to conditionally render `ThinkingBudget`.
- Added tests for extended thinking functionality in `bedrock-reasoning.test.ts`.

* Add BedrockThinkingConfig interface and update payload structure

* fix: address PR review feedback (#4481)

- Simplify ThinkingBudget ternary logic since component only renders when reasoning budget supported
- Break down complex thinking enabled condition with clear documentation
- Replace 'as any' usage with proper TypeScript interfaces for AWS SDK events
- Add comprehensive documentation for multiple stream structures explaining AWS SDK compatibility
2025-06-12 12:39:21 -04:00
Sam Hoang Van
7bed94454a
feat: Enhance apply_diff with XML for multi-file/multi-diff operations & batch UI (#3342)
* feat: add BatchDiffApproval component for multi-file diff application

- Introduced a new component `BatchDiffApproval` to handle the approval of batch changes across multiple files.
- Integrated the `BatchDiffApproval` component into `ChatRow` to display batch diff requests.
- Updated experimental settings to include a toggle for multi-file apply diff functionality.
- Enhanced localization files to support new strings related to batch changes in multiple languages.
- Updated tests to cover the new multi-file apply diff feature.

* revert this

* fix: update applyDiff parameter type to accept string or DiffItem

* refactor: keep original file name for apply diff tool

* revert this

* Update src/core/webview/__tests__/ClineProvider.test.ts

* revert this

* fix: keep the original path if the experiment is disabled

* test: add dynamic strategy selection tests for MultiSearchReplaceDiffStrategy and MultiFileSearchReplaceDiffStrategy

* fix: mock applyDiffTool module and ensure legacy tool resolves successfully in tests

* remove this

* ellipsis suggestion

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* refactor: mirror concurrent file reads

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-06-12 12:36:34 -04:00
Hannes Rudolph
69472099ea
feat: Navigate prompt history in prompt field via arrow up/down (#4139) (#4450)
* feat: add prompt history navigation with arrow keys (#4139)

- Navigate through prompt history using arrow up/down keys
- Only triggers when cursor is at first line (up) or last line (down)
- Preserves current input when starting navigation
- Resets navigation state when typing or sending messages
- Follows VSCode's standard UX patterns for history navigation

* fix: correct prompt history order and add workspace filtering (#4139)

- Remove reverse() to maintain chronological order in history array
- Add workspace filtering to only show prompts from current workspace
- Ensure arrow up navigates to older prompts (as expected)
- Filter history items by workspace field matching current cwd

* test: Fix Windows unit test failures for prompt history navigation

- Add missing taskHistory and cwd properties to all useExtensionState mocks
- Add comprehensive test coverage for prompt history navigation feature
- Ensure all 25 tests pass including new prompt history functionality

Fixes failing Windows CI test in PR #4450

* refactor: Improve cursor positioning with useLayoutEffect

- Replace setTimeout(..., 0) with useLayoutEffect for more reliable cursor positioning
- Implement state-based cursor positioning pattern suggested by @mochiya98
- Add CursorPositionState interface for better type safety
- Maintain all existing functionality while improving timing reliability

This addresses the technical suggestion in PR #4450 comment about using
useLayoutEffect instead of setTimeout for DOM manipulation timing.

* feat: optimize prompt history with performance improvements and memory management

- Add useMemo for prompt history filtering to prevent unnecessary re-computations
- Implement MAX_PROMPT_HISTORY_SIZE = 100 limit for memory management
- Extract logic into usePromptHistory custom hook for better code organization
- Simplify ChatTextArea component by delegating history logic to custom hook

Addresses review feedback on PR #4450 for issue #4139

* refactor: clean up unused code and fix linting issues in prompt history

- Remove unused CursorPositionState interface from ChatTextArea
- Remove unused destructured variables from usePromptHistory hook
- Fix missing dependency in useEffect dependency array
- Rename unused parameter with underscore prefix

Related to #4139

* feat: implement hybrid prompt history with position reset

- In chat: Use conversation messages (user_feedback), newest first
- Out of chat: Use task history, oldest first
- Reset navigation position when switching between history sources
- Switch from taskHistory to clineMessages for active conversations
- Maintain backward compatibility with task history fallback
- Add comprehensive tests for hybrid behavior and position reset

This provides intuitive UX where:
- Users navigate recent conversation messages during tasks (newest first)
- Users access initial task prompts when starting fresh (oldest first)
- Navigation always starts fresh when switching contexts

* fix: correct task history slicing order for prompt navigation

Task history was using .slice(-100) which gets the newest 100 tasks,
but we want to show oldest tasks first when navigating. Changed to
.slice(0, 100) to get the oldest 100 tasks instead.

This ensures that when starting fresh (no conversation), up arrow
shows the oldest task prompts first, which is the intended behavior.

* refactor: remove comment on task history size limitation and clarify order preservation

* refactor: replace local ClineMessage and TaskHistoryItem interfaces with imported types

* fix: prevent prompt history fallback to task list during active conversation

When an active task has only an initial prompt with no follow-up user messages,
the prompt history should return empty instead of falling back to task history.
This fixes the "Starting Fresh" behavior appearing inappropriately.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-06-12 11:43:54 -04:00