Skip to content

Commit 783138c

Browse files
Lock down access to properties as far as reasonably possible
1 parent 1521e95 commit 783138c

File tree

1 file changed

+12
-14
lines changed

1 file changed

+12
-14
lines changed

src/core/webview/ClineProvider.ts

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -69,25 +69,23 @@ export class ClineProvider extends EventEmitter<ClineProviderEvents> implements
6969
private static activeInstances: Set<ClineProvider> = new Set()
7070
private disposables: vscode.Disposable[] = []
7171
private view?: vscode.WebviewView | vscode.WebviewPanel
72-
// not private, so it can be accessed from webviewMessageHandler
73-
// callers could update to get viewLaunched() getter function
74-
isViewLaunched = false
7572
private clineStack: Cline[] = []
76-
// not private, so it can be accessed from webviewMessageHandler
77-
workspaceTracker?: WorkspaceTracker
73+
private _workspaceTracker?: WorkspaceTracker // workSpaceTracker read-only for access outside this class
74+
public get workspaceTracker(): WorkspaceTracker | undefined {
75+
return this._workspaceTracker
76+
}
7877
protected mcpHub?: McpHub // Change from private to protected
79-
// not private, so it can be accessed from webviewMessageHandler
80-
latestAnnouncementId = "mar-30-2025-3-11" // update for v3.11.0 announcement
81-
// not private, so it can be accessed from webviewMessageHandler
82-
settingsImportedAt?: number
78+
79+
public isViewLaunched = false
80+
public settingsImportedAt?: number
81+
public readonly latestAnnouncementId = "mar-30-2025-3-11" // update for v3.11.0 announcement
8382
public readonly contextProxy: ContextProxy
8483
public readonly providerSettingsManager: ProviderSettingsManager
8584
public readonly customModesManager: CustomModesManager
8685

8786
constructor(
8887
readonly context: vscode.ExtensionContext,
89-
// not private, so it can be accessed from webviewMessageHandler
90-
readonly outputChannel: vscode.OutputChannel,
88+
private readonly outputChannel: vscode.OutputChannel,
9189
private readonly renderContext: "sidebar" | "editor" = "sidebar",
9290
) {
9391
super()
@@ -100,7 +98,7 @@ export class ClineProvider extends EventEmitter<ClineProviderEvents> implements
10098
// properties like mode and provider.
10199
telemetryService.setProvider(this)
102100

103-
this.workspaceTracker = new WorkspaceTracker(this)
101+
this._workspaceTracker = new WorkspaceTracker(this)
104102

105103
this.providerSettingsManager = new ProviderSettingsManager(this.context)
106104

@@ -216,8 +214,8 @@ export class ClineProvider extends EventEmitter<ClineProviderEvents> implements
216214
}
217215
}
218216

219-
this.workspaceTracker?.dispose()
220-
this.workspaceTracker = undefined
217+
this._workspaceTracker?.dispose()
218+
this._workspaceTracker = undefined
221219
this.mcpHub?.dispose()
222220
this.mcpHub = undefined
223221
this.customModesManager?.dispose()

0 commit comments

Comments
 (0)