From c81441ecfc37a8fcc7b5eed4131b1f14100e7be0 Mon Sep 17 00:00:00 2001 From: Bohdan Triapitsyn Date: Tue, 19 May 2026 15:53:54 +0300 Subject: [PATCH] feat: improve VS Code editor chat actions Targets active editor chat before falling back to sidebar Adds session open-in-editor action in the VS Code sidebar Uses attachment badges for VS Code file and selection context --- .../ui/src/components/layout/VSCodeLayout.tsx | 16 +- .../session/sidebar/SessionNodeItem.tsx | 48 +++- packages/ui/src/lib/i18n/messages/en.ts | 1 + packages/ui/src/lib/i18n/messages/es.ts | 1 + packages/ui/src/lib/i18n/messages/ko.ts | 1 + packages/ui/src/lib/i18n/messages/pl.ts | 1 + packages/ui/src/lib/i18n/messages/pt-BR.ts | 1 + packages/ui/src/lib/i18n/messages/uk.ts | 1 + packages/ui/src/lib/i18n/messages/zh-CN.ts | 1 + packages/vscode/src/ChatViewProvider.ts | 31 +++ .../vscode/src/SessionEditorPanelProvider.ts | 206 ++++++++++++++++++ packages/vscode/src/extension.ts | 60 +++-- packages/vscode/webview/main.tsx | 51 ++++- 13 files changed, 389 insertions(+), 30 deletions(-) diff --git a/packages/ui/src/components/layout/VSCodeLayout.tsx b/packages/ui/src/components/layout/VSCodeLayout.tsx index 4467a453..bf4f1c7f 100644 --- a/packages/ui/src/components/layout/VSCodeLayout.tsx +++ b/packages/ui/src/components/layout/VSCodeLayout.tsx @@ -187,6 +187,19 @@ export const VSCodeLayout: React.FC = () => { void vscodeApi.executeCommand('openchamber.setActiveSession', currentSessionId, activeSessionTitle); }, [activeSessionTitle, currentSessionId, runtimeApis.vscode]); + React.useEffect(() => { + if (viewMode !== 'editor' || !currentSessionId || !activeSessionTitle) { + return; + } + + const vscodeApi = runtimeApis.vscode; + if (!vscodeApi) { + return; + } + + void vscodeApi.executeCommand('openchamber.updateSessionEditorTitle', currentSessionId, activeSessionTitle); + }, [activeSessionTitle, currentSessionId, runtimeApis.vscode, viewMode]); + // If the active session disappears (e.g., deleted), go back to sessions list React.useEffect(() => { if (viewMode === 'editor') { @@ -709,7 +722,7 @@ const VSCodeHeader: React.FC = ({ title, showBack, onBack, on @@ -717,6 +730,7 @@ const VSCodeHeader: React.FC = ({ title, showBack, onBack, on ) : (

{title}

)} +
{onNewSession && ( + + + {t('sessions.sidebar.session.actions.openInEditor')} + + + ) : null}