* Feat:
* add hicap as provider option
* add new variable to handle hicapApiKey
* add variable to handle hicapModelId in Plan and Act mode
* get hicap available model from Hicap Endpoint
* create hicap provider (ui)
* hicap handler
* rebase main into this branch and fixing errors
* add changeset
* fix typo with hicap api key
* resolve comments from cline team on PR
* revert some delete console logs
* HicapModelPicker changed styled components for tailwind format, remove unnecessary hicapModelId migration, refreshHicapModel use setGlobalState function
* rebase main branch
* fix(cli): Fix config set overwriting all settings instead of merging
ENG-1115
This fix resolves the issue where 'cline config set' would overwrite all
settings instead of merging with existing values.
Changes:
1. CLI (cli/pkg/cli/config.go): Changed setCommand to use
UpdateSettingsPartial() instead of UpdateSettings()
2. Server (src/core/controller/state/updateSettingsCli.ts): Added defensive
checks for defaultTerminalProfile to prevent undefined errors
3. Added merge.go with proper settings merge logic
The fix follows git-style behavior where 'cline config set key=value'
merges with existing settings, preserving all other values.
Tested and verified:
- Setting max-requests to 999 works
- Setting edit-files-externally preserves max-requests
- Multiple successive config sets preserve all previous values
* fix: use optional proto bools to fix config set field overwrite
Root cause: Non-optional bool fields in AutoApprovalSettings proto were
transmitting zero values (false) even when not set by user, causing the
server-side merge to overwrite existing settings.
Solution: Made 'enabled' and 'enableNotifications' fields optional in proto,
matching the pattern used by AutoApprovalActions fields. This allows proper
server-side merge detection using 'field !== undefined' checks.
Changes:
- proto/cline/state.proto: Added optional keyword to two bool fields
- cli/pkg/cli/task/settings_parser.go: Use boolPtr() for optional fields
- cli/pkg/cli/task/manager.go: Fix UpdateTaskAutoApprovalAction to use boolPtr()
- Removed client-side merge logic (merge.go, UpdateSettingsPartial method)
- Simplified config.go to use UpdateSettings() directly
This approach is simpler and more maintainable than the previous client-side
merge solution, relying on the existing server-side merge logic that already
handles undefined values correctly.
* fix: Address celestial-vault feedback on proto optional fields
- Remove unnecessary error suppression in updateSettingsCli.ts
- Make max_requests optional in AutoApprovalSettings proto
- Update Go parser to use int32Ptr() for optional max_requests
- Remove hardcoded MaxRequests default in UpdateTaskAutoApprovalAction
This prevents the CLI from overwriting user-configured maxRequests values
and maintains consistency with other optional fields (enabled, enableNotifications).
* fix: Remove error suppression for missing terminal manager in updateSettingsCli
Addresses celestial-vault's feedback on ENG-1115 PR.
Previously, the check 'if (controller.task && controller.task.terminalManager)'
silently suppressed errors when a task existed but terminalManager was missing.
Now properly throws an error if task exists without terminalManager (error case),
while allowing terminal profile updates when no task is running (normal case).
wip:
wip:
wip:
fix: Adding oca auth state instead of using model id check
fix: Adding oca auth state instead of using model id check
chore: Undoing debug changes
* terminal shift enter support
* not needed
* detecting windows
* removing enhancedkeyboard
* removing enhanced keyboard
* ghostty
* proper ghostty support
* docs for posterity
* better logging
* removing md
* doctor command
* adding arguments for sync/async for doctor and keyboard setup - and moved keyboard setup to doctor command
* doctor help
* cleaning up logging and making things more explicit
* language and positioning
* standardizing color codes in plain mode
* wow even more hidden rendering - removed
* fixing stdin for restrictive shell environments
* terminal shift enter support
* not needed
* detecting windows
* removing enhancedkeyboard
* removing enhanced keyboard
* ghostty
* proper ghostty support
* docs for posterity
* better logging
* removing md
* doctor command
* adding arguments for sync/async for doctor and keyboard setup - and moved keyboard setup to doctor command
* doctor help
* cleaning up logging and making things more explicit
* language and positioning
* build: add npm package build script with telemetry injection
Add a new build script that automates the NPM package creation process with proper telemetry key injection. The script:
- Validates required environment variables (TELEMETRY_SERVICE_API_KEY, ERROR_SERVICE_API_KEY)
- Verifies Node.js can access environment variables
- Builds Go CLI binaries for all platforms
- Compiles standalone package with esbuild
- Verifies telemetry keys are properly injected into compiled code
- Provides colored output and detailed error messages
Added npm script `build:npm` to package.json for easy invocation.
This ensures consistent builds with telemetry properly configured for production deployments.
* feat(hostbridge): add telemetry settings support for CLI mode
Add GetTelemetrySettings and SubscribeToTelemetrySettings methods to EnvService to handle telemetry configuration in CLI mode.
- GetTelemetrySettings retrieves telemetry status from POSTHOG_TELEMETRY_ENABLED environment variable
- SubscribeToTelemetrySettings provides a stream for telemetry setting updates, sending initial state and keeping stream open
- In CLI mode, telemetry settings are static and determined by environment variable at startup
This enables proper telemetry control and monitoring in CLI environments.
* WIP npm publish setup
* verbose startup + error if cline core not found
* working npm release
* modifications for linux npm package to work
* remove publish npm workflow for now
* readme & package.json tweaks
* fix old reference to compile-standalone-cli in test workflow
---------
Co-authored-by: Andrei Edell <andrei@nugbase.com>