Commit graph

5013 commits

Author SHA1 Message Date
hannesrudolph
19bc08cda0 fix: resolve Qdrant connection errors during indexing (#5356)
- Add request timeout configuration (30s default) to QdrantClient
- Implement retry logic with exponential backoff for socket errors
- Add payload size-based chunking to prevent oversized requests (10MB limit)
- Implement adaptive batch sizing in FileWatcher based on payload size
- Add configuration options for Qdrant timeout settings
- Update tests to handle new timeout parameter

This fixes the 'SocketError: other side closed' issue that occurs when
uploading large payloads (~150MB) to Qdrant during indexing.
2025-07-04 15:43:40 -06:00
hannesrudolph
a92993504f fix: address PR review comments
- Add missing response for 'start' command in worker
- Move crypto import to top level for better performance
- Remove unused .gitignore instance in worker
- Move ignore instance creation outside loop in scanner for better performance
2025-07-04 09:00:17 -06:00
hannesrudolph
b7140e814b fix(pr): revert out-of-scope console.log changes 2025-07-03 17:57:45 -06:00
hannesrudolph
275e2590aa revert: add back console.log to executeCommandTool 2025-07-03 17:40:46 -06:00
hannesrudolph
a015bc9a45 fix(checkpoints): revert out-of-scope console removals 2025-07-03 17:39:33 -06:00
hannesrudolph
f0aac234f8 fix: revert out-of-scope console.log removal 2025-07-03 17:19:52 -06:00
hannesrudolph
3267808dbe chore: revert out-of-scope logging changes 2025-07-03 17:10:04 -06:00
hannesrudolph
7428f46d9c fix: add worker-utils to knip ignore list to fix CI 2025-07-03 16:58:10 -06:00
hannesrudolph
f8658b2ba8 fix: resolve indexing worker issues for PR #5356
- Fix extension hanging when no workspace is open by adding validation to WorkspaceTracker
- Fix Qdrant point ID format error by using UUID v5 instead of file paths
- Remove console.log statements that were causing extension to get stuck loading
- Add tests for UUID generation in indexing worker
- Add tests for no workspace scenario in WorkspaceTracker
- Add empty path validation across multiple files to prevent errors
2025-07-03 16:50:13 -06:00
hannesrudolph
55d3e4f168 fix: create worker-compatible parser and supported-extensions modules
- Created worker-utils/parser.ts that imports from worker-utils/supported-extensions
- Created worker-utils/supported-extensions.ts with extensions defined directly
- Updated indexing-worker to import codeParser from worker-utils version
- This eliminates all vscode dependencies from the worker bundle
2025-07-03 16:50:13 -06:00
hannesrudolph
cb4bb8476f fix: remove i18n dependencies from embedders and vector store for worker compatibility
- Remove i18n imports from all embedder implementations (openai, openai-compatible, ollama)
- Remove i18n import from qdrant-client vector store
- Replace all translation calls with plain English strings
- This allows these modules to be used in worker threads where vscode APIs are not available
2025-07-03 16:50:13 -06:00
hannesrudolph
ce0d891777 fix: add vscode to external dependencies for worker build
- Prevents worker build from trying to bundle vscode module
- Worker uses custom implementations that don't depend on vscode APIs
2025-07-03 16:50:13 -06:00
hannesrudolph
c360f26476 fix: use extension context path for worker location 2025-07-03 16:50:13 -06:00
hannesrudolph
5ac7befb67 fix: resolve worker path and build config issues 2025-07-03 16:50:13 -06:00
hannesrudolph
41d2b0f7ce fix: add orchestrator and search-service to knip ignore list
These files are now only used within the worker thread and should not be
flagged as unused by knip
2025-07-03 16:50:13 -06:00
hannesrudolph
a928e2b9d1 fix: complete CI test fixes and async disposal
- Make CodeIndexManager.disposeAll() async and await it in extension deactivation
- Update unit tests to reflect new worker-based architecture
- Add indexing-worker.ts to knip ignore list to fix unused file warning
- Update test setup/teardown to use async disposal
2025-07-03 16:50:13 -06:00
hannesrudolph
65b3528f72 fix: resolve CI test failures and code review issues
- Add missing response for 'clear' command in worker message handler
- Remove duplicate response with hardcoded ID in clearIndex method
- Make CodeIndexManager.disposeAll() async and await it in extension deactivation
- Update unit tests to reflect new worker-based architecture
- Add indexing-worker.ts to knip ignore list to fix unused file warning
2025-07-03 16:49:37 -06:00
hannesrudolph
5dc257d5bd fix: make codebase indexing asynchronous to prevent UI freezing (#4188) 2025-07-03 16:49:37 -06:00
Daniel
e508eaf3df
Fix code index secret persistence and improve settings UX (#5158)
* Fix code index secret persistence with async VSCode storage

- Add async secret methods to CodeIndexConfigManager
- Implement direct VSCode secret storage access bypassing ContextProxy cache
- Update loadConfiguration to use async secret loading
- Modify webview message handler to use new async secret storage
- Add public secret methods to CodeIndexManager
- Enhance debugging throughout secret flow

This fixes the issue where API keys were saved but not loaded immediately
into services due to ContextProxy cache synchronization issues.

* Fix code index secret persistence and test failures

- Add async secret handling to CodeIndexConfigManager with new methods:
  - getSecretAsync(), storeSecretAsync() for individual secrets
  - loadSecretsAsync(), storeSecretsAsync() for batch operations
- Update doesConfigChangeRequireRestart() to check OpenAI Compatible modelDimension changes
- Fix all failing tests by using setupSecretMocks() helper consistently
- Update manager.spec.ts to properly mock _recreateServices to avoid real service creation

This ensures API keys and other secrets are properly loaded from VSCode's async secret storage
and that configuration changes requiring service restart are correctly detected.

* feat: improve code index settings secret handling in UI

- Show placeholder dots (••••••••••••••••) in password fields when secrets are already set
- Only send modified secret fields to prevent overwriting existing secrets with empty values
- Track which fields have been modified by the user
- Add requestCodeIndexSecretStatus message handler to check if secrets exist
- Fix console.log to handle empty string keys without errors
- Ensure changing one setting doesn't clear other unmodified secrets

* refactor: disconnect code index from unified settings system

- Rename handleExternalSettingsChange to handleSettingsChange for clarity
- Remove handleSettingsChange call from ClineProvider (not related to code index)
- Remove codebaseIndexConfig from general settings save in SettingsView
- Delete unused codebaseIndexConfig message handler
- Remove codebaseIndexConfig from WebviewMessage type definition
- Code index settings are now fully independent with their own dedicated UI

* feat: separate code index enable/disable from indexing settings

- Move 'Enable codebase indexing' toggle to global settings in Experimental section
- Keep indexing-specific settings (API keys, URLs, models) in dedicated Code Index Settings component
- Add codebaseIndexEnabled handler to webview message handler
- Update translations with new settings title and disabled message
- Ensure code index service properly responds to enable/disable changes
- Maintain backward compatibility with existing codebaseIndexConfig structure

* refactor: remove ContextProxy.getVSCodeContext() and pass ExtensionContext directly

- Updated CodeIndexConfigManager to accept vscode.ExtensionContext in constructor
- Modified CodeIndexManager to pass context directly to CodeIndexConfigManager
- Updated webviewMessageHandler to use provider.context.secrets directly
- Removed getVSCodeContext() method from ContextProxy
- Updated all related tests to reflect these changes
- Fixed CodeIndexSettings webview tests after UI changes

* refactor: streamline secret handling by removing async methods and utilizing ContextProxy directly

* feat: translations and popover component

* refactor: simplify test mocks and improve checkbox handling in CodeIndexSettings tests

* refactor: remove debug logging from CodeIndexConfigManager, CodeIndexManager, CodeIndexServiceFactory, and QdrantVectorStore

* fix: merge missing translation keys from main after rebase

- Add advancedConfigLabel, searchMinScoreLabel, searchMinScoreDescription, searchMinScoreResetTooltip keys
- Update startIndexingButton and clearIndexDataButton labels to match main
- Preserve all CodeIndexPopover translations added in this PR

* Revert "fix: merge missing translation keys from main after rebase"

This reverts commit beb1de4924ac1475731fcd06d994ddb96eb1e5fd.

* fix: add missing translation keys from main branch after rebase

- Added codeIndex.advancedConfigLabel
- Added codeIndex.searchMinScoreLabel
- Added codeIndex.searchMinScoreDescription
- Added codeIndex.searchMinScoreResetTooltip

These keys exist on main but were missing from non-English locales after rebase.

* fix: remove clickIndicatorMessage, fix toggle message type, and clean up translation key inconsistencies

* refactor: streamline settings management in CodeIndexPopover and improve secret handling

* refactor: remove debug logging from configuration checks in CodeIndexConfigManager and webviewMessageHandler

* fix: translations

* refactor: remove CodeIndexSettings component and associated tests
2025-07-03 18:33:20 -04:00
Daniel
b7d5a964c7
fix: enhance PR reviewer mode to prevent duplicate comments (#5382)
- Reorganized workflow to fetch existing comments BEFORE code review (Step 4)
- Added dedicated Step 6 to verify existing comments against current code
- Updated best practices to emphasize checking resolved comments first
- Enhanced common mistakes to highlight duplicate comment prevention
- Added tracking of resolved vs pending comments in the review process
2025-07-03 14:50:38 -04:00
Hannes Rudolph
2ecf2ce5ad
feat: improve docs-extractor mode rules for better documentation extraction (#5381)
- Enhanced extraction workflow with clearer step-by-step instructions
- Improved documentation patterns for better structure recognition
- Refined analysis techniques for comprehensive coverage
- Updated tool usage guide with practical examples
- Added complete extraction examples for common scenarios
- Improved communication guidelines for clearer output
- Enhanced user-friendly examples with better formatting
2025-07-03 14:50:09 -04:00
Murilo Pires
a3106bf9a5
feat: add Issue Fixer Orchestrator mode (#5379) 2025-07-03 14:49:25 -04:00
Hannes Rudolph
329690cf54
feat: Delete .roo/rules-{mode} folder when custom mode is deleted (#5210) (#5317)
* feat: Add folder deletion when custom mode is deleted (#5210)

* fix: address PR feedback - fix Korean translation typo and add missing German translation

* fix: use os.homedir() instead of vscode.env.userHome

* fix: use dynamic home directory in webview tests for cross-platform compatibility

* fix: normalize path separators in tests for Windows compatibility

* feat: implement DeleteModeDialog component for mode deletion confirmation

* fix: use ref to store current modeToDelete value for consistent state handling

* feat: add error handling for rules folder deletion and localize error messages

* Update src/i18n/locales/ja/common.json

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

* Update src/i18n/locales/zh-CN/common.json

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

* fix: remove redundant rulesFolderExists from deleteCustomModeCheck response

* fix: update webviewMessageHandler tests to match fs import style

---------

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-07-03 13:00:07 -04:00
Hannes Rudolph
7e8c1d71a4
feat: add issue-fixer-orchestrator mode (#5366)
* Add issue-fixer-orchestrator mode

* fix: address PR review comments

- Restore multi-line YAML formatting for mode-writer roleDefinition
- Fix duplicate numbering in workflow XML (4. -> 5., 5. -> 6.)

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-03 10:58:58 -04:00
SeeD
abea1920ac
Fix: Chat UI consistency and layout shifts (#5237) 2025-07-03 00:02:00 -04:00
SannidhyaSah
e4b051bb71
fix: prevent completion sound from replaying when reopening completed tasks (#4885) (#5249) 2025-07-02 23:59:51 -04:00
SannidhyaSah
37619d7850
fix: support full endpoint URLs in OpenAI Compatible provider (#5212) (#5214)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-02 23:58:35 -04:00
SannidhyaSah
87aa688f33
feat: add Gemini embedding provider for codebase indexing (#5228)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-02 23:51:42 -04:00
WuWen
19cd001f8d
fix access_mcp_resource fails to handle images correctly (#5254) 2025-07-02 23:50:15 -04:00
Matt Rubens
1cb69d2dc6
Remove reference to file that no longer exists (#5360) 2025-07-02 22:25:58 -04:00
Daniel
c72f4a4b5e
docs: add compact testing guidelines to project rules (#5353) 2025-07-02 18:48:50 -04:00
github-actions[bot]
6355cb010c
Changeset version bump (#5358)
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-07-02 17:20:21 -04:00
github-actions[bot]
7704463a7b
Update contributors list (#5213)
Co-authored-by: mrubens <2600+mrubens@users.noreply.github.com>
2025-07-02 17:16:31 -04:00
Matt Rubens
cb44e6dda4
v3.22.6 (#5357) 2025-07-02 17:15:40 -04:00
dleffel
a57b0b6dc4
feat: integrate security one-pager into website (#5234)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-02 16:39:02 -04:00
Matt Rubens
1be6fce1a6
Check for protected files in single apply diff (#5348) 2025-07-02 13:52:13 -04:00
Matt Rubens
3993406ebd
Add .vscode/ to the list of write-protected files/directories (#5347) 2025-07-02 13:17:20 -04:00
Christiaan Arnoldus
89d28a5e66
Give Mermaid buttons a light background in light mode (#5342) 2025-07-02 10:58:35 -04:00
John Richmond
05040414c2
Cloud: support alternate auth token from environment (#5323) 2025-07-01 22:23:23 -04:00
Hannes Rudolph
70726bcd21
feat: Import export modes (#5074)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-07-01 17:13:44 -04:00
Matt Rubens
b4dc3a486e
Add optional share links to templates (#5318) 2025-07-01 17:11:19 -04:00
Hannes Rudolph
1acbd45dc2
refactor: update issue-fixer mode to use GitHub CLI instead of MCP (#5320) 2025-07-01 17:04:57 -04:00
Matt Rubens
a1ae29cdcd
Suppress mermaid error rendering (#5308) 2025-07-01 15:50:24 -04:00
DEV×PAIN
0ee3680fb4
feat(dx): streamline extension installation and documentation (#4284) 2025-07-01 15:50:05 -04:00
SannidhyaSah
ff1e8ac2ee
fix: remove context size from environment details (#5165) (#5312)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-07-01 15:14:50 -04:00
Will Li
781beeb30f
Auto approve follow up questions (#5296) 2025-07-01 14:43:16 -04:00
Hannes Rudolph
a348a2ae9a
feat: add user-configurable search score threshold slider for semantic search (#5027) (#5041)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-01 14:41:23 -04:00
Murilo Pires
933f28fe32
fix: Exclude cache files from rules compilation (#5283)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-07-01 10:33:32 -04:00
Hannes Rudolph
adb3ee9a11
feat: add translation orchestration to PR Fixer mode (#5280)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-01 10:32:38 -04:00
Hannes Rudolph
6b7cfdc6ac
feat: add translation workflow to issue-fixer mode (#5281) 2025-07-01 10:32:23 -04:00