* Add task-specific settings caching to StateManager
Implement per-task settings storage with automatic loading/clearing:
- Add taskStateCache for isolated task settings
- Load task settings on task creation and reinitialize
- Clear task settings cache when tasks end
- Prioritize task cache over global state in getters
* update error wording for taskSettings read failure
* add missing return statement in promise.all
* fix: persist pending task settings before clearing cache
Changed clearTaskSettings to be async and ensure any pending task state
changes are persisted to storage before clearing the in-memory cache.
This prevents potential data loss when a task ends with unpersisted
settings still in the pending state queue.
- Made clearTaskSettings async and added optional taskId parameter
- Added logic to persist pending task state batch before clearing
- Updated controller to await clearTaskSettings and pass taskId
* fix process.env access in build script
- Add CLINE_ENVIRONMENT=production to esbuild define config
- Remove fallback empty strings for API keys in build config
- Simplify optional chaining to direct property access for process.env
- Ensure consistent environment variable handling across config files
* verify CI secrets
* revert temp test
* Don't construct the redirect URL in the webview.
Add an RPC to the ProtoBus to get the URI to redirect back to the host IDE.
Support for JetBrains will be added in a second PR.
* Remove the uriScheme and extension name from the ExtensionStateContext.
These are being used to construct the IDE redirect URI, but this is not a cross-platform compatible way to do this.
* Update the host bridge to return the whole URL to redirect to the IDE
Return the whole redirect URI instead of just the URI scheme. VSCode needs the whole URI to redirect back to VSCode and open the cline extension.
* Update js doc
* Remove unused propertu uriScheme
All uses of vscode.env.uriScheme have been moved to platform specific code, so add it to linter rules for vscode API.
* add global state var for yolo mode
* setting and updating yolo mode in autoApprover
* use approveAll variable in autoAPprove class
* add logic for automatically handling plan_mode_respond tool calls
* remove follow up question tool in yolo mode
* conditional parameter inclusion for execute_command in yolo mode
* logic for having terminal command continue in background once timer is up for yolo mode
* prompt adjustment for the timeout param
* changing function signature
* full template changes to support context
* merge conflict fix for system_info
* fixing default values
* update where we resolve template to TemplateEngine
* template engine test update
* test changes, adding types
* updating TemplateEngine test scoping
* add missing ide param in test
* clean up variable naming
* Add descriptive aria-labels to mcp server screen
* Improve screen reader accessibility for cline rules page and its tabs
* Fix: Have screen readers read the new rule / new workflow file labels consistently (previously it always announced new rule file regardless of the actual file type)
* Add changeset
* Fix: Add descriptive aria-labels to unlabelled buttons in the history preview screen
* Fix: Add descriptive aria-labels to unlabelled buttons in the history view screen
* Add changeset
* Add environment variable injection to esbuild config
Inject TELEMETRY_SERVICE_API_KEY, ERROR_SERVICE_API_KEY, and CLINE_ENVIRONMENT
at build time for production builds.
* add changeset
* update
* changeset version bump
* Updating CHANGELOG.md format
* Update CHANGELOG for version 3.28.4
Consolidate changelog entries for version 3.28.4 and improve clarity.
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Saoud Rizwan <7799382+saoudrizwan@users.noreply.github.com>
* fix: detectedShell returns non-string on some Windows machines leading to indefinite API request hanging
* Fix bug causing API request to hang on Windows
### Problem
The `--no-stash` flag was originally added to work around issues where teammates hadn't installed Biome after our migration from Prettier. When the formatter failed, lint-staged's default stashing behavior would remove staged changes, causing frustration.
However, this workaround now causes a different problem: lint-staged runs formatters on files containing both staged AND unstaged changes. When Biome formats these files, it inadvertently stages unstaged modifications, effectively merging work-in-progress changes into commits.
### Solution
Remove the `--no-stash` flag to restore lint-staged's default behavior:
- Stash unstaged changes before running formatters
- Run formatters only on staged content
- Restore the stash after formatting
This ensures that only intentionally staged changes are included in commits, preventing accidental inclusion of work-in-progress modifications.
### Context
It's been sufficient time since the Prettier → Biome migration that all team members should have the proper tooling installed. The original workaround is no longer needed and is now causing more problems than it solves.
* changeset version bump
* Updating CHANGELOG.md format
* Updated changelog for release
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Kevin Bond <kevin@Kevins-MacBook-Pro.local>
* feat: generate commit for staged changes if any
- Replace getWorkingState with getGitDiff function that return diff for staged changes only with unstaged change as fallback
- Add structured PROMPT constant with system and message templates
- Wrap generation logic in try-catch for better error handling
- Move input validation and progress handling into main generate function
- Improve error messages with more descriptive context
* changeset added
* clean up
* changeset version bump
* Updating CHANGELOG.md format
* Prepare for release v3.28.2
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Kevin Bond <kevin@Kevins-MacBook-Pro.local>
* changeset version bump
* Updating CHANGELOG.md format
* Prepare changelog for release
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Kevin Bond <kevin@Kevins-MacBook-Pro.local>
* Use the correct IDE name in the API request
The IDE name is influences the model's response, so use the correct name instead of using VSCode on all platforms.
* Include the IDE type in the system info
* Move the ide name into the SystemPromptContext
Remove the legacy system prompt test, otherwise it would be need to be updated for these changes, but it is already deprecrated.
* Register commands and view to use centralized ExtensionRegistryInfo
Replace hardcoded package.json imports and string literals with a centralized
ExtensionRegistryInfo object that provides extension name and command
definitions. This improves maintainability and ensures consistency across
the codebase.
* update view id
* Fix environment variable serialization in vite config
Wrap all process.env values with JSON.stringify to ensure proper
string serialization and prevent undefined values from breaking
the build configuration.
* fix: using baseURL to fetch models and get API key
* change set
* fix: keeping /v1 in URL
This is because `URL` constructor, strips the path when giving two
arguments.
* When using the AuthHandler redirect to the host IDE after logging in.
Add an RPC to the host bridge to the URI scheme for the host IDE.
Add a redirect to the login succeeded page.
* Typo
* Add Active Workspaces info to system information
Update system_info.ts to include active workspaces in the system prompt, providing AI assistants with context about all currently open workspace directories. This enhancement helps the AI understand the full scope of the user's development environment beyond just the current working directory.
* add changeset
* Add Active Workspaces info to system information
Update system_info.ts to include active workspaces in the system prompt, providing AI assistants with context about all currently open workspace directories. This enhancement helps the AI understand the full scope of the user's development environment beyond just the current working directory.
* add changeset
* Update test for single workspace
* IS_TEST
* Adding MultiRoot support scaffolding to tasks and adding support for multi root checkpoint manager
* Adding MultiRoot support scaffolding to tasks and adding support for multi root checkpoint manager
* Adding MultiRoot support scaffolding to tasks and adding support for multi root checkpoint manager
* Adding MultiRoot support scaffolding to tasks and adding support for multi root checkpoint manager
* Adding MultiRoot support scaffolding to tasks and adding support for multi root checkpoint manager
* Adding MultiRoot support scaffolding to tasks and adding support for multi root checkpoint manager
* Refactor feature flags to use centralized service instead of state manager
- Replace direct state manager access with featureFlagsService calls
- Remove feature flag polling from webview initialization
- Move feature flag polling to main initialization flow
- Centralize focus chain feature flag logic in FeatureFlagsService
* Update system prompt snapshots
---------
Co-authored-by: Arafatkatze <arafat.da.khan@gmail.com>
* changeset version bump
* Updating CHANGELOG.md format
* Changelog and Anncouncements update for release
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Kevin Bond <kevin@Kevins-MacBook-Pro.local>
* dev: PostHog config to use separate API keys for telemetry and error tracking
- Update PostHogErrorProvider to use dedicated errorTrackingApiKey
- Add comprehensive documentation and type definitions
- Support environment variables with fallback to public keys
- Improve code organization with clearer naming conventions
* changeset added
* Update GitHub Workflow
* debug
* revert debug and set process env for browser
* undefined environment variables fallback to public keys
* update workflow
* update provider factories with config validation and no-op logging
- Add PostHog config validation to determine provider type
- Replace "none" type with "no-op" for consistency
- Enhance NoOpProvider implementations with actual logging
- Update factory logic to use validated config checks
- Improve error handling and fallback behavior
* Update .github/workflows/publish.yml
Co-authored-by: Dennise Bartlett <bartlett.dc.1@gmail.com>
* Update workflow
* clean up
* update env vars in vite config
* Fix error handling recursion and update PostHog configuration
- Prevent infinite recursion in ClineError.transform() by checking for existing ClineError instances
- Use errorTrackingApiKey instead of apiKey for PostHog error provider initialization
- Replace Logger calls with console methods in NoOpErrorProvider to avoid circular dependencies
- Update dev environment detection logic to exclude CI check for more reliable configuration
* Remove console.error from unsupported error provider fallback
Remove unnecessary error logging when falling back to NoOpErrorProvider
for unsupported error provider types in ErrorProviderFactory.
* Update PostHog config to handle local and test environments
- Change dev environment detection to include local environment
- Add test environment detection for E2E and unit tests
- Disable PostHog validation in test environments to enable mocking
* add fallback back
* remove hardcoded keys
* Posthog secrets to Nightly workflow
---------
Co-authored-by: Dennise Bartlett <bartlett.dc.1@gmail.com>
* dev: extension isolation in VS Code launch configs and E2E tests
- Replace specific extension disabling with --disable-extensions flag to avoid conflicts or bugs caused by other extensions
- Add channel configuration support for stable/insiders testing
- Enhance E2E test interface with channel selection capability
- Ensure better isolation during development and testing
* Update e2e test fixtures: configure workspace settings and allow .vscode tracking
- Add workbench.secondarySideBar.defaultVisibility setting to multiroots workspace
- Remove .vscode from gitignore to allow VS Code configuration tracking
* Update nightly extension container name and e2e test setup
- Set activity bar title for nightly builds in package.json
- Remove unnecessary extension development flags from e2e tests as the test is set up to test from the vsix package it builds
* remove "--no-dependencies"
* activitybar title
* add back extensionDevelopmentPath
* Improve error handling and validation in taskHistory storage operations
- Add user-facing error message when StateManager initialization fails
- Replace empty string check with proper JSON parsing error handling in task history reading
- Add validation to ensure task history migration writes data correctly before clearing old state
* add missing return statement
* split up error check cases for write validation