From b34f434332f2ce7eee60d9dfbef2142e167ac0ec Mon Sep 17 00:00:00 2001
From: Adam <2363879+adamdotdevin@users.noreply.github.com>
Date: Thu, 11 Dec 2025 14:46:18 -0600
Subject: fix: message order ascending

---
 packages/ui/src/components/message-nav.tsx | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'packages/ui/src/components/message-nav.tsx')

diff --git a/packages/ui/src/components/message-nav.tsx b/packages/ui/src/components/message-nav.tsx
index 29b465c8c..a2db11348 100644
--- a/packages/ui/src/components/message-nav.tsx
+++ b/packages/ui/src/components/message-nav.tsx
@@ -15,7 +15,7 @@ export function MessageNav(
 ) {
   const [local, others] = splitProps(props, ["messages", "current", "size", "working", "onMessageSelect"])
   const lastUserMessage = createMemo(() => {
-    return local.messages?.at(0)
+    return local.messages?.at(-1)
   })
 
   const content = () => (
-- 
cgit v1.2.3


From 7d55aeee0aa70c105e4c7d7beb226f932556ce54 Mon Sep 17 00:00:00 2001
From: Adam <2363879+adamdotdevin@users.noreply.github.com>
Date: Thu, 11 Dec 2025 14:46:29 -0600
Subject: fix: no loading state in message nav

---
 packages/desktop/src/pages/session.tsx              |  1 -
 packages/ui/src/components/message-nav.tsx          | 19 +++----------------
 packages/ui/src/components/session-message-rail.tsx | 13 +------------
 3 files changed, 4 insertions(+), 29 deletions(-)

(limited to 'packages/ui/src/components/message-nav.tsx')

diff --git a/packages/desktop/src/pages/session.tsx b/packages/desktop/src/pages/session.tsx
index 890401723..5dae4ce55 100644
--- a/packages/desktop/src/pages/session.tsx
+++ b/packages/desktop/src/pages/session.tsx
@@ -415,7 +415,6 @@ export default function Page() {
                           messages={session.messages.user()}
                           current={session.messages.active()}
                           onMessageSelect={session.messages.setActive}
-                          working={session.working()}
                           wide={wide()}
                         />
                         <SessionTurn
diff --git a/packages/ui/src/components/message-nav.tsx b/packages/ui/src/components/message-nav.tsx
index a2db11348..ee73010b9 100644
--- a/packages/ui/src/components/message-nav.tsx
+++ b/packages/ui/src/components/message-nav.tsx
@@ -1,7 +1,6 @@
 import { UserMessage } from "@opencode-ai/sdk/v2"
-import { ComponentProps, createMemo, For, Match, Show, splitProps, Switch } from "solid-js"
+import { ComponentProps, For, Match, Show, splitProps, Switch } from "solid-js"
 import { DiffChanges } from "./diff-changes"
-import { Spinner } from "./spinner"
 import { Tooltip } from "@kobalte/core/tooltip"
 
 export function MessageNav(
@@ -9,20 +8,15 @@ export function MessageNav(
     messages: UserMessage[]
     current?: UserMessage
     size: "normal" | "compact"
-    working?: boolean
     onMessageSelect: (message: UserMessage) => void
   },
 ) {
-  const [local, others] = splitProps(props, ["messages", "current", "size", "working", "onMessageSelect"])
-  const lastUserMessage = createMemo(() => {
-    return local.messages?.at(-1)
-  })
+  const [local, others] = splitProps(props, ["messages", "current", "size", "onMessageSelect"])
 
   const content = () => (
     <ul role="list" data-component="message-nav" data-size={local.size} {...others}>
       <For each={local.messages}>
         {(message) => {
-          const messageWorking = createMemo(() => message.id === lastUserMessage()?.id && local.working)
           const handleClick = () => local.onMessageSelect(message)
 
           return (
@@ -35,14 +29,7 @@ export function MessageNav(
                 </Match>
                 <Match when={local.size === "normal"}>
                   <button data-slot="message-nav-message-button" onClick={handleClick}>
-                    <Switch>
-                      <Match when={messageWorking()}>
-                        <Spinner />
-                      </Match>
-                      <Match when={true}>
-                        <DiffChanges changes={message.summary?.diffs ?? []} variant="bars" />
-                      </Match>
-                    </Switch>
+                    <DiffChanges changes={message.summary?.diffs ?? []} variant="bars" />
                     <div
                       data-slot="message-nav-title-preview"
                       data-active={message.id === local.current?.id || undefined}
diff --git a/packages/ui/src/components/session-message-rail.tsx b/packages/ui/src/components/session-message-rail.tsx
index 132b813d2..1935a4f93 100644
--- a/packages/ui/src/components/session-message-rail.tsx
+++ b/packages/ui/src/components/session-message-rail.tsx
@@ -6,21 +6,12 @@ import "./session-message-rail.css"
 export interface SessionMessageRailProps extends ComponentProps<"div"> {
   messages: UserMessage[]
   current?: UserMessage
-  working?: boolean
   wide?: boolean
   onMessageSelect: (message: UserMessage) => void
 }
 
 export function SessionMessageRail(props: SessionMessageRailProps) {
-  const [local, others] = splitProps(props, [
-    "messages",
-    "current",
-    "working",
-    "wide",
-    "onMessageSelect",
-    "class",
-    "classList",
-  ])
+  const [local, others] = splitProps(props, ["messages", "current", "wide", "onMessageSelect", "class", "classList"])
 
   return (
     <Show when={(local.messages?.length ?? 0) > 1}>
@@ -39,7 +30,6 @@ export function SessionMessageRail(props: SessionMessageRailProps) {
             current={local.current}
             onMessageSelect={local.onMessageSelect}
             size="compact"
-            working={local.working}
           />
         </div>
         <div data-slot="session-message-rail-full">
@@ -48,7 +38,6 @@ export function SessionMessageRail(props: SessionMessageRailProps) {
             current={local.current}
             onMessageSelect={local.onMessageSelect}
             size={local.wide ? "normal" : "compact"}
-            working={local.working}
           />
         </div>
       </div>
-- 
cgit v1.2.3


From dea5111a5affb1dc25a2ace5252f5d35e47cca76 Mon Sep 17 00:00:00 2001
From: Adam <2363879+adamdotdevin@users.noreply.github.com>
Date: Thu, 11 Dec 2025 14:52:01 -0600
Subject: fix: message nav popover placement

---
 packages/ui/src/components/message-nav.tsx | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'packages/ui/src/components/message-nav.tsx')

diff --git a/packages/ui/src/components/message-nav.tsx b/packages/ui/src/components/message-nav.tsx
index ee73010b9..7416cfd93 100644
--- a/packages/ui/src/components/message-nav.tsx
+++ b/packages/ui/src/components/message-nav.tsx
@@ -51,7 +51,7 @@ export function MessageNav(
   return (
     <Switch>
       <Match when={local.size === "compact"}>
-        <Tooltip openDelay={0} closeDelay={300} placement="left-start" gutter={-65} shift={-16} overlap>
+        <Tooltip openDelay={0} closeDelay={300} placement="right-start" gutter={-40} shift={-10} overlap>
           <Tooltip.Trigger as="div">{content()}</Tooltip.Trigger>
           <Tooltip.Portal>
             <Tooltip.Content data-slot="message-nav-tooltip">
-- 
cgit v1.2.3

