From 9df896807975229e9a0a955e6915fd51edd89d37 Mon Sep 17 00:00:00 2001 From: Jeon Suyeol Date: Wed, 25 Feb 2026 09:35:22 +0900 Subject: [PATCH 1/2] Auto-enable worktrees setting when user clicks Show Worktrees List menu Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus --- app/src/ui/app.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/src/ui/app.tsx b/app/src/ui/app.tsx index b9c9611e3aa..fabbc1ab447 100644 --- a/app/src/ui/app.tsx +++ b/app/src/ui/app.tsx @@ -966,6 +966,10 @@ export class App extends React.Component { return } + if (!this.state.showWorktrees) { + this.props.dispatcher.setShowWorktrees(true) + } + if ( this.state.currentFoldout && this.state.currentFoldout.type === FoldoutType.Worktree From cac456efb3fba9c3cf51f1baa6ba80e7fb6703f6 Mon Sep 17 00:00:00 2001 From: Jeon Suyeol Date: Wed, 25 Feb 2026 09:37:02 +0900 Subject: [PATCH 2/2] Show banner when worktrees panel is auto-enabled Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus --- app/src/models/banner.ts | 2 ++ app/src/ui/app.tsx | 1 + app/src/ui/banners/render-banner.tsx | 28 ++++++++++++++++++++++++++++ 3 files changed, 31 insertions(+) diff --git a/app/src/models/banner.ts b/app/src/models/banner.ts index fc645bf74a4..d815fd27b1d 100644 --- a/app/src/models/banner.ts +++ b/app/src/models/banner.ts @@ -17,6 +17,7 @@ export enum BannerType { SuccessfulReorder = 'SuccessfulReorder', ConflictsFound = 'ConflictsFound', OSVersionNoLongerSupported = 'OSVersionNoLongerSupported', + WorktreesEnabled = 'WorktreesEnabled', } export type Banner = @@ -122,3 +123,4 @@ export type Banner = readonly onOpenConflictsDialog: () => void } | { readonly type: BannerType.OSVersionNoLongerSupported } + | { readonly type: BannerType.WorktreesEnabled } diff --git a/app/src/ui/app.tsx b/app/src/ui/app.tsx index fabbc1ab447..3f1047c7dcf 100644 --- a/app/src/ui/app.tsx +++ b/app/src/ui/app.tsx @@ -968,6 +968,7 @@ export class App extends React.Component { if (!this.state.showWorktrees) { this.props.dispatcher.setShowWorktrees(true) + this.setBanner({ type: BannerType.WorktreesEnabled }) } if ( diff --git a/app/src/ui/banners/render-banner.tsx b/app/src/ui/banners/render-banner.tsx index af20c6e2a8d..68718503549 100644 --- a/app/src/ui/banners/render-banner.tsx +++ b/app/src/ui/banners/render-banner.tsx @@ -3,6 +3,8 @@ import * as React from 'react' import { assertNever } from '../../lib/fatal-error' import { Banner, BannerType } from '../../models/banner' +import { PopupType } from '../../models/popup' +import { PreferencesTab } from '../../models/preferences' import { Dispatcher } from '../dispatcher' import { MergeConflictsBanner } from './merge-conflicts-banner' @@ -19,6 +21,7 @@ import { SuccessfulSquash } from './successful-squash' import { SuccessBanner } from './success-banner' import { ConflictsFoundBanner } from './conflicts-found-banner' import { OSVersionNoLongerSupportedBanner } from './os-version-no-longer-supported-banner' +import { LinkButton } from '../lib/link-button' export function renderBanner( banner: Banner, @@ -171,6 +174,31 @@ export function renderBanner( ) case BannerType.OSVersionNoLongerSupported: return + case BannerType.WorktreesEnabled: { + const label = __DARWIN__ + ? 'Appearance Settings' + : 'Appearance Options' + return ( + + Worktrees enabled. You can change this in{' '} + + dispatcher.showPopup({ + type: PopupType.Preferences, + initialSelectedTab: PreferencesTab.Appearance, + }) + } + > + {label} + + . + + ) + } default: return assertNever(banner, `Unknown popup type: ${banner}`) }