From c0a35141e6b70eed1a9ba576fe43b7f7d690b968 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Tue, 2 Dec 2025 06:50:16 -0600 Subject: feat: better code and diff rendering performance --- packages/desktop/src/pages/session.tsx | 4 + packages/enterprise/src/routes/share/[shareID].tsx | 11 ++- packages/ui/package.json | 2 +- packages/ui/src/components/code.tsx | 29 +++++-- packages/ui/src/components/diff-ssr.tsx | 75 +++++++++++++++++ packages/ui/src/components/diff.tsx | 98 ++++++---------------- packages/ui/src/components/message-part.tsx | 32 +++++-- packages/ui/src/components/pierre.ts | 68 --------------- packages/ui/src/components/session-review.tsx | 8 +- packages/ui/src/components/session-turn.tsx | 31 +++++-- packages/ui/src/pierre/index.ts | 77 +++++++++++++++++ packages/ui/src/pierre/worker.ts | 5 ++ 12 files changed, 280 insertions(+), 160 deletions(-) create mode 100644 packages/ui/src/components/diff-ssr.tsx delete mode 100644 packages/ui/src/components/pierre.ts create mode 100644 packages/ui/src/pierre/index.ts create mode 100644 packages/ui/src/pierre/worker.ts (limited to 'packages') diff --git a/packages/desktop/src/pages/session.tsx b/packages/desktop/src/pages/session.tsx index 281b6765a..ddc2a60c5 100644 --- a/packages/desktop/src/pages/session.tsx +++ b/packages/desktop/src/pages/session.tsx @@ -30,6 +30,7 @@ import { useSync } from "@/context/sync" import { useSession } from "@/context/session" import { useLayout } from "@/context/layout" import { getDirectory, getFilename } from "@opencode-ai/util/path" +import { Diff } from "@opencode-ai/ui/diff" export default function Page() { const layout = useLayout() @@ -357,6 +358,7 @@ export default function Page() { content: "pb-20", container: "w-full " + (wide() ? "max-w-146 mx-auto px-6" : "pr-6 pl-18"), }} + diffComponent={Diff} /> @@ -405,6 +407,7 @@ export default function Page() { container: "px-6", }} diffs={session.diffs()} + diffComponent={Diff} actions={ diff --git a/packages/enterprise/src/routes/share/[shareID].tsx b/packages/enterprise/src/routes/share/[shareID].tsx index b95004749..f579bfa03 100644 --- a/packages/enterprise/src/routes/share/[shareID].tsx +++ b/packages/enterprise/src/routes/share/[shareID].tsx @@ -18,6 +18,10 @@ import z from "zod" import NotFound from "../[...404]" import { Tabs } from "@opencode-ai/ui/tabs" import { preloadMultiFileDiff, PreloadMultiFileDiffResult } from "@pierre/precision-diffs/ssr" +import { Diff } from "@opencode-ai/ui/diff-ssr" +import { clientOnly } from "@solidjs/start" + +const ClientOnlyDiff = clientOnly(() => import("@opencode-ai/ui/diff").then((m) => ({ default: m.Diff }))) const SessionDataMissingError = NamedError.create( "SessionDataMissingError", @@ -230,6 +234,7 @@ export default function () { "flex flex-col justify-between !overflow-visible [&_[data-slot=session-turn-message-header]]:top-[-32px]", container: "px-4", }} + diffComponent={ClientOnlyDiff} /> )} @@ -299,6 +304,7 @@ export default function () { content: "flex flex-col justify-between items-start", container: "w-full pb-20 " + (wide() ? "max-w-146 mx-auto px-6" : "pr-6 pl-18"), }} + diffComponent={ClientOnlyDiff} >
@@ -311,6 +317,7 @@ export default function () {