diff --git a/packages/ui/src/components/sections/openchamber/OpenChamberPage.tsx b/packages/ui/src/components/sections/openchamber/OpenChamberPage.tsx index 9cd9ffd6..c216a62e 100644 --- a/packages/ui/src/components/sections/openchamber/OpenChamberPage.tsx +++ b/packages/ui/src/components/sections/openchamber/OpenChamberPage.tsx @@ -10,7 +10,7 @@ import { NotificationSettings } from './NotificationSettings'; import { GitHubSettings } from './GitHubSettings'; import { ScrollableOverlay } from '@/components/ui/ScrollableOverlay'; import { useDeviceInfo } from '@/lib/device'; -import { isWebRuntime } from '@/lib/desktop'; +import { isVSCodeRuntime, isWebRuntime } from '@/lib/desktop'; import type { OpenChamberSection } from './OpenChamberSidebar'; interface OpenChamberPageProps { @@ -122,6 +122,9 @@ const GitSectionContent: React.FC = () => { // GitHub section: Connect account for PR/issue workflows const GitHubSectionContent: React.FC = () => { + if (isVSCodeRuntime()) { + return null; + } return ; }; diff --git a/packages/ui/src/components/sections/openchamber/OpenChamberSidebar.tsx b/packages/ui/src/components/sections/openchamber/OpenChamberSidebar.tsx index c9a15ba2..15984202 100644 --- a/packages/ui/src/components/sections/openchamber/OpenChamberSidebar.tsx +++ b/packages/ui/src/components/sections/openchamber/OpenChamberSidebar.tsx @@ -46,6 +46,7 @@ const OPENCHAMBER_SECTION_GROUPS: SectionGroup[] = [ id: 'github', label: 'GitHub', items: ['Connect', 'PRs', 'Issues'], + hideInVSCode: true, }, { id: 'notifications', diff --git a/packages/ui/src/components/session/GitHubIssuePickerDialog.tsx b/packages/ui/src/components/session/GitHubIssuePickerDialog.tsx index 11934cb8..c26ca1fd 100644 --- a/packages/ui/src/components/session/GitHubIssuePickerDialog.tsx +++ b/packages/ui/src/components/session/GitHubIssuePickerDialog.tsx @@ -24,6 +24,7 @@ import { useSessionStore } from '@/stores/useSessionStore'; import { useConfigStore } from '@/stores/useConfigStore'; import { useMessageStore } from '@/stores/messageStore'; import { useContextStore } from '@/stores/contextStore'; +import { useUIStore } from '@/stores/useUIStore'; import { opencodeClient } from '@/lib/opencode/client'; import { createWorktreeSessionForNewBranch } from '@/lib/worktreeSessionCreator'; import { generateBranchSlug } from '@/lib/git/branchNameGenerator'; @@ -69,6 +70,8 @@ export function GitHubIssuePickerDialog({ onOpenChange: (open: boolean) => void; }) { const { github } = useRuntimeAPIs(); + const setSettingsDialogOpen = useUIStore((state) => state.setSettingsDialogOpen); + const setSidebarSection = useUIStore((state) => state.setSidebarSection); const activeProject = useProjectsStore((state) => state.getActiveProject()); const projectDirectory = activeProject?.path ?? null; @@ -156,6 +159,11 @@ export function GitHubIssuePickerDialog({ const connected = Boolean(result?.connected); const repoUrl = result?.repo?.url ?? null; + const openGitHubSettings = React.useCallback(() => { + setSidebarSection('settings'); + setSettingsDialogOpen(true); + }, [setSettingsDialogOpen, setSidebarSection]); + const filtered = React.useMemo(() => { const q = query.trim().toLowerCase(); if (!q) return issues; @@ -458,7 +466,14 @@ Do not implement changes until I confirm; end with: “Next actions: <1 sentence ) : null} {connected === false ? ( -
GitHub not connected.
+
+
GitHub not connected. Connect your GitHub account in settings.
+
+ +
+
) : null} {error ? ( diff --git a/packages/ui/src/components/session/GitHubPullRequestPickerDialog.tsx b/packages/ui/src/components/session/GitHubPullRequestPickerDialog.tsx index f49a8c83..3fb00c35 100644 --- a/packages/ui/src/components/session/GitHubPullRequestPickerDialog.tsx +++ b/packages/ui/src/components/session/GitHubPullRequestPickerDialog.tsx @@ -24,6 +24,7 @@ import { useSessionStore } from '@/stores/useSessionStore'; import { useConfigStore } from '@/stores/useConfigStore'; import { useMessageStore } from '@/stores/messageStore'; import { useContextStore } from '@/stores/contextStore'; +import { useUIStore } from '@/stores/useUIStore'; import { opencodeClient } from '@/lib/opencode/client'; import { createWorktreeSessionForNewBranchExact } from '@/lib/worktreeSessionCreator'; import { gitFetch } from '@/lib/gitApi'; @@ -60,6 +61,8 @@ export function GitHubPullRequestPickerDialog({ onOpenChange: (open: boolean) => void; }) { const { github } = useRuntimeAPIs(); + const setSettingsDialogOpen = useUIStore((state) => state.setSettingsDialogOpen); + const setSidebarSection = useUIStore((state) => state.setSidebarSection); const activeProject = useProjectsStore((state) => state.getActiveProject()); const projectDirectory = activeProject?.path ?? null; @@ -148,6 +151,11 @@ export function GitHubPullRequestPickerDialog({ const connected = Boolean(result?.connected); const repoUrl = result?.repo?.url ?? null; + const openGitHubSettings = React.useCallback(() => { + setSidebarSection('settings'); + setSettingsDialogOpen(true); + }, [setSettingsDialogOpen, setSidebarSection]); + const filtered = React.useMemo(() => { const q = query.trim().toLowerCase(); if (!q) return prs; @@ -468,7 +476,14 @@ Nice-to-have: ) : null} {connected === false ? ( -
GitHub not connected.
+
+
GitHub not connected. Connect your GitHub account in settings.
+
+ +
+
) : null} {error ? ( diff --git a/packages/ui/src/components/views/git/PullRequestSection.tsx b/packages/ui/src/components/views/git/PullRequestSection.tsx index 57354bd8..a05ba0fe 100644 --- a/packages/ui/src/components/views/git/PullRequestSection.tsx +++ b/packages/ui/src/components/views/git/PullRequestSection.tsx @@ -18,6 +18,7 @@ import { } from '@/components/ui/collapsible'; import { generatePullRequestDescription } from '@/lib/gitApi'; import { useRuntimeAPIs } from '@/hooks/useRuntimeAPIs'; +import { useUIStore } from '@/stores/useUIStore'; import type { GitHubPullRequest, GitHubPullRequestStatus, @@ -73,6 +74,13 @@ export const PullRequestSection: React.FC<{ baseBranch: string; }> = ({ directory, branch, baseBranch }) => { const { github } = useRuntimeAPIs(); + const setSettingsDialogOpen = useUIStore((state) => state.setSettingsDialogOpen); + const setSidebarSection = useUIStore((state) => state.setSidebarSection); + + const openGitHubSettings = React.useCallback(() => { + setSidebarSection('settings'); + setSettingsDialogOpen(true); + }, [setSettingsDialogOpen, setSidebarSection]); const [isOpen, setIsOpen] = React.useState(true); const [isLoading, setIsLoading] = React.useState(false); @@ -263,8 +271,13 @@ export const PullRequestSection: React.FC<{
{!isConnected ? ( -
- GitHub not connected. Connect in Settings to create and merge PRs. +
+
+ GitHub not connected. Connect your GitHub account in settings. +
+
) : null}