Skip to content

Commit 643319f

Browse files
authored
setting auto approve settings on test server start (RooCodeInc#2800)
1 parent 0645ecc commit 643319f

File tree

1 file changed

+43
-1
lines changed

1 file changed

+43
-1
lines changed

src/services/test/TestServer.ts

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,58 @@ import * as http from "http"
22
import * as vscode from "vscode"
33
import { Logger } from "../../services/logging/Logger"
44
import { WebviewProvider } from "../../core/webview"
5+
import { AutoApprovalSettings } from "../../shared/AutoApprovalSettings"
6+
import { updateGlobalState, getAllExtensionState } from "../../core/storage/state"
57

68
let testServer: http.Server | undefined
79
let messageCatcherDisposable: vscode.Disposable | undefined
810

11+
/**
12+
* Updates the auto approval settings to enable all actions
13+
* @param context The VSCode extension context
14+
* @param provider The webview provider instance
15+
*/
16+
async function updateAutoApprovalSettings(context: vscode.ExtensionContext, provider?: WebviewProvider) {
17+
try {
18+
const { autoApprovalSettings } = await getAllExtensionState(context)
19+
20+
// Enable all actions
21+
const updatedSettings: AutoApprovalSettings = {
22+
...autoApprovalSettings,
23+
enabled: true,
24+
actions: {
25+
readFiles: true,
26+
editFiles: true,
27+
executeSafeCommands: true,
28+
executeAllCommands: true,
29+
useBrowser: false, // Keep browser disabled for tests
30+
useMcp: false, // Keep MCP disabled for tests
31+
},
32+
maxRequests: 100, // Increase max requests for tests
33+
}
34+
35+
await updateGlobalState(context, "autoApprovalSettings", updatedSettings)
36+
Logger.log("Auto approval settings updated for test mode")
37+
38+
// Update the webview with the new state
39+
if (provider?.controller) {
40+
await provider.controller.postStateToWebview()
41+
}
42+
} catch (error) {
43+
Logger.log(`Error updating auto approval settings: ${error}`)
44+
}
45+
}
46+
947
/**
1048
* Creates and starts an HTTP server for test automation
1149
* @param webviewProvider The webview provider instance to use for message catching
1250
* @returns The created HTTP server instance
1351
*/
1452
export function createTestServer(webviewProvider?: WebviewProvider): http.Server {
53+
// Update auto approval settings if webviewProvider is available
54+
if (webviewProvider?.controller?.context) {
55+
updateAutoApprovalSettings(webviewProvider.controller.context, webviewProvider)
56+
}
1557
const PORT = 9876
1658

1759
testServer = http.createServer((req, res) => {
@@ -126,7 +168,7 @@ export function createMessageCatcher(webviewProvider: WebviewProvider): vscode.D
126168
if (webviewProvider && webviewProvider.controller) {
127169
const originalPostMessageToWebview = webviewProvider.controller.postMessageToWebview
128170
webviewProvider.controller.postMessageToWebview = async (message) => {
129-
Logger.log("Cline message received: " + message.type)
171+
Logger.log("Cline message received: " + JSON.stringify(message))
130172
return originalPostMessageToWebview.call(webviewProvider.controller, message)
131173
}
132174
} else {

0 commit comments

Comments
 (0)