diff options
| author | Adam <[email protected]> | 2025-11-25 16:02:27 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2025-11-25 16:02:31 -0600 |
| commit | 447713244820e875e192a5815c4d8bc76c03b40f (patch) | |
| tree | a3df06b1df0585a8387c37826ea516ce08169289 /packages/desktop/src/context | |
| parent | eaeea45ace01e20405d49d1a659030a4d131dc83 (diff) | |
| download | opencode-447713244820e875e192a5815c4d8bc76c03b40f.tar.gz opencode-447713244820e875e192a5815c4d8bc76c03b40f.zip | |
fix: sanitize absolute paths
Diffstat (limited to 'packages/desktop/src/context')
| -rw-r--r-- | packages/desktop/src/context/sync.tsx | 32 |
1 files changed, 4 insertions, 28 deletions
diff --git a/packages/desktop/src/context/sync.tsx b/packages/desktop/src/context/sync.tsx index 38058c370..3eb921a31 100644 --- a/packages/desktop/src/context/sync.tsx +++ b/packages/desktop/src/context/sync.tsx @@ -1,4 +1,3 @@ -import type { Part } from "@opencode-ai/sdk" import { produce } from "solid-js/store" import { createMemo } from "solid-js" import { Binary } from "@opencode-ai/util/binary" @@ -34,29 +33,7 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ Promise.all(Object.values(load).map((p) => p())).then(() => setStore("ready", true)) - const sanitizer = createMemo(() => new RegExp(`${store.path.directory}/`, "g")) - const sanitize = (text: string) => text.replace(sanitizer(), "") const absolute = (path: string) => (store.path.directory + "/" + path).replace("//", "/") - const sanitizePart = (part: Part) => { - if (part.type === "tool") { - if (part.state.status === "completed" || part.state.status === "error") { - for (const key in part.state.metadata) { - if (typeof part.state.metadata[key] === "string") { - part.state.metadata[key] = sanitize(part.state.metadata[key] as string) - } - } - for (const key in part.state.input) { - if (typeof part.state.input[key] === "string") { - part.state.input[key] = sanitize(part.state.input[key] as string) - } - } - if ("error" in part.state) { - part.state.error = sanitize(part.state.error as string) - } - } - } - return part - } return { data: store, @@ -88,10 +65,7 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ .slice() .sort((a, b) => a.id.localeCompare(b.id)) for (const message of messages.data!) { - draft.part[message.info.id] = message.parts - .slice() - .map(sanitizePart) - .sort((a, b) => a.id.localeCompare(b.id)) + draft.part[message.info.id] = message.parts.slice().sort((a, b) => a.id.localeCompare(b.id)) } draft.session_diff[sessionID] = diff.data ?? [] }), @@ -105,7 +79,9 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ }, load, absolute, - sanitize, + get directory() { + return store.path.directory + }, } }, }) |
