From b8dc25c7c8ca878c68a519ab45ae81e75367204a Mon Sep 17 00:00:00 2001 From: Bohdan Triapitsyn Date: Sat, 13 Jun 2026 01:59:33 +0300 Subject: [PATCH] fix: show about settings only on mobile Hides About from desktop settings navigation and command palette Keeps About available in mobile settings --- CHANGELOG.md | 19 ++++++++++++++++++- .../ui/src/components/ui/CommandPalette.tsx | 4 ++-- .../ui/src/components/views/SettingsView.tsx | 10 +++++----- packages/ui/src/lib/settings/metadata.ts | 3 ++- packages/vscode/CHANGELOG.md | 10 ++++++++++ 5 files changed, 37 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index af8c27e7..0f68fbd8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,24 @@ All notable changes to this project will be documented in this file. - Security: LAN and remote browser access now require a UI password before the server will start. - Desktop: if LAN access was enabled without a password, the app now starts locally and asks for a password before turning LAN access back on. -- Git: worktree status and commit integration now use dedicated Git actions behind the scenes. +- Chat: file paths inside fenced code blocks are now clickable, including line and column targets (thanks to @robertoberto). +- Chat: context breakdowns now show message previews and cache hit rates (thanks to @robertoberto, @raz123). +- Chat: custom-answer question textareas resize more steadily while typing (thanks to @bigcoder84). +- Chat/Input: tab-completing a mention no longer changes the selected agent (thanks to @Quat3rnion). +- Chat/Input: Arrow Up moves the cursor inside multi-line drafts again instead of always opening prompt history. +- Files: added dedicated PDF files previews mode. +- Files: added an optional docked files editor toolbar (thanks to @robertoberto). +- Sessions: session menus now include a delete action (thanks to @ShogunPanda). +- Sessions: deleting a parent session no longer brings deleted child sessions back into the sidebar (thanks to @panzeyu2013). +- Sessions: switching sessions no longer leaves the chat area blank in some cases (thanks to @panzeyu2013). +- Sessions: selected rows now highlight across the full sidebar gutter. +- Comments: inline file/diff comment drafts now stay in place when focus changes. +- GitHub: GitHub settings can now use credentials from the `gh` CLI when available (thanks to @tomzx). +- Settings/MCP: importing MCP snippets from OpenCode config works again (thanks to @youzini). +- Usage: added Cursor plan as a usage-tracking provider.. +- Notifications: notification streams now stay connected more reliably behind proxies (thanks to @kostazol). +- Mobile: the empty Changes view keeps a close control visible (thanks to @lilyzhaun). +- Security: file previews and downloads now reject paths outside the allowed workspace unless access has been granted. ## [1.12.4] - 2026-06-11 diff --git a/packages/ui/src/components/ui/CommandPalette.tsx b/packages/ui/src/components/ui/CommandPalette.tsx index f01485b0..43b6cd3a 100644 --- a/packages/ui/src/components/ui/CommandPalette.tsx +++ b/packages/ui/src/components/ui/CommandPalette.tsx @@ -265,8 +265,8 @@ export const CommandPalette: React.FC = () => { // --------------------------------------------------------------------------- const settingsRuntimeCtx = React.useMemo(() => { const isDesktop = isDesktopShell(); - return { isVSCode: isVSCodeRuntime(), isWeb: !isDesktop && isWebRuntime(), isDesktop }; - }, []); + return { isVSCode: isVSCodeRuntime(), isWeb: !isDesktop && isWebRuntime(), isDesktop, isMobile }; + }, [isMobile]); const settingsEntries = React.useMemo(() => { return SETTINGS_PAGE_METADATA diff --git a/packages/ui/src/components/views/SettingsView.tsx b/packages/ui/src/components/views/SettingsView.tsx index 177cf119..25fee971 100644 --- a/packages/ui/src/components/views/SettingsView.tsx +++ b/packages/ui/src/components/views/SettingsView.tsx @@ -109,10 +109,10 @@ const pageOrder: SettingsPageSlug[] = [ const SNIPPETS_SETTINGS_ICON = { icon: 'chat-thread' } as const; const ADD_PROVIDER_SETTINGS_ID = '__add_provider__'; -function buildRuntimeContext(isDesktop: boolean): SettingsRuntimeContext { +function buildRuntimeContext(isDesktop: boolean, isMobile: boolean): SettingsRuntimeContext { const isVSCode = isVSCodeRuntime(); const isWeb = !isDesktop && isWebRuntime(); - return { isVSCode, isWeb, isDesktop }; + return { isVSCode, isWeb, isDesktop, isMobile }; } function isPageAvailable(page: SettingsPageMeta, ctx: SettingsRuntimeContext): boolean { @@ -333,7 +333,7 @@ export const SettingsView: React.FC = ({ onClose, forceMobile // keep platform check available for future window chrome tweaks - const runtimeCtx = React.useMemo(() => buildRuntimeContext(isDesktopApp), [isDesktopApp]); + const runtimeCtx = React.useMemo(() => buildRuntimeContext(isDesktopApp, isMobile), [isDesktopApp, isMobile]); const visiblePages = React.useMemo(() => { const allowedPages = visiblePageSlugs ? new Set(visiblePageSlugs) : null; @@ -532,12 +532,12 @@ export const SettingsView: React.FC = ({ onClose, forceMobile const settingsSearchResults = React.useMemo(() => { return buildSettingsSearchResults({ query: settingsSearchQuery, - runtimeCtx: { ...runtimeCtx, isMobile, isDesktopLocalOrigin }, + runtimeCtx: { ...runtimeCtx, isDesktopLocalOrigin }, visiblePageSlugs, t, getPageTitle, }); - }, [getPageTitle, isDesktopLocalOrigin, isMobile, runtimeCtx, settingsSearchQuery, t, visiblePageSlugs]); + }, [getPageTitle, isDesktopLocalOrigin, runtimeCtx, settingsSearchQuery, t, visiblePageSlugs]); const prepareSettingsSearchTarget = React.useCallback((result: SettingsSearchResult): string => { if (result.id.startsWith('agents.')) { diff --git a/packages/ui/src/lib/settings/metadata.ts b/packages/ui/src/lib/settings/metadata.ts index 66e54d59..b0331f05 100644 --- a/packages/ui/src/lib/settings/metadata.ts +++ b/packages/ui/src/lib/settings/metadata.ts @@ -39,6 +39,7 @@ export interface SettingsRuntimeContext { isVSCode: boolean; isWeb: boolean; isDesktop: boolean; + isMobile: boolean; } export interface SettingsPageMeta { @@ -205,7 +206,7 @@ export const SETTINGS_PAGE_METADATA: readonly SettingsPageMeta[] = [ { slug: 'notifications', title: 'Notifications', group: 'general', kind: 'single', keywords: ['alerts', 'native', 'summary', 'summarization'], }, { slug: 'voice', title: 'Voice', group: 'advanced', kind: 'single', keywords: ['tts', 'speech', 'voice'], isAvailable: (ctx) => !ctx.isVSCode }, { slug: 'tunnel', title: 'Remote Tunnel', group: 'advanced', kind: 'single', keywords: ['tunnel', 'cloudflare', 'qr', 'remote', 'mobile', 'share'], isAvailable: (ctx) => !ctx.isVSCode }, - { slug: 'about', title: 'About', group: 'advanced', kind: 'single', keywords: ['about', 'version', 'updates', 'release', 'changelog'], }, + { slug: 'about', title: 'About', group: 'advanced', kind: 'single', keywords: ['about', 'version', 'updates', 'release', 'changelog'], isAvailable: (ctx) => ctx.isMobile }, ] as const; export const LEGACY_SIDEBAR_SECTION_TO_SETTINGS_SLUG: Record = { diff --git a/packages/vscode/CHANGELOG.md b/packages/vscode/CHANGELOG.md index 2b41f0b6..bcbf65c5 100644 --- a/packages/vscode/CHANGELOG.md +++ b/packages/vscode/CHANGELOG.md @@ -1,3 +1,13 @@ +## [Unreleased] + +- Chat: custom-answer question textareas resize more steadily while typing (thanks to @bigcoder84). +- Chat/Input: tab-completing a mention no longer changes the selected agent (thanks to @Quat3rnion). +- Chat/Input: Arrow Up moves the cursor inside multi-line drafts again instead of always opening prompt history. +- Sessions: session menus now include a delete action (thanks to @ShogunPanda). +- Sessions: deleting a parent session no longer brings deleted child sessions back into the sidebar (thanks to @panzeyu2013). +- Sessions: switching sessions no longer leaves the chat area blank in some cases (thanks to @panzeyu2013). +- Settings/MCP: importing MCP snippets from OpenCode config works again (thanks to @youzini). + ## [1.12.4] - 2026-06-11 - Agent Manager: creating isolated runs now opens sessions immediately while worktree setup continues in the background.