summaryrefslogtreecommitdiffhomepage
path: root/packages/app
diff options
context:
space:
mode:
authorParker Smith <[email protected]>2026-02-04 13:27:02 -0700
committerGitHub <[email protected]>2026-02-04 14:27:02 -0600
commit41bc4ec7f0a42d6350b2af5ad44c7a308ee26b25 (patch)
tree66080e51f77d89279cd6c28254a820aa1649ec85 /packages/app
parent912098928a2c77537a632aee841daf95c6971e04 (diff)
downloadopencode-41bc4ec7f0a42d6350b2af5ad44c7a308ee26b25.tar.gz
opencode-41bc4ec7f0a42d6350b2af5ad44c7a308ee26b25.zip
fix(desktop): Refresh file contents when changing workspaces to not have stale contents (#11728)
Diffstat (limited to 'packages/app')
-rw-r--r--packages/app/src/context/file.tsx7
-rw-r--r--packages/app/src/pages/session.tsx16
2 files changed, 20 insertions, 3 deletions
diff --git a/packages/app/src/context/file.tsx b/packages/app/src/context/file.tsx
index 7509334ed..d05e1ee2a 100644
--- a/packages/app/src/context/file.tsx
+++ b/packages/app/src/context/file.tsx
@@ -8,6 +8,7 @@ import { getFilename } from "@opencode-ai/util/path"
import { useSDK } from "./sdk"
import { useSync } from "./sync"
import { useLanguage } from "@/context/language"
+import { decode64 } from "@/utils/base64"
import { Persist, persisted } from "@/utils/persist"
export type FileSelection = {
@@ -275,9 +276,9 @@ export const { use: useFile, provider: FileProvider } = createSimpleContext({
const params = useParams()
const language = useLanguage()
- const scope = createMemo(() => sdk.directory)
+ const directory = createMemo(() => decode64(params.dir) ?? sdk.directory)
- const directory = createMemo(() => sync.data.path.directory)
+ const scope = createMemo(() => directory())
function normalize(input: string) {
const root = directory()
@@ -414,7 +415,7 @@ export const { use: useFile, provider: FileProvider } = createSimpleContext({
return entry.value
}
- const view = createMemo(() => loadView(params.dir!, params.id))
+ const view = createMemo(() => loadView(directory(), params.id))
function ensure(path: string) {
if (!path) return
diff --git a/packages/app/src/pages/session.tsx b/packages/app/src/pages/session.tsx
index 7f005c56e..3fa71244b 100644
--- a/packages/app/src/pages/session.tsx
+++ b/packages/app/src/pages/session.tsx
@@ -1670,6 +1670,22 @@ export default function Page() {
void (refresh ? file.tree.refresh("") : file.tree.list(""))
})
+ createEffect(
+ on(
+ () => params.dir,
+ () => {
+ void file.tree.list("")
+
+ const active = tabs().active()
+ if (!active) return
+ const path = file.pathFromTab(active)
+ if (!path) return
+ void file.load(path, { force: true })
+ },
+ { defer: true },
+ ),
+ )
+
const autoScroll = createAutoScroll({
working: () => true,
overflowAnchor: "dynamic",