From 499abdf26cd05f1a0f0356bb236bfe0c05d6c0eb Mon Sep 17 00:00:00 2001 From: Joaquin Coromina <75667013+bjoaquinc@users.noreply.github.com> Date: Sun, 30 Mar 2025 18:40:41 -0400 Subject: [PATCH 1/5] Fixed serverConfig.ts to pull voidVersion instead of version --- extensions/open-remote-ssh/src/serverConfig.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/extensions/open-remote-ssh/src/serverConfig.ts b/extensions/open-remote-ssh/src/serverConfig.ts index 3f2758fa..eb8224fb 100644 --- a/extensions/open-remote-ssh/src/serverConfig.ts +++ b/extensions/open-remote-ssh/src/serverConfig.ts @@ -32,12 +32,13 @@ export async function getVSCodeServerConfig(): Promise { const customServerBinaryName = vscode.workspace.getConfiguration('remote.SSH.experimental').get('serverBinaryName', ''); return { - version: vscode.version.replace('-insider', ''), commit: productJson.commit, quality: productJson.quality, release: productJson.release, serverApplicationName: customServerBinaryName || productJson.serverApplicationName, serverDataFolderName: productJson.serverDataFolderName, - serverDownloadUrlTemplate: productJson.serverDownloadUrlTemplate + serverDownloadUrlTemplate: productJson.serverDownloadUrlTemplate, + // Edited for Void + version: productJson.voidVersion || vscode.version.replace('-insider', ''), // Try void version first, fallback to vscode version }; } From 0294cb3b98f9b2cac61e01a600eafb56d12d2c2c Mon Sep 17 00:00:00 2001 From: Joaquin Coromina <75667013+bjoaquinc@users.noreply.github.com> Date: Sun, 30 Mar 2025 22:51:40 -0400 Subject: [PATCH 2/5] Removed the fall back, restored the original code and commented it out --- extensions/open-remote-ssh/src/serverConfig.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/extensions/open-remote-ssh/src/serverConfig.ts b/extensions/open-remote-ssh/src/serverConfig.ts index eb8224fb..6e22f7ba 100644 --- a/extensions/open-remote-ssh/src/serverConfig.ts +++ b/extensions/open-remote-ssh/src/serverConfig.ts @@ -32,6 +32,7 @@ export async function getVSCodeServerConfig(): Promise { const customServerBinaryName = vscode.workspace.getConfiguration('remote.SSH.experimental').get('serverBinaryName', ''); return { + // version: vscode.version.replace('-insider', ''), commit: productJson.commit, quality: productJson.quality, release: productJson.release, @@ -39,6 +40,6 @@ export async function getVSCodeServerConfig(): Promise { serverDataFolderName: productJson.serverDataFolderName, serverDownloadUrlTemplate: productJson.serverDownloadUrlTemplate, // Edited for Void - version: productJson.voidVersion || vscode.version.replace('-insider', ''), // Try void version first, fallback to vscode version + version: productJson.voidVersion }; } From e74cc15d71c829af4a9fcc9cffd697edd928a2e3 Mon Sep 17 00:00:00 2001 From: Andrew Pareles Date: Sun, 30 Mar 2025 20:44:06 -0700 Subject: [PATCH 3/5] minor UI improvements --- .../react/src/sidebar-tsx/SidebarChat.tsx | 28 ++++++++++++------- .../void/browser/react/src/util/services.tsx | 2 ++ .../react/src/void-settings-tsx/Settings.tsx | 7 +++++ 3 files changed, 27 insertions(+), 10 deletions(-) diff --git a/src/vs/workbench/contrib/void/browser/react/src/sidebar-tsx/SidebarChat.tsx b/src/vs/workbench/contrib/void/browser/react/src/sidebar-tsx/SidebarChat.tsx index 961b7f92..00b26d15 100644 --- a/src/vs/workbench/contrib/void/browser/react/src/sidebar-tsx/SidebarChat.tsx +++ b/src/vs/workbench/contrib/void/browser/react/src/sidebar-tsx/SidebarChat.tsx @@ -412,17 +412,20 @@ export const ButtonStop = ({ className, ...props }: ButtonHTMLAttributes { + if (divRef.current) { + divRef.current.scrollTop = divRef.current.scrollHeight; + } +}; + + + const ScrollToBottomContainer = ({ children, className, style, scrollContainerRef }: { children: React.ReactNode, className?: string, style?: React.CSSProperties, scrollContainerRef: React.MutableRefObject }) => { const [isAtBottom, setIsAtBottom] = useState(true); // Start at bottom const divRef = scrollContainerRef - const scrollToBottom = () => { - if (divRef.current) { - divRef.current.scrollTop = divRef.current.scrollHeight; - } - }; - const onScroll = () => { const div = divRef.current; if (!div) return; @@ -437,13 +440,13 @@ const ScrollToBottomContainer = ({ children, className, style, scrollContainerRe // When children change (new messages added) useEffect(() => { if (isAtBottom) { - scrollToBottom(); + scrollToBottom(divRef); } }, [children, isAtBottom]); // Dependency on children to detect new messages // Initial scroll to bottom useEffect(() => { - scrollToBottom(); + scrollToBottom(divRef); }, []); return ( @@ -806,7 +809,7 @@ const SimplifiedToolHeader = ({ -const UserMessageComponent = ({ chatMessage, messageIdx, isCommitted }: { chatMessage: ChatMessage & { role: 'user' }, messageIdx: number, isCommitted: boolean, }) => { +const UserMessageComponent = ({ chatMessage, messageIdx, isCommitted, _scrollToBottom }: { chatMessage: ChatMessage & { role: 'user' }, messageIdx: number, isCommitted: boolean, _scrollToBottom: (() => void) | null }) => { const accessor = useAccessor() const chatThreadsService = accessor.get('IChatThreadService') @@ -907,6 +910,7 @@ const UserMessageComponent = ({ chatMessage, messageIdx, isCommitted }: { chatMe console.error('Error while editing message:', e) } sidebarStateService.fireFocusChat() + requestAnimationFrame(() => _scrollToBottom?.()) } const onAbort = () => { @@ -1816,9 +1820,10 @@ type ChatBubbleProps = { chatIsRunning: IsRunningType, threadId: string, isToolBeingWritten: boolean, + _scrollToBottom: (() => void) | null, } -const ChatBubble = ({ chatMessage, isCommitted, messageIdx, isLast, chatIsRunning, threadId, isToolBeingWritten }: ChatBubbleProps) => { +const ChatBubble = ({ chatMessage, isCommitted, messageIdx, isLast, chatIsRunning, threadId, isToolBeingWritten, _scrollToBottom }: ChatBubbleProps) => { const role = chatMessage.role if (role === 'user') { @@ -1826,6 +1831,7 @@ const ChatBubble = ({ chatMessage, isCommitted, messageIdx, isLast, chatIsRunnin chatMessage={chatMessage} messageIdx={messageIdx} isCommitted={isCommitted} + _scrollToBottom={_scrollToBottom} /> } else if (role === 'assistant') { @@ -1999,6 +2005,7 @@ export const SidebarChat = () => { isLast={isLast} threadId={threadId} isToolBeingWritten={toolIsLoading} + _scrollToBottom={() => scrollToBottom(scrollContainerRef)} /> }) }, [previousMessages, isRunning, currentThread, numMessages]) @@ -2019,6 +2026,7 @@ export const SidebarChat = () => { isLast={true} threadId={threadId} isToolBeingWritten={toolIsLoading} + _scrollToBottom={null} /> : null diff --git a/src/vs/workbench/contrib/void/browser/react/src/util/services.tsx b/src/vs/workbench/contrib/void/browser/react/src/util/services.tsx index 95060cb2..493b87bb 100644 --- a/src/vs/workbench/contrib/void/browser/react/src/util/services.tsx +++ b/src/vs/workbench/contrib/void/browser/react/src/util/services.tsx @@ -46,6 +46,7 @@ import { ILanguageService } from '../../../../../../../editor/common/languages/l import { IVoidModelService } from '../../../../common/voidModelService.js' import { IWorkspaceContextService } from '../../../../../../../platform/workspace/common/workspace.js' import { IVoidCommandBarService } from '../../../voidCommandBarService.js' +import { INativeHostService } from '../../../../../../../platform/native/common/native.js'; // normally to do this you'd use a useEffect that calls .onDidChangeState(), but useEffect mounts too late and misses initial state changes @@ -213,6 +214,7 @@ const getReactAccessor = (accessor: ServicesAccessor) => { IWorkspaceContextService: accessor.get(IWorkspaceContextService), IVoidCommandBarService: accessor.get(IVoidCommandBarService), + INativeHostService: accessor.get(INativeHostService), } as const return reactAccessor diff --git a/src/vs/workbench/contrib/void/browser/react/src/void-settings-tsx/Settings.tsx b/src/vs/workbench/contrib/void/browser/react/src/void-settings-tsx/Settings.tsx index 3b97463a..80ccd6e7 100644 --- a/src/vs/workbench/contrib/void/browser/react/src/void-settings-tsx/Settings.tsx +++ b/src/vs/workbench/contrib/void/browser/react/src/void-settings-tsx/Settings.tsx @@ -665,6 +665,8 @@ const OneClickSwitchButton = () => { const GeneralTab = () => { const accessor = useAccessor() const commandService = accessor.get('ICommandService') + const environmentService = accessor.get('IEnvironmentService') + const nativeHostService = accessor.get('INativeHostService') return <> @@ -696,6 +698,11 @@ const GeneralTab = () => { Theme Settings +
+ { nativeHostService.showItemInFolder(environmentService.logsHome.fsPath) }}> + Open Logs + +
From f11ff3475bc1c59c3d7a92c3355ed262f195b082 Mon Sep 17 00:00:00 2001 From: Andrew Pareles Date: Sun, 30 Mar 2025 20:44:18 -0700 Subject: [PATCH 4/5] revert --- package-lock.json | 2 +- product.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index ec62a09d..0e6f871e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -117,7 +117,7 @@ "cssnano": "^6.0.3", "debounce": "^1.0.0", "deemon": "^1.8.0", - "electron": "^34.3.2", + "electron": "34.3.2", "eslint": "^9.11.1", "eslint-formatter-compact": "^8.40.0", "eslint-plugin-header": "3.1.1", diff --git a/product.json b/product.json index 501bef45..ff65f91f 100644 --- a/product.json +++ b/product.json @@ -1,7 +1,7 @@ { "nameShort": "Void", "nameLong": "Void", - "voidVersion": "1.0.4", + "voidVersion": "1.0.3", "applicationName": "void", "dataFolderName": ".void-editor", "win32MutexName": "voideditor", From 7631b41b276b297d9eec1a1ef58172d610671749 Mon Sep 17 00:00:00 2001 From: Andrew Pareles Date: Sun, 30 Mar 2025 20:45:42 -0700 Subject: [PATCH 5/5] comment --- extensions/open-remote-ssh/src/serverConfig.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/open-remote-ssh/src/serverConfig.ts b/extensions/open-remote-ssh/src/serverConfig.ts index 6e22f7ba..2478df5d 100644 --- a/extensions/open-remote-ssh/src/serverConfig.ts +++ b/extensions/open-remote-ssh/src/serverConfig.ts @@ -39,7 +39,7 @@ export async function getVSCodeServerConfig(): Promise { serverApplicationName: customServerBinaryName || productJson.serverApplicationName, serverDataFolderName: productJson.serverDataFolderName, serverDownloadUrlTemplate: productJson.serverDownloadUrlTemplate, - // Edited for Void + // Void changed this version: productJson.voidVersion }; }