diff --git a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/collapsed-sidebar-menu/collapsed-sidebar-menu.tsx b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/collapsed-sidebar-menu/collapsed-sidebar-menu.tsx
index a57934dfb44..d29e742c0a0 100644
--- a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/collapsed-sidebar-menu/collapsed-sidebar-menu.tsx
+++ b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/collapsed-sidebar-menu/collapsed-sidebar-menu.tsx
@@ -300,7 +300,7 @@ export function CollapsedChatFlyoutItem({
diff --git a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/sidebar.tsx b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/sidebar.tsx
index 0b0515f5b59..02d5fc061a1 100644
--- a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/sidebar.tsx
+++ b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/sidebar.tsx
@@ -195,6 +195,13 @@ const SidebarChatItem = memo(function SidebarChatItem({
}) {
const dragGhostRef = useRef(null)
+ /**
+ * The trailing slot fits one glyph, and the dot wins over the pin: it reports
+ * transient state (a run in progress, or an unread reply elsewhere), while pinning
+ * is persistent and already conveyed by the row sorting to the top of the list.
+ */
+ const showStatusDot = isActive || (!isCurrentRoute && isUnread)
+
function handleDragStart(e: React.DragEvent) {
e.dataTransfer.effectAllowed = 'copyMove'
e.dataTransfer.setData(
@@ -238,12 +245,12 @@ const SidebarChatItem = memo(function SidebarChatItem({
>