Browse Source

fix(app): incorrect workspace on new session

Adam 2 weeks ago
parent
commit
a84bdd7cd7

+ 1 - 1
packages/app/src/components/prompt-input/submit.ts

@@ -137,7 +137,7 @@ export function createPromptSubmit(input: PromptSubmitInput) {
 
 
     const projectDirectory = sdk.directory
     const projectDirectory = sdk.directory
     const isNewSession = !params.id
     const isNewSession = !params.id
-    const worktreeSelection = input.newSessionWorktree ?? "main"
+    const worktreeSelection = input.newSessionWorktree || "main"
 
 
     let sessionDirectory = projectDirectory
     let sessionDirectory = projectDirectory
     let client = sdk.client
     let client = sdk.client

+ 4 - 2
packages/app/src/components/session/session-new-view.tsx

@@ -1,6 +1,7 @@
 import { Show, createMemo } from "solid-js"
 import { Show, createMemo } from "solid-js"
 import { DateTime } from "luxon"
 import { DateTime } from "luxon"
 import { useSync } from "@/context/sync"
 import { useSync } from "@/context/sync"
+import { useSDK } from "@/context/sdk"
 import { useLanguage } from "@/context/language"
 import { useLanguage } from "@/context/language"
 import { Icon } from "@opencode-ai/ui/icon"
 import { Icon } from "@opencode-ai/ui/icon"
 import { getDirectory, getFilename } from "@opencode-ai/util/path"
 import { getDirectory, getFilename } from "@opencode-ai/util/path"
@@ -15,6 +16,7 @@ interface NewSessionViewProps {
 
 
 export function NewSessionView(props: NewSessionViewProps) {
 export function NewSessionView(props: NewSessionViewProps) {
   const sync = useSync()
   const sync = useSync()
+  const sdk = useSDK()
   const language = useLanguage()
   const language = useLanguage()
 
 
   const sandboxes = createMemo(() => sync.project?.sandboxes ?? [])
   const sandboxes = createMemo(() => sync.project?.sandboxes ?? [])
@@ -24,11 +26,11 @@ export function NewSessionView(props: NewSessionViewProps) {
     if (options().includes(selection)) return selection
     if (options().includes(selection)) return selection
     return MAIN_WORKTREE
     return MAIN_WORKTREE
   })
   })
-  const projectRoot = createMemo(() => sync.project?.worktree ?? sync.data.path.directory)
+  const projectRoot = createMemo(() => sync.project?.worktree ?? sdk.directory)
   const isWorktree = createMemo(() => {
   const isWorktree = createMemo(() => {
     const project = sync.project
     const project = sync.project
     if (!project) return false
     if (!project) return false
-    return sync.data.path.directory !== project.worktree
+    return sdk.directory !== project.worktree
   })
   })
 
 
   const label = (value: string) => {
   const label = (value: string) => {

+ 2 - 2
packages/app/src/pages/session.tsx

@@ -591,7 +591,7 @@ export default function Page() {
   const newSessionWorktree = createMemo(() => {
   const newSessionWorktree = createMemo(() => {
     if (store.newSessionWorktree === "create") return "create"
     if (store.newSessionWorktree === "create") return "create"
     const project = sync.project
     const project = sync.project
-    if (project && sync.data.path.directory !== project.worktree) return sync.data.path.directory
+    if (project && sdk.directory !== project.worktree) return sdk.directory
     return "main"
     return "main"
   })
   })
 
 
@@ -1647,7 +1647,7 @@ export default function Page() {
 
 
                     const target = value === "main" ? sync.project?.worktree : value
                     const target = value === "main" ? sync.project?.worktree : value
                     if (!target) return
                     if (!target) return
-                    if (target === sync.data.path.directory) return
+                    if (target === sdk.directory) return
                     layout.projects.open(target)
                     layout.projects.open(target)
                     navigate(`/${base64Encode(target)}/session`)
                     navigate(`/${base64Encode(target)}/session`)
                   }}
                   }}