From 311ba4179a3c112a7e0cbbeae152a971284a3632 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Thu, 26 Mar 2026 14:34:01 -0500 Subject: [PATCH] fix(app): remove fork session button --- packages/app/src/pages/session.tsx | 27 +++---------------- packages/ui/src/components/message-part.tsx | 30 +++++---------------- 2 files changed, 9 insertions(+), 48 deletions(-) diff --git a/packages/app/src/pages/session.tsx b/packages/app/src/pages/session.tsx index 8a158cad56..c41133ded7 100644 --- a/packages/app/src/pages/session.tsx +++ b/packages/app/src/pages/session.tsx @@ -26,8 +26,8 @@ import { createAutoScroll } from "@opencode-ai/ui/hooks" import { previewSelectedLines } from "@opencode-ai/ui/pierre/selection-bridge" import { Button } from "@opencode-ai/ui/button" import { showToast } from "@opencode-ai/ui/toast" -import { base64Encode, checksum } from "@opencode-ai/util/encode" -import { useNavigate, useSearchParams } from "@solidjs/router" +import { checksum } from "@opencode-ai/util/encode" +import { useSearchParams } from "@solidjs/router" import { NewSessionView, SessionHeader } from "@/components/session" import { useComments } from "@/context/comments" import { getSessionPrefetch, SESSION_PREFETCH_TTL } from "@/context/global-sync/session-prefetch" @@ -317,7 +317,6 @@ export default function Page() { const sync = useSync() const dialog = useDialog() const language = useLanguage() - const navigate = useNavigate() const sdk = useSDK() const settings = useSettings() const prompt = usePrompt() @@ -1555,26 +1554,6 @@ export default function Page() { const reverting = createMemo(() => revertMutation.isPending || restoreMutation.isPending) const restoring = createMemo(() => (restoreMutation.isPending ? restoreMutation.variables : undefined)) - const fork = (input: { sessionID: string; messageID: string }) => { - const value = draft(input.messageID) - const dir = base64Encode(sdk.directory) - return sdk.client.session - .fork(input) - .then((result) => { - const next = result.data - if (!next) { - showToast({ - variant: "error", - title: language.t("common.requestFailed"), - }) - return - } - prompt.set(value, undefined, { dir, id: next.id }) - navigate(`/${dir}/session/${next.id}`) - }) - .catch(fail) - } - const revert = (input: { sessionID: string; messageID: string }) => { if (reverting()) return return revertMutation.mutateAsync(input) @@ -1593,7 +1572,7 @@ export default function Page() { .map((item) => ({ id: item.id, text: line(item.id) })) }) - const actions = { fork, revert } + const actions = { revert } createEffect(() => { const sessionID = params.id diff --git a/packages/ui/src/components/message-part.tsx b/packages/ui/src/components/message-part.tsx index 3b4ed9e54f..a15e2e0c17 100644 --- a/packages/ui/src/components/message-part.tsx +++ b/packages/ui/src/components/message-part.tsx @@ -884,7 +884,7 @@ export function UserMessageDisplay(props: { message: UserMessage; parts: PartTyp const i18n = useI18n() const [state, setState] = createStore({ copied: false, - busy: undefined as "fork" | "revert" | undefined, + busy: false, }) const copied = () => state.copied const busy = () => state.busy @@ -938,10 +938,10 @@ export function UserMessageDisplay(props: { message: UserMessage; parts: PartTyp setTimeout(() => setState("copied", false), 2000) } - const run = (kind: "fork" | "revert") => { - const act = kind === "fork" ? props.actions?.fork : props.actions?.revert + const revert = () => { + const act = props.actions?.revert if (!act || busy()) return - setState("busy", kind) + setState("busy", true) void Promise.resolve() .then(() => act({ @@ -949,9 +949,7 @@ export function UserMessageDisplay(props: { message: UserMessage; parts: PartTyp messageID: props.message.id, }), ) - .finally(() => { - if (busy() === kind) setState("busy", undefined) - }) + .finally(() => setState("busy", false)) } return ( @@ -1017,22 +1015,6 @@ export function UserMessageDisplay(props: { message: UserMessage; parts: PartTyp - - - e.preventDefault()} - onClick={(event) => { - event.stopPropagation() - run("fork") - }} - aria-label={i18n.t("ui.message.forkMessage")} - /> - - e.preventDefault()} onClick={(event) => { event.stopPropagation() - run("revert") + revert() }} aria-label={i18n.t("ui.message.revertMessage")} />