Skip to content

Commit 96945cd

Browse files
committed
Merge remote-tracking branch 'origin/main' into feat/context-proxy
2 parents f1de714 + 2e41376 commit 96945cd

37 files changed

+1446
-1270
lines changed

package.json

Lines changed: 0 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -128,31 +128,6 @@
128128
"command": "roo-cline.addToContext",
129129
"title": "Roo Code: Add To Context",
130130
"category": "Roo Code"
131-
},
132-
{
133-
"command": "roo-cline.terminalAddToContext",
134-
"title": "Roo Code: Add Terminal Content to Context",
135-
"category": "Terminal"
136-
},
137-
{
138-
"command": "roo-cline.terminalFixCommand",
139-
"title": "Roo Code: Fix This Command",
140-
"category": "Terminal"
141-
},
142-
{
143-
"command": "roo-cline.terminalExplainCommand",
144-
"title": "Roo Code: Explain This Command",
145-
"category": "Terminal"
146-
},
147-
{
148-
"command": "roo-cline.terminalFixCommandInCurrentTask",
149-
"title": "Roo Code: Fix This Command (Current Task)",
150-
"category": "Terminal"
151-
},
152-
{
153-
"command": "roo-cline.terminalExplainCommandInCurrentTask",
154-
"title": "Roo Code: Explain This Command (Current Task)",
155-
"category": "Terminal"
156131
}
157132
],
158133
"menus": {
@@ -178,28 +153,6 @@
178153
"group": "Roo Code@4"
179154
}
180155
],
181-
"terminal/context": [
182-
{
183-
"command": "roo-cline.terminalAddToContext",
184-
"group": "Roo Code@1"
185-
},
186-
{
187-
"command": "roo-cline.terminalFixCommand",
188-
"group": "Roo Code@2"
189-
},
190-
{
191-
"command": "roo-cline.terminalExplainCommand",
192-
"group": "Roo Code@3"
193-
},
194-
{
195-
"command": "roo-cline.terminalFixCommandInCurrentTask",
196-
"group": "Roo Code@5"
197-
},
198-
{
199-
"command": "roo-cline.terminalExplainCommandInCurrentTask",
200-
"group": "Roo Code@6"
201-
}
202-
],
203156
"view/title": [
204157
{
205158
"command": "roo-cline.plusButtonClicked",

src/activate/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
export { handleUri } from "./handleUri"
22
export { registerCommands } from "./registerCommands"
33
export { registerCodeActions } from "./registerCodeActions"
4-
export { registerTerminalActions } from "./registerTerminalActions"

src/activate/registerTerminalActions.ts

Lines changed: 0 additions & 81 deletions
This file was deleted.

src/core/Cline.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import getFolderSize from "get-folder-size"
1010
import * as path from "path"
1111
import { serializeError } from "serialize-error"
1212
import * as vscode from "vscode"
13+
1314
import { ApiHandler, buildApiHandler } from "../api"
1415
import { ApiStream } from "../api/transform/stream"
1516
import { DIFF_VIEW_URI_SCHEME, DiffViewProvider } from "../integrations/editor/DiffViewProvider"
@@ -31,6 +32,7 @@ import { UrlContentFetcher } from "../services/browser/UrlContentFetcher"
3132
import { listFiles } from "../services/glob/list-files"
3233
import { regexSearchFiles } from "../services/ripgrep"
3334
import { parseSourceCodeForDefinitionsTopLevel } from "../services/tree-sitter"
35+
import { CheckpointStorage } from "../shared/checkpoints"
3436
import { ApiConfiguration } from "../shared/api"
3537
import { findLastIndex } from "../shared/array"
3638
import { combineApiRequests } from "../shared/combineApiRequests"
@@ -81,7 +83,7 @@ export type ClineOptions = {
8183
customInstructions?: string
8284
enableDiff?: boolean
8385
enableCheckpoints?: boolean
84-
checkpointStorage?: "task" | "workspace"
86+
checkpointStorage?: CheckpointStorage
8587
fuzzyMatchThreshold?: number
8688
task?: string
8789
images?: string[]
@@ -121,7 +123,7 @@ export class Cline {
121123

122124
// checkpoints
123125
private enableCheckpoints: boolean
124-
private checkpointStorage: "task" | "workspace"
126+
private checkpointStorage: CheckpointStorage
125127
private checkpointService?: RepoPerTaskCheckpointService | RepoPerWorkspaceCheckpointService
126128

127129
// streaming

src/core/webview/ClineProvider.ts

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import * as vscode from "vscode"
99
import simpleGit from "simple-git"
1010

1111
import { ApiConfiguration, ApiProvider, ModelInfo, API_CONFIG_KEYS } from "../../shared/api"
12+
import { CheckpointStorage } from "../../shared/checkpoints"
1213
import { findLast } from "../../shared/array"
1314
import { CustomSupportPrompts, supportPrompt } from "../../shared/support-prompt"
1415
import { GlobalFileNames } from "../../shared/globalFileNames"
@@ -316,11 +317,13 @@ export class ClineProvider implements vscode.WebviewViewProvider {
316317

317318
public async initClineWithTask(task?: string, images?: string[]) {
318319
await this.clearTask()
320+
319321
const {
320322
apiConfiguration,
321323
customModePrompts,
322-
diffEnabled,
324+
diffEnabled: enableDiff,
323325
enableCheckpoints,
326+
checkpointStorage,
324327
fuzzyMatchThreshold,
325328
mode,
326329
customInstructions: globalInstructions,
@@ -334,8 +337,9 @@ export class ClineProvider implements vscode.WebviewViewProvider {
334337
provider: this,
335338
apiConfiguration,
336339
customInstructions: effectiveInstructions,
337-
enableDiff: diffEnabled,
340+
enableDiff,
338341
enableCheckpoints,
342+
checkpointStorage,
339343
fuzzyMatchThreshold,
340344
task,
341345
images,
@@ -349,8 +353,9 @@ export class ClineProvider implements vscode.WebviewViewProvider {
349353
const {
350354
apiConfiguration,
351355
customModePrompts,
352-
diffEnabled,
356+
diffEnabled: enableDiff,
353357
enableCheckpoints,
358+
checkpointStorage,
354359
fuzzyMatchThreshold,
355360
mode,
356361
customInstructions: globalInstructions,
@@ -360,12 +365,17 @@ export class ClineProvider implements vscode.WebviewViewProvider {
360365
const modePrompt = customModePrompts?.[mode] as PromptComponent
361366
const effectiveInstructions = [globalInstructions, modePrompt?.customInstructions].filter(Boolean).join("\n\n")
362367

368+
// TODO: The `checkpointStorage` value should be derived from the
369+
// task data on disk; the current setting could be different than
370+
// the setting at the time the task was created.
371+
363372
this.cline = new Cline({
364373
provider: this,
365374
apiConfiguration,
366375
customInstructions: effectiveInstructions,
367-
enableDiff: diffEnabled,
376+
enableDiff,
368377
enableCheckpoints,
378+
checkpointStorage,
369379
fuzzyMatchThreshold,
370380
historyItem,
371381
experiments,
@@ -1035,6 +1045,12 @@ export class ClineProvider implements vscode.WebviewViewProvider {
10351045
await this.updateGlobalState("enableCheckpoints", enableCheckpoints)
10361046
await this.postStateToWebview()
10371047
break
1048+
case "checkpointStorage":
1049+
console.log(`[ClineProvider] checkpointStorage: ${message.text}`)
1050+
const checkpointStorage = message.text ?? "task"
1051+
await this.updateGlobalState("checkpointStorage", checkpointStorage)
1052+
await this.postStateToWebview()
1053+
break
10381054
case "browserViewportSize":
10391055
const browserViewportSize = message.text ?? "900x600"
10401056
await this.updateGlobalState("browserViewportSize", browserViewportSize)
@@ -1875,21 +1891,8 @@ export class ClineProvider implements vscode.WebviewViewProvider {
18751891
await fs.unlink(legacyMessagesFilePath)
18761892
}
18771893

1878-
const { enableCheckpoints } = await this.getState()
1879-
const baseDir = vscode.workspace.workspaceFolders?.map((folder) => folder.uri.fsPath).at(0)
1880-
1881-
// Delete checkpoints branch.
1882-
if (enableCheckpoints && baseDir) {
1883-
const branchSummary = await simpleGit(baseDir)
1884-
.branch(["-D", `roo-code-checkpoints-${id}`])
1885-
.catch(() => undefined)
1886-
1887-
if (branchSummary) {
1888-
console.log(`[deleteTaskWithId${id}] deleted checkpoints branch`)
1889-
}
1890-
}
1891-
1892-
// Delete checkpoints directory
1894+
// Delete checkpoints directory.
1895+
// TODO: Also delete the workspace branch if it exists.
18931896
const checkpointsDir = path.join(taskDirPath, "checkpoints")
18941897

18951898
if (await fileExistsAtPath(checkpointsDir)) {
@@ -1936,6 +1939,7 @@ export class ClineProvider implements vscode.WebviewViewProvider {
19361939
soundEnabled,
19371940
diffEnabled,
19381941
enableCheckpoints,
1942+
checkpointStorage,
19391943
taskHistory,
19401944
soundVolume,
19411945
browserViewportSize,
@@ -1986,6 +1990,7 @@ export class ClineProvider implements vscode.WebviewViewProvider {
19861990
soundEnabled: soundEnabled ?? false,
19871991
diffEnabled: diffEnabled ?? true,
19881992
enableCheckpoints: enableCheckpoints ?? true,
1993+
checkpointStorage: checkpointStorage ?? "task",
19891994
shouldShowAnnouncement: lastShownAnnouncementId !== this.latestAnnouncementId,
19901995
allowedCommands,
19911996
soundVolume: soundVolume ?? 0.5,
@@ -2140,6 +2145,7 @@ export class ClineProvider implements vscode.WebviewViewProvider {
21402145
soundEnabled: stateValues.soundEnabled ?? false,
21412146
diffEnabled: stateValues.diffEnabled ?? true,
21422147
enableCheckpoints: stateValues.enableCheckpoints ?? false,
2148+
checkpointStorage: stateValues.checkpointStorage ?? "task",
21432149
soundVolume: stateValues.soundVolume,
21442150
browserViewportSize: stateValues.browserViewportSize ?? "900x600",
21452151
screenshotQuality: stateValues.screenshotQuality ?? 75,

src/core/webview/__tests__/ClineProvider.test.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -417,6 +417,7 @@ describe("ClineProvider", () => {
417417
soundEnabled: false,
418418
diffEnabled: false,
419419
enableCheckpoints: false,
420+
checkpointStorage: "task",
420421
writeDelayMs: 1000,
421422
browserViewportSize: "900x600",
422423
fuzzyMatchThreshold: 1.0,
@@ -744,6 +745,7 @@ describe("ClineProvider", () => {
744745
mode: "code",
745746
diffEnabled: true,
746747
enableCheckpoints: false,
748+
checkpointStorage: "task",
747749
fuzzyMatchThreshold: 1.0,
748750
experiments: experimentDefault,
749751
} as any)
@@ -762,6 +764,7 @@ describe("ClineProvider", () => {
762764
customInstructions: modeCustomInstructions,
763765
enableDiff: true,
764766
enableCheckpoints: false,
767+
checkpointStorage: "task",
765768
fuzzyMatchThreshold: 1.0,
766769
task: "Test task",
767770
experiments: experimentDefault,

src/extension.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { createClineAPI } from "./exports"
55
import "./utils/path" // Necessary to have access to String.prototype.toPosix.
66
import { CodeActionProvider } from "./core/CodeActionProvider"
77
import { DIFF_VIEW_URI_SCHEME } from "./integrations/editor/DiffViewProvider"
8-
import { handleUri, registerCommands, registerCodeActions, registerTerminalActions } from "./activate"
8+
import { handleUri, registerCommands, registerCodeActions } from "./activate"
99
import { McpServerManager } from "./services/mcp/McpServerManager"
1010

1111
/**
@@ -81,12 +81,11 @@ export function activate(context: vscode.ExtensionContext) {
8181
)
8282

8383
registerCodeActions(context)
84-
registerTerminalActions(context)
8584

8685
return createClineAPI(outputChannel, sidebarProvider)
8786
}
8887

89-
// This method is called when your extension is deactivated
88+
// This method is called when your extension is deactivated.
9089
export async function deactivate() {
9190
outputChannel.appendLine("Roo-Code extension deactivated")
9291
// Clean up MCP server manager

src/shared/ExtensionMessage.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { GitCommit } from "../utils/git"
77
import { Mode, CustomModePrompts, ModeConfig } from "./modes"
88
import { CustomSupportPrompts } from "./support-prompt"
99
import { ExperimentId } from "./experiments"
10+
import { CheckpointStorage } from "./checkpoints"
1011

1112
export interface LanguageModelChatSelector {
1213
vendor?: string
@@ -114,6 +115,7 @@ export interface ExtensionState {
114115
soundVolume?: number
115116
diffEnabled?: boolean
116117
enableCheckpoints: boolean
118+
checkpointStorage: CheckpointStorage
117119
browserViewportSize?: string
118120
screenshotQuality?: number
119121
fuzzyMatchThreshold?: number

src/shared/WebviewMessage.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ export interface WebviewMessage {
5353
| "soundVolume"
5454
| "diffEnabled"
5555
| "enableCheckpoints"
56+
| "checkpointStorage"
5657
| "browserViewportSize"
5758
| "screenshotQuality"
5859
| "openMcpSettings"

src/shared/checkpoints.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
export type CheckpointStorage = "task" | "workspace"
2+
3+
export const isCheckpointStorage = (value: string): value is CheckpointStorage => {
4+
return value === "task" || value === "workspace"
5+
}

0 commit comments

Comments
 (0)