diff --git a/CHANGELOG.md b/CHANGELOG.md index b4e8131ce..dae84d120 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -126,8 +126,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 the VS Code Agent View can show when a thread or agent lane is on another branch. Agent View and restore-point data now auto-refresh on a configurable read-only interval so branch/workspace changes become visible without a - manual refresh. This answers the VS Code GUI lane without exposing chat - webviews, inline edits, or retry/undo/restore runtime mutation endpoints yet + manual refresh. Agent View refreshes keep thread branch/workspace rows + independent from restore-point loading, so a snapshot-listing failure no + longer clears already-available thread metadata. This answers the VS Code GUI + lane without exposing chat webviews, inline edits, or retry/undo/restore + runtime mutation endpoints yet (#461, #462, #480, #1217, #2341, #1584, #2327, #2580, #2808). Thanks @AiurArtanis for the Agent View prompt, @lbcheng888 for the earlier scaffold, @gaord for the GUI runtime API direction, @douglarek, @caeserchen, and @nightt5879 for diff --git a/crates/tui/CHANGELOG.md b/crates/tui/CHANGELOG.md index b4e8131ce..dae84d120 100644 --- a/crates/tui/CHANGELOG.md +++ b/crates/tui/CHANGELOG.md @@ -126,8 +126,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 the VS Code Agent View can show when a thread or agent lane is on another branch. Agent View and restore-point data now auto-refresh on a configurable read-only interval so branch/workspace changes become visible without a - manual refresh. This answers the VS Code GUI lane without exposing chat - webviews, inline edits, or retry/undo/restore runtime mutation endpoints yet + manual refresh. Agent View refreshes keep thread branch/workspace rows + independent from restore-point loading, so a snapshot-listing failure no + longer clears already-available thread metadata. This answers the VS Code GUI + lane without exposing chat webviews, inline edits, or retry/undo/restore + runtime mutation endpoints yet (#461, #462, #480, #1217, #2341, #1584, #2327, #2580, #2808). Thanks @AiurArtanis for the Agent View prompt, @lbcheng888 for the earlier scaffold, @gaord for the GUI runtime API direction, @douglarek, @caeserchen, and @nightt5879 for diff --git a/extensions/vscode/out/extension.js b/extensions/vscode/out/extension.js index 8097d7add..fb565fc63 100644 --- a/extensions/vscode/out/extension.js +++ b/extensions/vscode/out/extension.js @@ -59,6 +59,30 @@ function activate(context) { statusView.updateSnapshots(snapshots, "Showing recent restore points."); output.appendLine(`Loaded ${snapshots.length} runtime restore points.`); }; + const refreshAgentViewDetails = async (showWarning) => { + try { + await refreshAgentView(); + } + catch (error) { + const detail = error instanceof Error ? error.message : String(error); + statusView.updateThreads([], "Runtime thread summaries unavailable."); + output.appendLine(`Runtime thread summaries unavailable: ${detail}`); + if (showWarning) { + void vscode.window.showWarningMessage(detail); + } + } + try { + await refreshSnapshots(); + } + catch (error) { + const detail = error instanceof Error ? error.message : String(error); + statusView.updateSnapshots([], detail); + output.appendLine(`Runtime restore points unavailable: ${detail}`); + if (showWarning) { + void vscode.window.showWarningMessage(detail); + } + } + }; const updateStatus = (text, tooltip) => { status.text = text; status.tooltip = tooltip; @@ -74,16 +98,7 @@ function activate(context) { switch (state.kind) { case "connected": updateStatus("$(check) CodeWhale", state.detail); - try { - await refreshAgentView(); - await refreshSnapshots(); - } - catch (error) { - const detail = error instanceof Error ? error.message : String(error); - statusView.updateThreads([], "Runtime thread summaries unavailable."); - statusView.updateSnapshots([], detail); - output.appendLine(`Runtime Agent View details unavailable: ${detail}`); - } + await refreshAgentViewDetails(false); break; case "auth-required": updateStatus("$(lock) CodeWhale", state.detail); @@ -157,17 +172,7 @@ function activate(context) { return await checkAndRefreshRuntime(true, true); })); context.subscriptions.push(vscode.commands.registerCommand("codewhale.refreshAgentView", async () => { - try { - await refreshAgentView(); - await refreshSnapshots(); - } - catch (error) { - const detail = error instanceof Error ? error.message : String(error); - statusView.updateThreads([], "Runtime thread summaries unavailable."); - statusView.updateSnapshots([], detail); - output.appendLine(`Runtime Agent View details unavailable: ${detail}`); - void vscode.window.showWarningMessage(detail); - } + await refreshAgentViewDetails(true); })); context.subscriptions.push(vscode.commands.registerCommand("codewhale.refreshSnapshots", async () => { try { diff --git a/extensions/vscode/out/extension.js.map b/extensions/vscode/out/extension.js.map index f85ff5675..3bd3bbdf9 100644 --- a/extensions/vscode/out/extension.js.map +++ b/extensions/vscode/out/extension.js.map @@ -1 +1 @@ -{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/vscode/src/extension.ts b/extensions/vscode/src/extension.ts index bc5aa6a04..56c62edc8 100644 --- a/extensions/vscode/src/extension.ts +++ b/extensions/vscode/src/extension.ts @@ -38,6 +38,30 @@ export function activate(context: vscode.ExtensionContext): void { output.appendLine(`Loaded ${snapshots.length} runtime restore points.`); }; + const refreshAgentViewDetails = async (showWarning: boolean): Promise => { + try { + await refreshAgentView(); + } catch (error: unknown) { + const detail = error instanceof Error ? error.message : String(error); + statusView.updateThreads([], "Runtime thread summaries unavailable."); + output.appendLine(`Runtime thread summaries unavailable: ${detail}`); + if (showWarning) { + void vscode.window.showWarningMessage(detail); + } + } + + try { + await refreshSnapshots(); + } catch (error: unknown) { + const detail = error instanceof Error ? error.message : String(error); + statusView.updateSnapshots([], detail); + output.appendLine(`Runtime restore points unavailable: ${detail}`); + if (showWarning) { + void vscode.window.showWarningMessage(detail); + } + } + }; + const updateStatus = (text: string, tooltip: string): void => { status.text = text; status.tooltip = tooltip; @@ -59,15 +83,7 @@ export function activate(context: vscode.ExtensionContext): void { switch (state.kind) { case "connected": updateStatus("$(check) CodeWhale", state.detail); - try { - await refreshAgentView(); - await refreshSnapshots(); - } catch (error: unknown) { - const detail = error instanceof Error ? error.message : String(error); - statusView.updateThreads([], "Runtime thread summaries unavailable."); - statusView.updateSnapshots([], detail); - output.appendLine(`Runtime Agent View details unavailable: ${detail}`); - } + await refreshAgentViewDetails(false); break; case "auth-required": updateStatus("$(lock) CodeWhale", state.detail); @@ -161,16 +177,7 @@ export function activate(context: vscode.ExtensionContext): void { context.subscriptions.push( vscode.commands.registerCommand("codewhale.refreshAgentView", async () => { - try { - await refreshAgentView(); - await refreshSnapshots(); - } catch (error: unknown) { - const detail = error instanceof Error ? error.message : String(error); - statusView.updateThreads([], "Runtime thread summaries unavailable."); - statusView.updateSnapshots([], detail); - output.appendLine(`Runtime Agent View details unavailable: ${detail}`); - void vscode.window.showWarningMessage(detail); - } + await refreshAgentViewDetails(true); }), );