mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-08-28 05:27:24 +00:00
Sync extension bridge settings with cloud
This commit is contained in:
parent
cd9e92fa9b
commit
dace718877
3 changed files with 65 additions and 6 deletions
|
|
@ -1892,7 +1892,7 @@ export class ClineProvider
|
|||
includeDiagnosticMessages: includeDiagnosticMessages ?? true,
|
||||
maxDiagnosticMessages: maxDiagnosticMessages ?? 50,
|
||||
includeTaskHistoryInEnhance: includeTaskHistoryInEnhance ?? true,
|
||||
remoteControlEnabled: remoteControlEnabled ?? false,
|
||||
remoteControlEnabled,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1970,6 +1970,17 @@ export class ClineProvider
|
|||
)
|
||||
}
|
||||
|
||||
let remoteControlEnabled: boolean = false
|
||||
|
||||
try {
|
||||
const cloudSettings = CloudService.instance.getUserSettings()
|
||||
remoteControlEnabled = cloudSettings?.settings?.extensionBridgeEnabled ?? false
|
||||
} catch (error) {
|
||||
console.error(
|
||||
`[getState] failed to get remote control setting from cloud: ${error instanceof Error ? error.message : String(error)}`,
|
||||
)
|
||||
}
|
||||
|
||||
// Return the same structure as before
|
||||
return {
|
||||
apiConfiguration: providerSettings,
|
||||
|
|
@ -2080,8 +2091,8 @@ export class ClineProvider
|
|||
maxDiagnosticMessages: stateValues.maxDiagnosticMessages ?? 50,
|
||||
// Add includeTaskHistoryInEnhance setting
|
||||
includeTaskHistoryInEnhance: stateValues.includeTaskHistoryInEnhance ?? true,
|
||||
// Add remoteControlEnabled setting
|
||||
remoteControlEnabled: stateValues.remoteControlEnabled ?? false,
|
||||
// Add remoteControlEnabled setting - get from cloud settings
|
||||
remoteControlEnabled,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -950,7 +950,15 @@ export const webviewMessageHandler = async (
|
|||
await provider.postStateToWebview()
|
||||
break
|
||||
case "remoteControlEnabled":
|
||||
await updateGlobalState("remoteControlEnabled", message.bool ?? false)
|
||||
// Update cloud settings instead of local globalState
|
||||
try {
|
||||
await CloudService.instance.updateUserSettings({
|
||||
extensionBridgeEnabled: message.bool ?? false,
|
||||
})
|
||||
} catch (error) {
|
||||
provider.log(`Failed to update cloud settings for remote control: ${error}`)
|
||||
// Don't fall back to local storage - cloud settings are the source of truth
|
||||
}
|
||||
await provider.handleRemoteControlToggle(message.bool ?? false)
|
||||
await provider.postStateToWebview()
|
||||
break
|
||||
|
|
|
|||
|
|
@ -129,7 +129,43 @@ export async function activate(context: vscode.ExtensionContext) {
|
|||
// Initialize Roo Code Cloud service.
|
||||
const postStateListener = () => ClineProvider.getVisibleInstance()?.postStateToWebview()
|
||||
authStateChangedHandler = postStateListener
|
||||
settingsUpdatedHandler = postStateListener
|
||||
|
||||
// Enhanced settings updated handler that also updates ExtensionBridgeService
|
||||
settingsUpdatedHandler = async () => {
|
||||
// Update ExtensionBridgeService when settings change
|
||||
const userInfo = CloudService.instance.getUserInfo()
|
||||
if (userInfo && CloudService.instance.cloudAPI) {
|
||||
try {
|
||||
const config = await CloudService.instance.cloudAPI.bridgeConfig()
|
||||
|
||||
const isCloudAgent =
|
||||
typeof process.env.ROO_CODE_CLOUD_TOKEN === "string" && process.env.ROO_CODE_CLOUD_TOKEN.length > 0
|
||||
|
||||
const remoteControlEnabled = isCloudAgent
|
||||
? true
|
||||
: (CloudService.instance.getUserSettings()?.settings?.extensionBridgeEnabled ?? false)
|
||||
|
||||
cloudLogger(`[CloudService] Settings updated - remoteControlEnabled = ${remoteControlEnabled}`)
|
||||
|
||||
ExtensionBridgeService.handleRemoteControlState(
|
||||
userInfo,
|
||||
remoteControlEnabled,
|
||||
{
|
||||
...config,
|
||||
provider,
|
||||
sessionId: vscode.env.sessionId,
|
||||
},
|
||||
cloudLogger,
|
||||
)
|
||||
} catch (error) {
|
||||
cloudLogger(
|
||||
`[CloudService] Failed to update ExtensionBridgeService on settings change: ${error instanceof Error ? error.message : String(error)}`,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
postStateListener()
|
||||
}
|
||||
|
||||
userInfoHandler = async ({ userInfo }: { userInfo: CloudUserInfo }) => {
|
||||
postStateListener()
|
||||
|
|
@ -147,9 +183,13 @@ export async function activate(context: vscode.ExtensionContext) {
|
|||
|
||||
cloudLogger(`[CloudService] isCloudAgent = ${isCloudAgent}, socketBridgeUrl = ${config.socketBridgeUrl}`)
|
||||
|
||||
const remoteControlEnabled = isCloudAgent
|
||||
? true
|
||||
: (CloudService.instance.getUserSettings()?.settings?.extensionBridgeEnabled ?? false)
|
||||
|
||||
ExtensionBridgeService.handleRemoteControlState(
|
||||
userInfo,
|
||||
isCloudAgent ? true : contextProxy.getValue("remoteControlEnabled"),
|
||||
remoteControlEnabled,
|
||||
{
|
||||
...config,
|
||||
provider,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue