* feat: Modular telemetry architecture with Jitsu provider support
- Add dual-provider telemetry architecture supporting both Jitsu and PostHog
- Implement JitsuTelemetryProvider with full API compatibility
- Add required telemetry bypass for critical system health events
- Create modular event handler base class for future extensibility
- Add Jitsu configuration with environment variable controls
- Update TelemetryService to support multiple providers with error isolation
- Add .env.example template for development setup
- Maintain backward compatibility with existing PostHog integration
- Enable easy PostHog removal via POSTHOG_TELEMETRY_ENABLED=false
- Install dotenv for local development environment support
Key benefits:
- Dual tracking during transition period
- Error isolation between providers
- Memory efficient static method architecture
- Easy provider enable/disable via environment variables
- Wednesday deployment ready for Jitsu migration
* fix(build): Load environment variables from .env file during development builds
- Add dotenv.config() to esbuild.mjs to load .env variables
- Include all telemetry-related environment variables in build injection:
- TELEMETRY_SERVICE_API_KEY (PostHog)
- ERROR_SERVICE_API_KEY (PostHog error tracking)
- JITSU_WRITE_KEY (Jitsu telemetry)
- JITSU_HOST (Jitsu host URL)
- JITSU_ENABLED (Jitsu provider control)
- POSTHOG_TELEMETRY_ENABLED (PostHog provider control)
This ensures telemetry services work correctly in development builds
by properly injecting API keys and configuration from .env file.
Also updates TelemetryService tests to support multi-provider architecture.
* fix(telemetry): Replace Record<string, unknown> with proper JSON-serializable types
- Add TelemetryPrimitive, TelemetryValue, TelemetryObject, and TelemetryProperties types to ITelemetryProvider
- Update JitsuTelemetryProvider to use TelemetryProperties instead of Record<string, unknown>
- Update PostHogTelemetryProvider to use TelemetryProperties instead of Record<string, unknown>
- Update TelemetryService to use TelemetryProperties for type-safe telemetry data
- Ensures all telemetry properties are JSON-serializable, preventing runtime errors
- Fixes TypeScript compatibility issue between Jitsu's JSONObject type and Record<string, unknown>
* moved and organized the telemetry files and updated the example env file to be more descriptive
* refactor: remove Jitsu telemetry provider
- Remove Jitsu provider implementation and config files
- Remove Jitsu environment variables from .env.example
- Remove Jitsu build configuration from esbuild.mjs
- Update TelemetryProviderFactory to only support PostHog
- Uninstall @jitsu/js dependency
- Add .env to .gitignore to prevent committing local env files
* chore: add changeset for Jitsu removal
* removed jitsu
* fix: update import paths after PostHogClientProvider relocation
* fix: remove race condition in captureToProviders and reorganize PostHog providers
- Changed captureToProviders from async to synchronous method
- Removed unnecessary Promise.allSettled overhead since provider.log() and provider.logRequired() are synchronous
- Changed from .map() to .forEach() for better clarity
- Moved PostHog provider files into posthog/ subdirectory for better organization
- Updated all import paths to reflect new folder structure
* refactor(telemetry): remove unnecessary addProperties method and improve type safety
- Remove addProperties helper method that used 'any' types
- Replace with inline typed spread operations in capture(), captureRequired(), and identifyAccount()
- Fix type errors in captureConversationTurnEvent and captureBrowserError
- All telemetry properties now properly typed as TelemetryProperties
- Ensures OpenTelemetry compatibility through type system enforcement
* refactor: remove dotenv dependency and use launch.json envFile
- Remove dotenv import and config() call from esbuild.mjs
- Add envFile parameter to all launch.json configurations to load .env
- Remove dotenv from package.json devDependencies
Environment variables are now loaded via VSCode's envFile feature for local
development, while CI/production continues to inject via GitHub Actions.
This provides cleaner separation between build-time and runtime environment
handling.
* feat(telemetry): add browser telemetry properties and improve typing
- Add remoteBrowserHost and endpoint fields to browser telemetry events
- Replace generic Record<string, unknown> with TelemetryObject type in EventHandlerBase for better type safety
- Import TelemetryObject type from ITelemetryProvider
These changes enhance browser telemetry tracking capabilities and improve type consistency across the telemetry service.
* feat(telemetry): add OpenTelemetry integration
Add comprehensive OpenTelemetry support alongside existing PostHog telemetry:
- Add OpenTelemetry provider with metrics and logs/events support
- Support multiple exporters: console, OTLP (gRPC/HTTP/Protobuf), and Prometheus
- Implement flexible configuration via environment variables
- Add detailed .env.example documentation with usage examples
- Integrate with existing telemetry infrastructure via TelemetryClient
- Support independent or parallel operation with PostHog
- Add proper attribute flattening for OpenTelemetry primitives
- Include configurable export intervals and protocols
This enables users to export telemetry data to any OpenTelemetry-compatible
backend (Grafana, Jaeger, etc.) while maintaining backward compatibility
with PostHog integration.
* add changeset
* Update packages
* .vscodeignore
* fixed type error
* fix(telemetry): Fix OpenTelemetry gRPC exporter endpoint format
- Strip http:// prefix from gRPC endpoints (gRPC requires 'localhost:4317' not 'http://localhost:4317')
- Clean up debug logging from OpenTelemetry provider classes
- Add helpful comment to .env.example about gRPC endpoint format
This fixes the issue where metrics were being recorded in-memory but silently
failing to export to the OpenTelemetry collector. Metrics now flow end-to-end
from the extension through the collector to Prometheus.
Verified working with test infrastructure at ~/code/@cline/cline-otel-testing
* merged from main and handled conflcits
* fix: ensure exportTimeoutMillis is less than exportIntervalMillis in OpenTelemetry metrics
Changed the timeout calculation to dynamically compute as 80% of the export interval,
capped at 30 seconds. This fixes the error: 'exportIntervalMillis must be greater than
or equal to exportTimeoutMillis' that occurred when the configured interval was less
than 30 seconds.
* feat(otel): add insecure gRPC connection support for development
- Add OTEL_EXPORTER_OTLP_INSECURE config option
- Support insecure (non-TLS) gRPC connections for local testing
- Update OpenTelemetryClientProvider to use grpcCredentials.createInsecure()
- Add comprehensive debug logging for troubleshooting
- Tested and validated with local OTel collector
This enables testing of OTLP gRPC protocol without TLS certificates,
useful for local development and testing environments.
* feat(otel): add comprehensive debug logging for troubleshooting
- Add configuration summary logging at initialization
- Log all exporter creation steps with success/failure status
- Log connection details (protocol, endpoint, insecure mode)
- Log header presence (keys only, not values for security)
- Add try-catch blocks around exporter creation with error logging
- Log reader/processor counts for validation
- Improve visibility for TLS handshake and authentication issues
* test: validate HTTP/Protobuf protocol with path appending fix
- Tested HTTP/Protobuf exporter with binary encoding
- Confirmed path appending fix works for /v1/metrics and /v1/logs
- Validated bearer token authentication over HTTP/Protobuf
- All exports successful with complete data fidelity
- Documented test results in scenario-5-http-protobuf.md
Test Status: ✅ PASSED - HTTP/Protobuf production ready
* pre-cleanup
* refactor(telemetry): clean up OpenTelemetry provider architecture
Major refactoring to improve code quality, maintainability, and align with domain-driven design principles:
**Architecture Improvements:**
- Created OpenTelemetryExporterFactory with pure functions for exporter creation
- Extracted exporter logic from OpenTelemetryClientProvider into factory
- Removed Prometheus support (not a requirement)
- Simplified diagnostic logging with minimal wrapper gated by TEL_DEBUG_DIAGNOSTICS flag
**Interface & Provider Updates:**
- Extended ITelemetryProvider with optional incrementCounter() and recordHistogram() methods
- No OpenTelemetry types leak into provider interface (provider-agnostic)
- Implemented no-op metric stubs in PostHogTelemetryProvider
- Removed eventCounter from OpenTelemetryTelemetryProvider (was incorrectly tracking events as metrics)
- Added lazy counter/histogram creation with Map caches in OpenTelemetry provider
- Logs are now the primary telemetry path, metrics are optional/future-ready
**Code Quality:**
- ~50% reduction in complexity through factory pattern
- Clear separation of concerns between interface, implementation, client management, and exporter creation
- Improved testability with pure functions and lazy instrument creation
- Better maintainability with cleaner code structure
**Configuration:**
- Updated .env.example with comprehensive OpenTelemetry documentation
- Added TEL_DEBUG_DIAGNOSTICS flag for enabling diagnostic logging
- Clarified all configuration options with detailed comments
- Removed Prometheus references
**Verified Working:**
- All protocols tested and working: gRPC, HTTP/JSON, HTTP/Protobuf
- Bearer token authentication validated
- Console exporter functional
- Maintains full compatibility with TelemetryService interface
* OTel: make flattenProperties circular-safe with depth guard and array truncation
Use WeakSet to detect circular references; add MAX_DEPTH=10; limit arrays to 100 items with _truncated and _original_length flags; handle Date via toISOString and Error via message; skip __proto__, constructor, prototype keys; wrap JSON.stringify in try/catch.
* security: restrict sensitive OTel logging to debug mode only
Only log OTLP endpoints and header information when TEL_DEBUG_DIAGNOSTICS=true or IS_DEV=true. In production mode, only show whether these values are configured without exposing actual values. This prevents sensitive infrastructure details and authentication information from appearing in production logs.
* removed debug logging from non debug mode
* feat: add batch configuration for OpenTelemetry log processor
Add configurable batch settings for BatchLogRecordProcessor to allow tuning for different use cases:
- OTEL_LOG_BATCH_SIZE: Maximum logs per batch (default: 512)
- OTEL_LOG_BATCH_TIMEOUT: Maximum wait time in ms (default: 5000)
- OTEL_LOG_MAX_QUEUE_SIZE: Maximum queue size (default: 2048)
Benefits:
- High-volume scenarios can increase queue size to prevent dropped events
- Real-time monitoring can reduce timeout for faster exports
- Low-volume scenarios can reduce batch size to minimize delays
All settings are optional with sensible defaults matching OpenTelemetry SDK standards. Configuration is validated to ensure positive values.
* feat(telemetry): add build-time OpenTelemetry environment variable injection
Add support for injecting OpenTelemetry configuration at build time from
GitHub Actions secrets, following the same pattern as PostHog telemetry.
This enables production builds to have default OpenTelemetry collector
configuration while still allowing runtime overrides.
Changes:
1. esbuild.mjs:
- Added build-time injection for 7 OpenTelemetry environment variables:
* OTEL_TELEMETRY_ENABLED - Enable/disable OpenTelemetry
* OTEL_LOGS_EXPORTER - Logs exporter type (console/otlp)
* OTEL_METRICS_EXPORTER - Metrics exporter type (console/otlp)
* OTEL_EXPORTER_OTLP_PROTOCOL - OTLP protocol (grpc/http/json/http/protobuf)
* OTEL_EXPORTER_OTLP_ENDPOINT - Collector endpoint URL
* OTEL_EXPORTER_OTLP_HEADERS - Authentication headers (e.g., bearer tokens)
* OTEL_METRIC_EXPORT_INTERVAL - Metric export interval in milliseconds
- Variables are read from process.env at build time and injected into
the bundle via esbuild's define option
- Follows exact same pattern as existing PostHog API key injection
2. .github/workflows/publish.yml:
- Added OpenTelemetry environment variables to 'Package and Publish Extension' step
- Variables are populated from GitHub Actions secrets
- Applied to both release and pre-release builds
3. .github/workflows/publish-nightly.yml:
- Added same OpenTelemetry environment variables to nightly builds
- Ensures consistent configuration across all build types
How it works:
- Build Time (Production):
* GitHub Actions reads secrets and sets environment variables
* esbuild.mjs injects these values into the bundled code
* Production builds ship with default OpenTelemetry configuration
- Runtime (Development):
* Developers use .env file with their own configuration
* No changes needed to existing development workflow
- Runtime (Production):
* Users can override build-time defaults by setting environment variables
* Runtime values take complete precedence over build-time defaults
* Enterprise users can point to their own collectors
Next steps:
- Add GitHub secrets to repository (Settings → Secrets and variables → Actions)
- Required secrets: OTEL_TELEMETRY_ENABLED, OTEL_LOGS_EXPORTER,
OTEL_EXPORTER_OTLP_PROTOCOL, OTEL_EXPORTER_OTLP_ENDPOINT,
OTEL_EXPORTER_OTLP_HEADERS
- Optional secrets: OTEL_METRICS_EXPORTER, OTEL_METRIC_EXPORT_INTERVAL
Benefits:
- Consistent with existing PostHog telemetry pattern
- Secure: production secrets stay in GitHub, not in code
- Flexible: users can override defaults at runtime
- Development-friendly: .env file continues to work as before
- Production-ready: default collector configuration for all users
* removed ai slop
* updated lock file
* fix: use ExtensionRegistryInfo.version for cross-platform compatibility
Replace process.env.npm_package_version with ExtensionRegistryInfo.version
in OpenTelemetry service version to ensure compatibility across VSCode,
JetBrains, and CLI environments.
Addresses PR #6605 inline comment from Sarah Fortune (sjf)
* fix: restore package-lock.json with proper biome dependencies
Fixes CI test failures caused by corrupted biome package entries.
Restores package-lock.json from main and reinstalls to properly
update OpenTelemetry dependencies while preserving biome integrity.
Addresses PR #6605 comment from Sarah Fortune (sjf) about test failures
---------
Co-authored-by: NightTrek <Daniels@dual4t.com>
Co-authored-by: Daniel Steigman <35793213+NightTrek@users.noreply.github.com>
* Add JP and Global inference profile options to AWS BedrockAdd a comment on lines R5 to R7Add diff commentMarkdown input: edit mode selected.WritePreviewAdd a suggestionHeadingBoldItalicQuoteCodeLinkUnordered listNumbered listTask listMentionReferenceSaved repliesAdd FilesPaste, drop, or click to add filesCancelCommentStart a reviewReturn to code
* Adding Improvements to VSCode multi root workspaces
* Added markdown support to focus chain text, allowing the model to display more interesting focus chains
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* feat(logging): replace HostProvider with node-machine-id for machine identification
Replace custom HostProvider.env.getMachineId() implementation with the
node-machine-id npm package for retrieving machine identifiers. This
simplifies the codebase by using a well-maintained library instead of
custom host provider logic.
Changes:
- Add node-machine-id dependency (^1.1.12)
- Remove dotenv dev dependency (no longer needed)
- Update distinctId service to use node-machine-id directly
- Refactor tests to stub node-machine-id instead of HostProvider
- Remove HostProvider mock utilities from tests
This change improves maintainability and reduces custom code while
maintaining the same functionality for generating stable machine IDs.
* Removing dead code
* feat: Modular telemetry architecture with Jitsu provider support
- Add dual-provider telemetry architecture supporting both Jitsu and PostHog
- Implement JitsuTelemetryProvider with full API compatibility
- Add required telemetry bypass for critical system health events
- Create modular event handler base class for future extensibility
- Add Jitsu configuration with environment variable controls
- Update TelemetryService to support multiple providers with error isolation
- Add .env.example template for development setup
- Maintain backward compatibility with existing PostHog integration
- Enable easy PostHog removal via POSTHOG_TELEMETRY_ENABLED=false
- Install dotenv for local development environment support
Key benefits:
- Dual tracking during transition period
- Error isolation between providers
- Memory efficient static method architecture
- Easy provider enable/disable via environment variables
- Wednesday deployment ready for Jitsu migration
* fix(build): Load environment variables from .env file during development builds
- Add dotenv.config() to esbuild.mjs to load .env variables
- Include all telemetry-related environment variables in build injection:
- TELEMETRY_SERVICE_API_KEY (PostHog)
- ERROR_SERVICE_API_KEY (PostHog error tracking)
- JITSU_WRITE_KEY (Jitsu telemetry)
- JITSU_HOST (Jitsu host URL)
- JITSU_ENABLED (Jitsu provider control)
- POSTHOG_TELEMETRY_ENABLED (PostHog provider control)
This ensures telemetry services work correctly in development builds
by properly injecting API keys and configuration from .env file.
Also updates TelemetryService tests to support multi-provider architecture.
* fix(telemetry): Replace Record<string, unknown> with proper JSON-serializable types
- Add TelemetryPrimitive, TelemetryValue, TelemetryObject, and TelemetryProperties types to ITelemetryProvider
- Update JitsuTelemetryProvider to use TelemetryProperties instead of Record<string, unknown>
- Update PostHogTelemetryProvider to use TelemetryProperties instead of Record<string, unknown>
- Update TelemetryService to use TelemetryProperties for type-safe telemetry data
- Ensures all telemetry properties are JSON-serializable, preventing runtime errors
- Fixes TypeScript compatibility issue between Jitsu's JSONObject type and Record<string, unknown>
* moved and organized the telemetry files and updated the example env file to be more descriptive
* refactor: remove Jitsu telemetry provider
- Remove Jitsu provider implementation and config files
- Remove Jitsu environment variables from .env.example
- Remove Jitsu build configuration from esbuild.mjs
- Update TelemetryProviderFactory to only support PostHog
- Uninstall @jitsu/js dependency
- Add .env to .gitignore to prevent committing local env files
* chore: add changeset for Jitsu removal
* removed jitsu
* fix: update import paths after PostHogClientProvider relocation
* fix: remove race condition in captureToProviders and reorganize PostHog providers
- Changed captureToProviders from async to synchronous method
- Removed unnecessary Promise.allSettled overhead since provider.log() and provider.logRequired() are synchronous
- Changed from .map() to .forEach() for better clarity
- Moved PostHog provider files into posthog/ subdirectory for better organization
- Updated all import paths to reflect new folder structure
* refactor(telemetry): remove unnecessary addProperties method and improve type safety
- Remove addProperties helper method that used 'any' types
- Replace with inline typed spread operations in capture(), captureRequired(), and identifyAccount()
- Fix type errors in captureConversationTurnEvent and captureBrowserError
- All telemetry properties now properly typed as TelemetryProperties
- Ensures OpenTelemetry compatibility through type system enforcement
* refactor: remove dotenv dependency and use launch.json envFile
- Remove dotenv import and config() call from esbuild.mjs
- Add envFile parameter to all launch.json configurations to load .env
- Remove dotenv from package.json devDependencies
Environment variables are now loaded via VSCode's envFile feature for local
development, while CI/production continues to inject via GitHub Actions.
This provides cleaner separation between build-time and runtime environment
handling.
* feat(telemetry): add browser telemetry properties and improve typing
- Add remoteBrowserHost and endpoint fields to browser telemetry events
- Replace generic Record<string, unknown> with TelemetryObject type in EventHandlerBase for better type safety
- Import TelemetryObject type from ITelemetryProvider
These changes enhance browser telemetry tracking capabilities and improve type consistency across the telemetry service.
* 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
* Add experimental support for VSCode multi root workspaces
* Add Claude Sonnet 4.5 to Claude Code provider
* Add Glm 4.6 to Z AI provider
Updated version to 3.32.6
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Fixing regex parsing for workspace hints
* Fixing regex parsing for workspace hints
* test
---------
Co-authored-by: Kevin Bond <kevin@Mac.hsd1.ca.comcast.net>
* improving test workflow
* testing pipeline improvement
* testing new run
* adding missing protos
* adding previous cache + restoring dev dep version
* restoring webview package lock
* scripts update
* fixing old flaky test
* fixing old flaky test
* changeset update
* adding test-platform-integration again
* adding quality check for integration platform
* Added the new code-supernova-1-million stealth model, available for free and delivering a 1 million token context window
* Changes to inform Cline about commands that are available on your system
Updated version to 3.32.0
Co-authored-by: Arafatkatze <arafat.da.khan@gmail.com>
* 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
* changeset version bump
* Updating CHANGELOG.md format
* Update changelog for v3.29.2 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@Mac.hsd1.ca.comcast.net>
* changeset version bump
* Updating CHANGELOG.md format
* Update 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@Mac.hsd1.ca.comcast.net>
* feat: add Storybook configuration
- Bump package version from 3.28.3 to 3.28.4
- Add comprehensive Storybook setup with React-Vite framework and TypeScript support
- Configure Storybook with custom viewport settings and environment variables
- Add extensive story files for chat components, MCP displays, and browser automation
- Update gitignore files to exclude Storybook build artifacts and logs
* Add docs and changeset
* feat: refactor Storybook decorator to support state overrides and custom styling
- Extract ExtensionStateProviderWithOverrides component to safely use useExtensionState within provider context
- Add optional classNames parameter to createStorybookDecorator for custom styling
- Import cn utility from @heroui/react for className merging
- Fix margin class from m-x-auto to mx-auto
* Add message to mock history
---------
Co-authored-by: Jose R. Perez <trupix@gmail.com>
* 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>
* Fix check for debug build in package-standalone script
* Support node modules that include binaries
Add support to the scripts/package-standalone.js for node modules that use platform-specific binary modules.
By default the script bundles the module for all platforms, this can be disabled with -s for single platform builds.
The module for each platform will be bundled into standalone.zip in platform specific directories:
```
binaries/linux-arm64/node_modules
binaries/darwin-x64/node_modules
binaries/win32-x64/node_modules
binaries/darwin-arm64/node_modules
binaries/linux-x64/node_modules
```
When running cline-core add the correct directory to the NODE_PATH, e.g.
```
$ export NODE_PATH=./node_modules/:./binaries/darwin-arm64/node_modules/
cline:/tmp/1$ node cline-core.js
Loading stubs...
Finished loading stubs
Loading stub impls...
Finished loading stub impls...
Cline environment: production
XS variant configuration warnings: [
'Component overrides for unused components: TOOL_USE_SECTION, TOOLS_SECTION, MCP_SECTION, TODO_SECTION, FEEDBACK_SECTION',
'Missing recommended components: TOOL_USE_SECTION'
]
[2025-09-05T19:53:00.853] #bot.cline.server.ts Running standalone cline 0.0.1
[2025-09-05T19:53:00.854] #bot.cline.server.ts Using settings dir: /Users/sjf/.cline/data
Finished loading vscode context...
[2025-09-05T19:53:00.858] #bot.cline.server.ts
Starting cline-core service...
sjfsjf created DBBBBBBBBB: Database {
name: '/tmp/db.sql',
open: true,
inTransaction: false,
readonly: false,
memory: false
}
```
* Apply suggestion from @ellipsis-dev[bot]
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* Apply suggestion from @ellipsis-dev[bot]
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* Support node modules that include binaries
Add support to the scripts/package-standalone.js for node modules that use platform-specific binary modules.
By default the script bundles the module for all platforms, this can be disabled with -s for single platform builds.
The module for each platform will be bundled into standalone.zip in platform specific directories:
```
binaries/linux-arm64/node_modules
binaries/darwin-x64/node_modules
binaries/win32-x64/node_modules
binaries/darwin-arm64/node_modules
binaries/linux-x64/node_modules
```
When running cline-core add the correct directory to the NODE_PATH, e.g.
```
$ export NODE_PATH=./node_modules/:./binaries/darwin-arm64/node_modules/
cline:/tmp/1$ node cline-core.js
Loading stubs...
Finished loading stubs
Loading stub impls...
Finished loading stub impls...
Cline environment: production
XS variant configuration warnings: [
'Component overrides for unused components: TOOL_USE_SECTION, TOOLS_SECTION, MCP_SECTION, TODO_SECTION, FEEDBACK_SECTION',
'Missing recommended components: TOOL_USE_SECTION'
]
[2025-09-05T19:53:00.853] #bot.cline.server.ts Running standalone cline 0.0.1
[2025-09-05T19:53:00.854] #bot.cline.server.ts Using settings dir: /Users/sjf/.cline/data
Finished loading vscode context...
[2025-09-05T19:53:00.858] #bot.cline.server.ts
Starting cline-core service...
sjfsjf created DBBBBBBBBB: Database {
name: '/tmp/db.sql',
open: true,
inTransaction: false,
readonly: false,
memory: false
}
```
* Apply suggestion from @ellipsis-dev[bot]
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* Apply suggestion from @ellipsis-dev[bot]
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* Apply suggestion from @ellipsis-dev[bot]
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* Remove test code
* Use the correct target directory for the binaries
The directory structure that the JB host expects is does
not exactly match ${arch}-${os}
* Update package-standalone script
Warn if there is module that needs binaries, but it is not being used.
Reset the binaries dir before packaging.
---------
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* Add 200k context window variant for Claude Sonnet 4 to OpenRouter and Cline providers
* v3.26.7 Release Notes
* Fix grok-code-fast-1 info
* v3.27.0 Release Notes
* Add new kimi model to groq and moonshot providers
* v3.27.1 Release Notes
* Pass all options to the handlers
* Do not pass all options
* Have onRetryAttempt as a common option
* Update the Gemini CLI
* Throw a RetriableError and extract retry delays from the error responses
* Add changeset
* Throw a RetriableError if extracting the delay fails
* Improve parseRetryDelay
* Add fallback
* Refactor services architecture with provider pattern and factory classes
- Extract telemetry, error handling, and feature flags into separate service modules
- Implement provider pattern with factory classes for better abstraction
- Move PostHog-specific implementations to dedicated provider classes
- Add interfaces for telemetry, error, and feature flags providers
- Update imports across codebase to use new service structure
- Add unit tests for telemetry service
* Refactor service providers and centralize distinct ID management
- Move provider interfaces to dedicated providers/ subdirectories
- Extract distinct ID management to shared logging/distinctId module
- Simplify PostHogClientProvider by removing distinct ID parameter
- Update service factories to use centralized distinct ID
- Reorganize test files to __tests__/ directories
- Remove redundant distinct ID handling across services
* merge main
* clean up
* add grok coder free model to cline provider (#5808)
* add free grok-coder-free model to cline provider
* add changeset
* fix typo
* v3.26.6 Release Notes (#5788)
* changeset version bump
* Updating CHANGELOG.md format
* Update CHANGELOG.md for version 3.26.6 with user-friendly descriptions
---------
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: pashpashpash <nik@cline.bot>
* Remove top padding from ActionButtons component (#5806)
Eliminate unnecessary top padding in the chat view.
* removing middle out from params to or / cline providers (#5811)
* Dify.ai integration (#5761)
* add focus chain settings to statemanager initialize function (#5798)
* add custom gpt-5 system prompt (#5757)
* gpt-5 system prompt
* add changeset
* Focus chain telemetry tweaks (#5810)
Co-authored-by: Kevin Bond <kevin@Kevins-MacBook-Pro.local>
* Remove eslint-rules test patterns from Mocha spec configuration (#5812)
Update the "spec" array in .mocharc.json to exclude "eslint-rules/__tests__/**/*.test.ts",
as that directory has been removed.
* Increase horizontal margin in AutoApproveBar component (#5813)
Update the mx-[5px] to mx-[15px] in the div's className to adjust horizontal spacing for improved layout alignment.
* fix: remove hardcoded Ollama host from options (#5816)
* fix: remove hardcoded Ollama host from options
Updates the Ollama handler to remove the hardcoded "http://localhost:11434" as the `ollamaBaseUrl` fallback option for the host to allow the Ollama SDK to handle the default endpoint configured on users' machine.
Reason: Ollama allows cross-origin requests from 127.0.0.1 and 0.0.0.0 by default. However, when we use localhost, the browser would resolve it through DNS, which can result in different IP addresses.
Docs: https://github.com/ollama/ollama/blob/main/docs/faq.md#how-can-i-expose-ollama-on-my-network
* add changeset
* deep-planning prompt PowerShell (#5699)
* Windows/Powershell specific deep planning prompt changes
* Prompt adjustments
---------
Co-authored-by: Kevin Bond <kevin@Kevins-MacBook-Pro.local>
* Changes to condenseToolResponse & summarizeTask prompting (#5817)
* Condense & deep planning prompt adjustments
* Removed ps prompting ready for PR
* rebase
* Fixed typo on one word
---------
Co-authored-by: Kevin Bond <kevin@Kevins-MacBook-Pro.local>
* rename CacheService to StateManager (#5681)
* rename CacheService to StateManager
* fix types
* infer state key types from existing interfaces (#5815)
* fix: AutoApproveModal positioning and scrolling behavior (#5819)
* fix: AutoApproveModal positioning and scrolling behavior
- Add dynamic positioning calculation to prevent modal overflow
- Implement proper flex layout with scrollable content container
- Ensure minimum usable height and top margin constraints
- Fix modal positioning when button is near viewport edges
* Add changeset
* clean up
* template-based system prompt (#5731)
* Refactor system prompt architecture with new template-based system
- Move existing system prompt files to legacy directory
- Implement new modular system with PromptBuilder, PromptRegistry, and TemplateEngine
- Add component-based prompt structure with reusable parts (capabilities, rules, tool_use, etc.)
- Create variant-specific templates for generic and next-gen models
- Add comprehensive test suite with snapshots for different model configurations
- Introduce template engine with placeholder support for dynamic prompt generation
* Refactor system prompt architecture with modular tool definitions
- Extract tool specifications into dedicated modules under tools/
- Add ClineToolSet class for managing tool variants by model family
- Restructure prompt components with centralized index exports
- Update prompt builder and registry to support new tool architecture
- Reorganize shared utilities and type definitions
- Update all test snapshots to reflect new prompt structure
* Update snapshots
* reorg
* Update template format
* clean up
* typos
* focus chain section
* fix task progress in attempt_completion
* Implement tool retrieval with fallback options in PromptBuilder
- Added `getToolByNameWithFallback` and `getToolsForVariantWithFallback` methods to `ClineToolSet` for improved tool resolution.
- Updated `getToolsPrompts` in `PromptBuilder` to utilize these new methods, allowing for better handling of tool requests with fallback to generic tools.
- Enhanced sorting and filtering of tools based on context requirements and requested order.
* update fild structure
* clean up
* fix static test string
* Update snapshot names
* Update unit test
* Remove unused placeholders and update docs
* Update README on how to add new tool
* Remove task_progress reference from attempt_completion tool description when focus chain is disabled
* Upgrade posthog-node to v5.8.0 and add exception filtering
- Update posthog-node from v4.8.1 to v5.8.0
- Add EventMessage import for type safety
- Implement posthogEventFilter to only capture exceptions from Cline extension
- Filter exceptions by checking for "cline" in error messages or "saoudrizwan" in stack frames
* Use env var keys
- Add PostHogClientConfig to ErrorProviderFactory with proper validation
- Update PostHogErrorProvider to use dedicated client instead of shared one
- Add API key validation in PostHogFeatureFlagsProvider before client creation
- Enhance error handling with fallback to NoOpErrorProvider instead of throwing
- Standardize configuration passing across telemetry, error, and feature flag services
* Upadte filter
* update filter
* update imports
* use secret
* disable enableExceptionAutocapture
* removes vscode.env.machineId
* initializeDistinctId
* use get trap as workaround
* on exit
---------
Co-authored-by: pashpashpash <nik@cline.bot>
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: Toshii <94262432+0xToshii@users.noreply.github.com>
Co-authored-by: Yunus Emre AYHAN <ayhanyunusemre@gmail.com>
Co-authored-by: celestial-vault <58194240+celestial-vault@users.noreply.github.com>
Co-authored-by: canvrno <46584286+canvrno@users.noreply.github.com>
Co-authored-by: Kevin Bond <kevin@Kevins-MacBook-Pro.local>
* 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>
* changeset version bump
* Updating CHANGELOG.md format
* Update CHANGELOG.md for version 3.26.3 release
- Add user-friendly descriptions for compact system prompt feature
- Add proper version formatting with brackets
- Improve clarity of LM Studio and token usage tracking features
* package lock
* changelog
---------
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: pashpashpash <nik@cline.bot>
* changeset version bump
* Updating CHANGELOG.md format
* Update CHANGELOG.md and announcement for version 3.26.0
- Add user-friendly descriptions for Z AI provider, Cline Sonic Alpha model, LM Studio improvements, and Ollama fixes
- Include attribution for external contributor @jues
- Update announcement component with new 3.26 features
- Move previous 3.25 features to Previous Updates section
* announcement
* announcement
---------
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: pashpashpash <nik@cline.bot>
* Migrate to Biome for linting/formatting and simplify hooks
- Add biome.jsonc and @biomejs CLI; configure VS Code to use Biome for format/fix and imports
- Replace verbose Husky pre-commit with lint-staged runner
- Remove ESLint setup and custom rule package (no-direct-vscode-api) and its tests
- Update package.json/package-lock and webview-ui package to reflect tooling change
- Add VS Code host typings and grit definitions under src/hosts
Rationale: unify lint/format tooling, speed up pre-commit checks, and reduce maintenance overhead from custom ESLint rules.
* remove eslint dependencies
* preserve eslint rules
* clean up
* update files list
* add docs
* fix build
* clean up
* update VSCode API usage detection in Grit rule
This commit updates the Grit rule for detecting VSCode API usage:
- Narrow down the list of monitored VSCode API methods
- Add more specific diagnostic messages for direct API usage
- Introduce a new check for `workspaceFolders` property
- Exclude `src/extension.ts` from the Grit rule in Biome configuration
The changes aim to improve code abstraction and provide clearer guidance for replacing direct VSCode API calls.
* adds new cacheService rule
* add back pre-commit
* Remove ESLint custom rule and update linting references
Remove custom ESLint rule for VSCode state API enforcement along with its tests, remove ESLint extension recommendation, and update documentation to use generic "linter" terminology instead of ESLint-specific references.
* update vscode.d.ts for IntelliSense
* remove format on save
* clean up default values
* update to 2.1.4
* buf lint
* format
* Use npm `open` to open URLs in the external browser
# Conflicts:
# src/utils/env.ts
# Conflicts:
# src/utils/env.ts
* Change log statement
* Use the simple-open-url module to open URLs in the system browser.
Log failures of ProtoBus RPCs
* Remove vscode hostbridge handler for openExternal
* Rm unused imports
* Switch back to `open` module.
Update esbuild.js to ES6 and move to esbuild.mjs
* Update src/utils/env.ts
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* remove IS_DEV from e2e setup build
---------
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: abeatrix <beatrix@cline.bot>