Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 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
5503a6b
fix(core/webview): merge view-local state into getState for per-view …
easonliang28 Sep 6, 2026
5ad08c8
fix(core/webview): purge deleted provider profile from the settings s…
easonliang28 Sep 7, 2026
2c18c70
fix(core/webview): treat already-gone profile secrets as prunable on …
easonliang28 Sep 7, 2026
b9cd5bc
fix(webview): send stable view-state id on launch and re-pin per-view…
easonliang28 Sep 6, 2026
81782f4
fix(webview): keep view-state registration and storage writes failure…
easonliang28 Sep 7, 2026
d54c488
fix(webview): apply extension-side normalization to persisted view-st…
easonliang28 Sep 7, 2026
d972b49
test(webview): add parallelMode spec with viewStates pruning edges an…
easonliang28 Sep 6, 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