* adding cli args to cline core for ports and cline directory
* added locking
* data dir is correct
* final touches
* added better sqlite3 dep
* fs
* making help text more accurate
* touch instance at the end
* shutdown impl
* moving SETTINGS_SUBFOLDER const to vscode-context
* not calling process exit in protobus or hostbridge, handling that in cline core with proper graceful shutdown
* hostbridge port default
* package lock
* sigh, biome auto updated and daniels mcp hub change caused issues. locking biome
* fixed package-lock
* v3.28.5 Release Notes
* changeset version bump
* Updating CHANGELOG.md format
* Update changelog for patch 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>
* Add task-specific settings caching to StateManager (#6171)
* 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
* add ability to set task setting overrides in newtask rpc
* spread proto object keys that don't need to be transformed and filter undefined values
* use most Settings fields in TaskSettings proto and convert fields that do not directly map to the application typescripts type of Settings
* accept taskSettings in newTask RPC and save them to task state
* remove test taskSettings in useMessageHandlers
---------
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>
* first pass of removing all related code
# Conflicts:
# src/hosts/external/ExternalWebviewProvider.ts
# src/hosts/vscode/VscodeWebviewProvider.ts
* remove more things
* rename all sidebarWebviews to webview
* remove null from getInstance and remove null checks
* remove client id logic and update RPC subscriptions to match this
* add back extension.test.ts without irrelevant webview panel tests
* Refresh CI cache - fix proto compilation
* add comment to try to invalidate CI cache
* add clean script to test.yml for test-platform-integration
* remove clean script didn't work
* finally found the error in the code - linter wasn't highlighting it
* Don't delete unrelated tests in this PR
---------
Co-authored-by: Sarah Fortune <sarah.fortune@gmail.com>
- Rename OpenDiskTaskHistoryButton to OpenDiskConversationHistoryButton
- Add HeroTooltip for consistent UI experience
- Update protobuf service and backend handler
* add infobanner
* fix type and update docs url
* restructure test to not include brittle elements; it is not clear why this banner was even added to auth tests
* move update info banner logic into rpc
* feat: add multi-root workspace setting with feature flag support
Add user-configurable multi-root workspace setting that works in conjunction with feature flags. Includes proto definition, state management, and UI toggle in settings panel.
- Add multi_root_enabled field to UpdateSettingsRequest proto
- Implement multiRootSetting with user preference and feature flag state
- Add ClineFeatureSetting interface for feature flag + user setting pattern
- Create settings UI toggle with feature flag override indication
- Update state helpers to properly handle boolean conversion
* remove docs
* remove env vars
* feat: add configurable auto-condense threshold setting
Add auto_condense_threshold parameter to control when context window compaction occurs. The threshold is configurable as a percentage (0-1 range) of the total context window size, allowing users to customize when automatic condensing triggers instead of using a fixed maximum size.
Changes:
- Add autoCondenseThreshold field to protobuf UpdateSettingsRequest
- Update ApiProviderInfo interface to include autoCondenseThreshold
- Modify shouldCompactContextWindow to accept threshold percentage parameter
- Add threshold validation and state management in updateSettings
- Include autoCondenseThreshold in controller state and UI data flow
* updateSettings
* feat(oca): add Oracle Code Assist provider; auth, models, settings
- Implement OCA API handler (src/core/api/providers/oca.ts)
- OpenAI-compatible chat.completions with custom fetch injecting OCA headers
- Optional reasoning (thinking) budget and ephemeral prompt caching
- LiteLLM session tracking and usage streaming; cost via /spend/calculate
- Guarded client init; clear error when OCA access token is missing
- Wire provider into core API and controller
- Register provider (src/core/api/index.ts)
- Controller flows for OCA account login/logout and auth status subscription
- refreshOcaModels command and model config plumbing
- Add protobuf surfaces
- proto/cline/models.proto and proto/cline/ocaAccount.proto
- Extend proto/cline/state.proto for settings/state
- Persist settings/state and helpers
- Update StateManager, state-keys, state-helpers, updateSettings
- Misc
- Add changeset entry
- Minor .gitignore and commit-message generator tweak
feat: New redirect server
feat(oca): add Oracle Code Assist provider; auth, models, settings
- Implement OCA API handler (src/core/api/providers/oca.ts)
- OpenAI-compatible chat.completions with custom fetch injecting OCA headers
- Optional reasoning (thinking) budget and ephemeral prompt caching
- LiteLLM session tracking and usage streaming; cost via /spend/calculate
- Guarded client init; clear error when OCA access token is missing
- Wire provider into core API and controller
- Register provider (src/core/api/index.ts)
- Controller flows for OCA account login/logout and auth status subscription
- refreshOcaModels command and model config plumbing
- Add protobuf surfaces
- proto/cline/models.proto and proto/cline/ocaAccount.proto
- Extend proto/cline/state.proto for settings/state
- Persist settings/state and helpers
- Update StateManager, state-keys, state-helpers, updateSettings
- Misc
- Add changeset entry
- Minor .gitignore and commit-message generator tweak
feat: New redirect server
update UI and add NPS survey link
papercuts
fix model dropdown height
fix: Fix 1
fix: removing ui
feat(AuthManager): Adding an AuthManager
fix: fixing rebase
* fix: Removing AuthManager, simplifyng auth service initialization
Removed favorited_model_ids field from API configuration models in proto files and migrated storage handling to global state key management.
Cleans up configuration separation by removing non-API-related data from model definitions. Enables more consistent state handling across the application.
* Refactor API configuration to use proto enums and structured types
- Replace JSON string fields with proper proto message types
- Convert snake_case field names to camelCase for consistency
- Use ApiProvider enum instead of string for provider fields
- Add structured types for model info and selectors
- Remove deprecated settings conversion module
- Update proto conversions to handle new structured format
* fix types errors caused by changing to generic string
* 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
* 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
* Remove Host Bridge watch service
Replace the host bridge file watch service with native JS module chokidar.
Remove the watch service and references to it.
* Remove references to watch service from host provider
* Add vscode.env.onDidChangeTelemetryEnabled to the Host Bridge
Add a streaming method to the host bridge that returns a message when
the host telemetry setting is changed.
Replace uses of vscode.env.onDidChangeTelemetryEnabled with `subscribeToTelemetrySettings`.
* Apply suggestion from @ellipsis-dev[bot]
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* Remove debug logs
---------
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Cline-core is setting some of these values in the models proto to the javascript Number.MAX_SAFE_VALUE, which won't fit in int32, so these protobuf messages fail to serialize to and can't be transported.
Just change all the int32s in this file to int64 beceause this is the second time this same issue has occured.
Fixes:
```
2025-08-28 16:30:03,824 [ 3479] WARN - bot.cline.services.ProtoBusProxyService - Stream cline.ModelsService.subscribeToOpenRouterModels encountered error
io.grpc.StatusException: INTERNAL: invalid int32: 9007199254740991
at io.grpc.Status.asException(Status.java:548)
at io.grpc.kotlin.ClientCalls$rpcImpl$1$1$1.onClose(ClientCalls.kt:300)
at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:564)
at io.grpc.internal.ClientCallImpl.access$100(ClientCallImpl.java:72)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:729)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:710)
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Wor
```
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap ai core - add orchestration
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap provider - support orchestration modee
* feat: sap provider - support orchestration modee
* feat: sap provider - support orchestration modee
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: support doorway mapping semantic model [CCSTAHEL-2197]
* feat: sap provider - support orchestration model
* feat: sap provider - support orchestration model
* feat: sap provider - support orchestration model
* feat: sap provider - support orchestration model
* feat: sap provider - support orchestration model
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap provider - support orchestration model
* feat: sap provider - support orchestration model
* Update docs/provider-config/sap-aicore.mdx
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* feat: sap provider - support orchestration model
* feat: support doorway mapping semantic model [CCSTAHEL-2197]
* feat: sap provider - support orchestration model
* feat: sap provider - support orchestration model
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap provider - support orchestration model
* feat: sap provider - support orchestration model
* feat: sap provider - support orchestration model
* feat: sap provider - support orchestration model
* feat: sap provider - support orchestration model
* feat: sap provider - support orchestration model
* fix converse api image data to base64 string.
Signed-off-by: Lize Cai <lize.cai@sap.com>
---------
Signed-off-by: Lize Cai <lize.cai@sap.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Lize Cai <lize.cai@sap.com>
* use css variables for highlight styling and remove theme subscription along with vscode theme to highlight pipeline logic
* changeset
* Remove monaco-vscode-textmate-theme-converter
* Remove unnecessary markdown css
* Remove package-lock.json from version control
* re-add package-lock
---------
Co-authored-by: Saoud Rizwan <7799382+saoudrizwan@users.noreply.github.com>
* feat: Integrate Qwen Code API with OAuth authentication
- Add Qwen Code API provider with OAuth2 authentication flow
- Implement QwenCodeProvider component for settings UI
- Add qwenCodeOauthPath to CacheService state management
- Update protobuf models with QWEN_CODE provider type
- Fix protobuf enum values (VSCODE_LM changed from 15 to 33)
- Add comprehensive API configuration conversion support
- Update build scripts to use system protoc for Windows compatibility
- Optimize VSIX packaging by excluding reference codebase
- Follow camelCase convention: qwen_code_oauth_path qwenCodeOauthPath
* docs: Add Qwen Code API integration documentation
- Document OAuth2 authentication flow and features
- Highlight enterprise-grade security capabilities
- Include setup instructions for credential management
- Emphasize automatic token refresh and caching features
* cleanup: Clean up build configuration for production release
- Revert protoc path to use grpc-tools instead of exposing system path
- Restore vscode:prepublish script for proper VS Code marketplace publication
- Remove reference codebase exclusion from .vscodeignore for cleaner packaging
* refactor: Remove Windows platform check from build-proto script
- Remove unnecessary isWindows variable and platform-specific logic
- Simplify TS_PROTO_PLUGIN to use standard require.resolve approach
- Improve cross-platform compatibility and code clarity
* restore: Restore Windows platform check in build-proto script
- Add back isWindows platform detection variable
- Restore Windows-specific TS_PROTO_PLUGIN logic using .cmd file
- Maintain cross-platform compatibility for Windows builds
* Update ApiOptions.tsx
* Remove Qwen Code API integration section
* Revert README
* Fix protos order
* Revert change
* Remove validation for qwen code
---------
Co-authored-by: Ara <arafat.da.khan@gmail.com>
Co-authored-by: Saoud Rizwan <7799382+saoudrizwan@users.noreply.github.com>
* Add compact system prompt for local models
- Introduce compact system prompt for local models (lm studio, ollama)
- Add ApiProviderInfo { modelId, providerId } to API
- Persist promptType in global state and propagate to webview
(updateSettings, state keys/helpers, ExtensionMessage, UI context)
- Wire provider info through task pipeline to buildSystemPrompt
* isLocalModelFamily
* Add custom prompt support and LM Studio API improvements
* Enable token usage tracking in LM Studio stream responses
This change adds the stream_options parameter with include_usage: true to LM Studio API requests, allowing the system to receive token usage information along with streaming responses. This enables better tracking of token consumption for LM Studio model interactions.
* update compact system prompt
* feat: Support compact system prompt for LM studio models and token usage tracking
* clean up
* Update UI helper text
* truncate first user message
* base swapping
* linting
* menu
* apply biome fixes and add back in removed comments
* undo biome invalid changes
* updating feature section comment
* button to enable auto compact just for next gen models
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
* feat: sap provider - show deployed models from the ai core service instance alongside sap provider's supported models in cline
The context window is now being set to `Number.MAX_SAFE_INTEGER` to represent infinity. https://github.com/cline/cline/blob/01c4ead15548c906cc690ef030ee447720ccb5b0/src/shared/api.ts#L219-L220
However, this is larger than the max value of int32 and cannot be serialized over the ProtoBus. Update the max token and context window sizes to be int64.
```2025-08-14 18:28:36,492 [ 4334] WARN - bot.cline.services.ProtoBusProxyService - Stream cline.ModelsService.subscribeToOpenRouterModels encountered error
io.grpc.StatusException: INTERNAL: invalid int32: 9007199254740991
at io.grpc.Status.asException(Status.java:548)
at io.grpc.kotlin.ClientCalls$rpcImpl$1$1$1.onClose(ClientCalls.kt:300)
at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:564)
at io.grpc.internal.ClientCallImpl.access$100(ClientCallImpl.java:72)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:729)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:710)
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
```
When the user clicks on a directory file mention, it should open that directory in the explorer panel in the IDE. Add an RPC for this to the host bridge.
I had to change the logic to check if the mention is a directory or not because the current check was not working properly anymore. So, just file.stat to check if its a directory instead of checking if the path ends in /.
Add an RPC that returns details about the currently active editor. Right now it just returns the file path.
Update the place where this is used.
Remove commented out code that references `vscode.window.activeTextEditor`.
* Support LM Studio local models with max tokens set
Add configurable max tokens parameter for LM Studio provider across proto definitions, API handlers, storage, and UI components. Improved error handling for model fetching to use v0 api.
* changeset added
* clean up
* update
* Use loaded context length for LM Studio model configuration
- Add loaded_context_length field to LMStudioApiModel interface
- Prioritize loaded_context_length over max_context_length in UI
- Update context window display to show actual loaded context
- Refactor model selection logic and endpoint memoization
- Auto-update max tokens when loaded context differs from config
* Add DropdownContainer
* Add support for Z AI GLM-4.5 and GLM-4.5 air
* Add changeset for Z AI provider
* add entrypoints for Z AI provider, add cacheReadsPrice and cacheWritesPrice
* fix old naming convention
* fix value in proto
* fix proto conversion and secret persistence
* Fix GitHub Actions errors: Add zaiApiKey and zaiApiLine to state-helpers.ts and remove unused state.ts
- Added missing zaiApiKey to readStateFromDisk, resetGlobalState functions and apiConfiguration object
- Added missing zaiApiLine to readStateFromDisk and apiConfiguration object
- Removed unused state.ts file that was causing ESLint errors with direct VS Code API calls
- All type definitions for zaiApiKey and zaiApiLine were already present in state-keys.ts
- This resolves the TypeScript errors in GitHub Actions for CacheService.ts
---------
Co-authored-by: wangshan <shan.wang@aminer.cn>
Co-authored-by: Ara <arafat.da.khan@gmail.com>
* adding option to have custom requesty base url
fix
changeset
* finish state changes
* cleanup
---------
Co-authored-by: John Costa <john@requesty.ai>