Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
98 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
9004f5b
fix(webview): invalidate live sibling view state on reset and setting…
easonliang28 Sep 7, 2026
4f4f69a
fix(webview): sync view-local state with mode and profile mutations a…
easonliang28 Sep 8, 2026
93524f9
fix(core/webview): merge view-local state into getState for per-view …
easonliang28 Sep 6, 2026
36247ad
fix(core/webview): purge deleted provider profile from the settings s…
easonliang28 Sep 7, 2026
7f8c5f9
fix(core/webview): treat already-gone profile secrets as prunable on …
easonliang28 Sep 7, 2026
a440db1
fix(webview): sync view-local mode buffer on mode switch
easonliang28 Sep 8, 2026
31a1d80
fix(config): branch profile deletion on a typed not-found signal and …
easonliang28 Sep 8, 2026
364026d
fix(webview): send stable view-state id on launch and re-pin per-view…
easonliang28 Sep 6, 2026
ac6bcd5
fix(webview): keep view-state registration and storage writes failure…
easonliang28 Sep 7, 2026
54e39c6
fix(webview): apply extension-side normalization to persisted view-st…
easonliang28 Sep 7, 2026
9802cf9
fix(webview): re-pin to a valid global selection when the first liste…
easonliang28 Sep 8, 2026
dfcc3e7
fix(core/webview): keep shared provider settings out of the view-loca…
easonliang28 Sep 8, 2026
6ee970a
test(webview): add parallelMode spec with viewStates pruning edges an…
easonliang28 Sep 6, 2026
c268f43
test(webview): pin exact persisted view-state survivors and split the…
easonliang28 Sep 8, 2026
b8f5af8
fix(webview): isolate parallel mode and provider profile writes
easonliang28 Sep 6, 2026
01982d5
fix(api): route setConfiguration through ClineProvider.setValues
easonliang28 Sep 7, 2026
d337499
test(extension): add setValues to the api-configuration spec provider…
easonliang28 Sep 7, 2026
0df7399
fix(webview): leave the surviving pin untouched in deleteProviderProfile
easonliang28 Sep 8, 2026
065116c
fix(webview): sync the view-local buffer through wrapped apiConfigura…
easonliang28 Sep 8, 2026
b6194f7
Merge remote-tracking branch 'upstream/main' into vps2/f1a-view-identity
easonliang28 Sep 14, 2026
d2392d0
Merge remote-tracking branch 'upstream/main' into vps2/f1b-getstate-m…
easonliang28 Sep 14, 2026
c822ede
Merge remote-tracking branch 'upstream/main' into vps2/f1c-webview-id…
easonliang28 Sep 14, 2026
043ff74
fix(provider): close mode-switch abort window, drop bracket access, c…
easonliang28 Sep 14, 2026
cfc1593
Merge latest vps2/f1a-view-identity (CR walkthrough fixes)
easonliang28 Sep 14, 2026
0bf1040
test(provider): cover abort and pinned profile deletion guards
easonliang28 Sep 14, 2026
919e1ac
test(provider): assert profile settings write identity
easonliang28 Sep 14, 2026
a460bc4
Merge branch 'vps2/f1a-view-identity' into vps2/f1b-getstate-merge
easonliang28 Sep 14, 2026
58faafc
Merge branch 'vps2/f1b-getstate-merge' into vps2/f1c-webview-identity
easonliang28 Sep 14, 2026
b952f98
fix(core/webview): keep shared provider settings out of the view-loca…
easonliang28 Sep 15, 2026
942b1c6
Merge commit 'b952f98d2' into vps2/f1c-webview-identity
easonliang28 Sep 15, 2026
c94b427
fix(provider): make mode switch cancellation atomic and preserve view…
easonliang28 Sep 15, 2026
72656bd
Merge commit 'c94b42781' into vps2/f1b-getstate-merge
easonliang28 Sep 15, 2026
3474381
Merge commit '72656bddb' into vps2/f1c-webview-identity
easonliang28 Sep 15, 2026
c9e5aa9
fix(core/webview): purge deleted provider profile from the settings s…
easonliang28 Sep 15, 2026
ff1a724
Merge commit 'c9e5aa907' into vps2/f1b-getstate-merge
easonliang28 Sep 15, 2026
c0d009e
Merge commit 'ff1a72493' into vps2/f1c-webview-identity
easonliang28 Sep 15, 2026
ea65968
fix(webview): refresh the view-local buffer on profile mutation and h…
easonliang28 Sep 23, 2026
5a87f90
Merge branch 'main' into vps2/f2-durable-viewstates
easonliang28 Sep 23, 2026
e6f730a
fix(webview): narrow deletion activation, target the shared-list writ…
easonliang28 Sep 23, 2026
9bf83e3
Merge branch 'main' into vps2/f4-cross-instance-reset
easonliang28 Sep 23, 2026
2c267de
Merge remote-tracking branch 'upstream/main' into fix-pr-1546
easonliang28 Sep 27, 2026
74a4585
Merge remote-tracking branch 'upstream/main' into fix-pr-1550
easonliang28 Sep 27, 2026
af6b470
Merge remote-tracking branch 'upstream/main' into fix-pr-1552
easonliang28 Sep 27, 2026
825265f
Merge remote-tracking branch 'upstream/main' into fix-pr-1555
easonliang28 Sep 27, 2026
9747b62
test: replace double assertions with single structural casts in view-…
easonliang28 Sep 27, 2026
18587d5
fix(core/webview): clear buffered apiConfiguration overlay on profile…
easonliang28 Sep 27, 2026
9c9da36
Merge latest vps2/f1a-view-identity (single-cast test doubles)
easonliang28 Sep 27, 2026
7059313
test(webview): replace double assertions with single structural casts…
easonliang28 Sep 27, 2026
ad94239
test(webview): cover the direct-activation overlay clear
easonliang28 Sep 27, 2026
20f3cbd
Merge latest vps2/f1b-getstate-merge (single-cast test doubles)
easonliang28 Sep 27, 2026
f320b73
test(webview): replace double assertions in the launch suite with sin…
easonliang28 Sep 27, 2026
cec57b2
Merge commit 'f320b7387' into vps2/f2-durable-viewstates
easonliang28 Sep 27, 2026
832798b
test(webview): assert profile-mutation state semantics via the constr…
easonliang28 Sep 27, 2026
267bf35
test(webview): replace double assertions in the parallelMode spec wit…
easonliang28 Sep 27, 2026
47a9d44
Merge remote-tracking branch 'upstream/main' into vps2/f3-mode-profil…
easonliang28 Sep 27, 2026
830daec
Merge commit '267bf35e5' into vps2/f3-mode-profile-writes
easonliang28 Sep 27, 2026
3b1c6bf
test(webview): align profile-mutation specs with the cleared-buffer s…
easonliang28 Sep 27, 2026
84e5c52
test(webview): cover the handleModeSwitch rollback paths and corrupt-…
easonliang28 Sep 27, 2026
7154592
fix(webview): contain the abort rollback failure in handleModeSwitch
easonliang28 Sep 27, 2026
d47f14a
Merge branch 'vps2/f1a-view-identity' of https://github.com/easonLian…
easonliang28 Sep 27, 2026
3a24b1b
fix(webview): restore only the mode field when rolling back an aborte…
easonliang28 Sep 27, 2026
174dc68
Merge branch 'vps2/f1a-view-identity' of https://github.com/easonLian…
easonliang28 Sep 27, 2026
a14a38f
Merge remote-tracking branch 'upstream/main' into vps2/f4-cross-insta…
easonliang28 Sep 27, 2026
bbe4e8b
Merge branch 'vps2/f3-mode-profile-writes' of https://github.com/easo…
easonliang28 Sep 27, 2026
0d622de
fix: isolate sibling profile views across activation, delete, and tab…
easonliang28 Sep 28, 2026
ef139ae
test(webview): cover the sibling re-pin when a profile deletion early…
easonliang28 Sep 28, 2026
0535907
Merge remote-tracking branch 'origin/vps2/f3-mode-profile-writes' int…
easonliang28 Sep 28, 2026
00e9307
fix(webview): skip persistence for the launch-time re-pin activation
easonliang28 Sep 28, 2026
3ca9589
fix(tools): report switch_mode failure when the provider is released
easonliang28 Sep 28, 2026
bf0c438
fix(activate): log the focusInput drop when the tab panel has no live…
easonliang28 Sep 28, 2026
078643c
fix(webview): narrow the deletion fallback and de-duplicate the state…
easonliang28 Sep 28, 2026
66a6595
fix(webview): route the reset's durable viewStates clear through the …
easonliang28 Sep 28, 2026
bc81f30
fix(activate): make tab-panel tracking race-safe and keep hidden pane…
easonliang28 Sep 28, 2026
893df8a
test(activate): silence the equivalent StringLiteral mutant on the ca…
easonliang28 Sep 28, 2026
c9b08aa
test(activate): pin the history lookup to the re-pointed tracked panel
easonliang28 Sep 28, 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 @@ -100,6 +100,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 @@ -108,6 +117,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