@@ -9,6 +9,7 @@ import { Header } from "@/components/ui/header";
99import { SwitchConfigDialog } from "@/components/repo/SwitchConfigDialog" ;
1010import { RepoMcpDialog } from "@/components/repo/RepoMcpDialog" ;
1111import { RepoSkillsDialog } from "@/components/repo/RepoSkillsDialog" ;
12+ import { RepoRalphDialog } from "@/components/repo/RepoRalphDialog" ;
1213import { SourceControlPanel } from "@/components/source-control" ;
1314import { useCreateSession } from "@/hooks/useOpenCode" ;
1415import { useSSE } from "@/hooks/useSSE" ;
@@ -17,7 +18,7 @@ import { useSwipeBack } from "@/hooks/useMobile";
1718import { Button } from "@/components/ui/button" ;
1819import { Badge } from "@/components/ui/badge" ;
1920import { DropdownMenuItem } from "@/components/ui/dropdown-menu" ;
20- import { Plug , FolderOpen , Plus , GitBranch , GitCommitHorizontal , ShieldOff , Brain , Loader2 , CalendarClock , Sparkles } from "lucide-react" ;
21+ import { Plug , FolderOpen , Plus , GitBranch , GitCommitHorizontal , ShieldOff , Brain , Loader2 , CalendarClock , Sparkles , Bot } from "lucide-react" ;
2122import { ResetPermissionsDialog } from "@/components/repo/ResetPermissionsDialog" ;
2223import { PendingActionsGroup } from "@/components/notifications/PendingActionsGroup" ;
2324import { invalidateConfigCaches } from "@/lib/queryInvalidation" ;
@@ -33,6 +34,7 @@ export function RepoDetail() {
3334 const [ skillsDialogOpen , setSkillsDialogOpen ] = useState ( false ) ;
3435 const [ sourceControlOpen , setSourceControlOpen ] = useState ( false ) ;
3536 const [ resetPermissionsOpen , setResetPermissionsOpen ] = useState ( false ) ;
37+ const [ ralphDialogOpen , setRalphDialogOpen ] = useState ( false ) ;
3638 const pageRef = useRef < HTMLDivElement > ( null ) ;
3739
3840 const handleSwipeBack = useCallback ( ( ) => {
@@ -157,6 +159,17 @@ export function RepoDetail() {
157159 < Sparkles className = "w-4 h-4 sm:mr-2" />
158160 < span className = "hidden sm:inline" > Skills</ span >
159161 </ Button >
162+ { memoryPluginStatus ?. memoryPluginEnabled && (
163+ < Button
164+ variant = "outline"
165+ onClick = { ( ) => setRalphDialogOpen ( true ) }
166+ size = "sm"
167+ className = "hidden md:flex text-foreground border-border hover:bg-accent transition-all duration-200 hover:scale-105"
168+ >
169+ < Bot className = "w-4 h-4 sm:mr-2" />
170+ < span className = "hidden sm:inline" > Ralph</ span >
171+ </ Button >
172+ ) }
160173 < Button
161174 variant = "outline"
162175 onClick = { ( ) => setSourceControlOpen ( true ) }
@@ -219,6 +232,11 @@ export function RepoDetail() {
219232 < DropdownMenuItem onClick = { ( ) => setSkillsDialogOpen ( true ) } >
220233 < Sparkles className = "w-4 h-4 mr-2" /> Skills
221234 </ DropdownMenuItem >
235+ { memoryPluginStatus ?. memoryPluginEnabled && (
236+ < DropdownMenuItem onClick = { ( ) => setRalphDialogOpen ( true ) } >
237+ < Bot className = "w-4 h-4 mr-2" /> Ralph
238+ </ DropdownMenuItem >
239+ ) }
222240 < DropdownMenuItem onClick = { ( ) => setResetPermissionsOpen ( true ) } >
223241 < ShieldOff className = "w-4 h-4 mr-2" /> Reset Permissions
224242 </ DropdownMenuItem >
@@ -271,6 +289,12 @@ export function RepoDetail() {
271289 repoId = { repoId }
272290 />
273291
292+ < RepoRalphDialog
293+ open = { ralphDialogOpen }
294+ onOpenChange = { setRalphDialogOpen }
295+ repoId = { repoId }
296+ />
297+
274298 < SourceControlPanel
275299 repoId = { repoId }
276300 isOpen = { sourceControlOpen }
0 commit comments