Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
3396c9e
fix(activate): target title-bar commands to their click-origin instance
easonliang28 Sep 4, 2026
a143267
ci: re-trigger PR review-state labeler reconciliation (no-op commit)
easonliang28 Sep 7, 2026
723d871
fix(activate): serialize overlapping openClineInNewTab calls and hard…
easonliang28 Sep 7, 2026
c3027c8
test(activate): pin openClineInNewTab creation branches and strengthe…
easonliang28 Sep 7, 2026
00eb15f
fix(activate): harden tab creation serialization and centralize title…
easonliang28 Sep 7, 2026
ae038ab
test(activate): pin tracked tab identity against the created panel
easonliang28 Sep 7, 2026
99662bd
test(activate): pin the tracked tab panel passed to getInstanceForView
easonliang28 Sep 7, 2026
7be370a
feat(provider): persist per-view view-state identity and durable view…
easonliang28 Sep 5, 2026
8c13975
fix(provider): track in-flight view-state mutations per field and exc…
easonliang28 Sep 7, 2026
dc2e9cd
fix(provider): restore previous view-state id when registration persi…
easonliang28 Sep 7, 2026
d677e7b
fix(provider): reject invalid view-state modes and sync profile mutat…
easonliang28 Sep 8, 2026
20c3892
fix(package): move command palette entries to the commandPalette menu…
easonliang28 Sep 8, 2026
ccf0331
fix(core/webview): merge view-local state into getState for per-view …
easonliang28 Sep 6, 2026
9274d5a
fix(core/webview): purge deleted provider profile from the settings s…
easonliang28 Sep 7, 2026
6767ae1
fix(core/webview): treat already-gone profile secrets as prunable on …
easonliang28 Sep 7, 2026
6bada08
fix(webview): send stable view-state id on launch and re-pin per-view…
easonliang28 Sep 6, 2026
674be5f
fix(webview): keep view-state registration and storage writes failure…
easonliang28 Sep 7, 2026
6990e89
fix(webview): apply extension-side normalization to persisted view-st…
easonliang28 Sep 7, 2026
350ec7a
test(webview): add parallelMode spec with viewStates pruning edges an…
easonliang28 Sep 6, 2026
d64f49e
fix(webview): isolate parallel mode and provider profile writes
easonliang28 Sep 6, 2026
9a71116
fix(api): route setConfiguration through ClineProvider.setValues
easonliang28 Sep 7, 2026
1e66642
test(extension): add setValues to the api-configuration spec provider…
easonliang28 Sep 7, 2026
b80d59a
fix(webview): leave the surviving pin untouched in deleteProviderProfile
easonliang28 Sep 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions packages/types/src/__tests__/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
import { GLOBAL_STATE_KEYS } from "../index.js"

describe("GLOBAL_STATE_KEYS", () => {
it("should contain registered durable per-view state", () => {
expect(GLOBAL_STATE_KEYS).toContain("viewStates")
})

it("should contain provider settings keys", () => {
expect(GLOBAL_STATE_KEYS).toContain("autoApprovalEnabled")
})
Expand All @@ -13,6 +17,7 @@ describe("GLOBAL_STATE_KEYS", () => {

it("should not contain secret state keys", () => {
expect(GLOBAL_STATE_KEYS).not.toContain("openRouterApiKey")
expect(GLOBAL_STATE_KEYS).not.toContain("apiKey")
})

it("should contain OpenAI Compatible base URL setting", () => {
Expand Down
10 changes: 10 additions & 0 deletions packages/types/src/global-settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,15 @@ export const MAX_CHECKPOINT_TIMEOUT_SECONDS = 60
*/
export const DEFAULT_CHECKPOINT_TIMEOUT_SECONDS = 15

/**
* Persisted non-secret selections for a stable webview instance.
*/
export const viewStateSchema = z.object({
mode: z.string().optional(),
currentApiConfigName: z.string().optional(),
updatedAt: z.number().optional(),
})

/**
* GlobalSettings
*/
Expand All @@ -107,6 +116,7 @@ export const globalSettingsSchema = z.object({
currentApiConfigName: z.string().optional(),
listApiConfigMeta: z.array(providerSettingsEntrySchema).optional(),
pinnedApiConfigs: z.record(z.string(), z.boolean()).optional(),
viewStates: z.record(z.string(), viewStateSchema).optional(),

lastShownAnnouncementId: z.string().optional(),
customInstructions: z.string().optional(),
Expand Down
1 change: 1 addition & 0 deletions packages/types/src/vscode-extension-host.ts
Original file line number Diff line number Diff line change
Expand Up @@ -647,6 +647,7 @@ export interface WebviewMessage {
| "openRulesDirectory"
| "themeFixtureProbeResponse"
text?: string
viewStateId?: string
taskId?: string
editedMessageContent?: string
tab?: "settings" | "history" | "mcp" | "modes" | "chat" | "marketplace" | "cloud"
Expand Down
8 changes: 8 additions & 0 deletions packages/types/src/vscode.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,14 @@ export const commandIds = [
"popoutButtonClicked",
"settingsButtonClicked",

// Editor-tab (popped-out) surface variants of the title-bar buttons. The
// shared ids above target the sidebar click origin, so the tab surface
// needs its own ids (see registerCommands.ts getTabProvider).
"plusButtonClickedInTab",
"settingsButtonClickedInTab",
"marketplaceButtonClickedInTab",
"historyButtonClickedInTab",

"openInNewTab",

"newTask",
Expand Down
Loading
Loading