diff --git a/apps/sim/app/globals.css b/apps/sim/app/globals.css
index c1dad3022b..2df9fe5d17 100644
--- a/apps/sim/app/globals.css
+++ b/apps/sim/app/globals.css
@@ -11,7 +11,7 @@
--panel-width: 244px;
--toolbar-triggers-height: 300px;
--editor-connections-height: 200px;
- --terminal-height: 145px;
+ --terminal-height: 196px;
}
.sidebar-container {
diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/chat/chat.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/chat/chat.tsx
index e41f9948ff..7f2b800dc9 100644
--- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/chat/chat.tsx
+++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/chat/chat.tsx
@@ -569,7 +569,7 @@ export function Chat() {
return (
diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/chat/components/output-select/output-select.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/chat/components/output-select/output-select.tsx
index aade88c6c8..cfee42d06d 100644
--- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/chat/components/output-select/output-select.tsx
+++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/chat/components/output-select/output-select.tsx
@@ -288,9 +288,11 @@ export function OutputSelect({
e.preventDefault()}
onCloseAutoFocus={(e) => e.preventDefault()}
>
@@ -298,26 +300,29 @@ export function OutputSelect({
{Object.entries(groupedOutputs).map(([blockName, outputs]) => (
{blockName}
- {outputs.map((output) => (
-
handleOutputSelection(output.label)}
- >
-
+ {outputs.map((output) => (
+
handleOutputSelection(output.label)}
>
-
- {blockName.charAt(0).toUpperCase()}
-
-
- {output.path}
- {isSelectedValue(output) && }
-
- ))}
+
+
+ {blockName.charAt(0).toUpperCase()}
+
+
+
{output.path}
+ {isSelectedValue(output) &&
}
+
+ ))}
+
))}
diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/terminal/terminal.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/terminal/terminal.tsx
index d7c2d1ebf4..c31db60036 100644
--- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/terminal/terminal.tsx
+++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/terminal/terminal.tsx
@@ -42,7 +42,7 @@ import { useOutputPanelResize, useTerminalFilters, useTerminalResize } from './h
*/
const MIN_HEIGHT = 30
const NEAR_MIN_THRESHOLD = 40
-const DEFAULT_EXPANDED_HEIGHT = 300
+const DEFAULT_EXPANDED_HEIGHT = 196
/**
* Column width constants - numeric values for calculations
diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/workflow-block/workflow-block.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/workflow-block/workflow-block.tsx
index 5a94c74720..c5a6f174d9 100644
--- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/workflow-block/workflow-block.tsx
+++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/workflow-block/workflow-block.tsx
@@ -1,6 +1,6 @@
import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react'
import { useParams } from 'next/navigation'
-import { Handle, type NodeProps, Position } from 'reactflow'
+import { Handle, type NodeProps, Position, useUpdateNodeInternals } from 'reactflow'
import { Badge } from '@/components/emcn/components/badge/badge'
import { Tooltip } from '@/components/emcn/components/tooltip/tooltip'
import { getEnv, isTruthy } from '@/lib/env'
@@ -689,6 +689,16 @@ export const WorkflowBlock = memo(function WorkflowBlock({
],
})
+ /**
+ * Notify React Flow when handle orientation changes so it can recalculate edge paths.
+ * This is necessary because toggling handles doesn't change block dimensions,
+ * so useBlockDimensions won't trigger updateNodeInternals.
+ */
+ const updateNodeInternals = useUpdateNodeInternals()
+ useEffect(() => {
+ updateNodeInternals(id)
+ }, [horizontalHandles, id, updateNodeInternals])
+
const showWebhookIndicator = (isStarterBlock || isWebhookTriggerBlock) && isWebhookConfigured
const shouldShowScheduleBadge =
type === 'schedule' && !isLoadingScheduleInfo && scheduleInfo !== null
diff --git a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components-new/usage-indicator/usage-indicator.tsx b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components-new/usage-indicator/usage-indicator.tsx
index 2ed700f9d6..8bd699217d 100644
--- a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components-new/usage-indicator/usage-indicator.tsx
+++ b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components-new/usage-indicator/usage-indicator.tsx
@@ -62,11 +62,14 @@ export function UsageIndicator({ onClick }: UsageIndicatorProps) {
if (isLoading) {
return (
-
+
{/* Top row skeleton */}
{/* Pills skeleton */}
@@ -121,25 +124,25 @@ export function UsageIndicator({ onClick }: UsageIndicatorProps) {
}
return (
-
+
{/* Top row */}
{PLAN_NAMES[planType]}
-
+
{isBlocked ? (
<>
-
Over
-
limit
+
Over
+
limit
>
) : (
<>
-
+
${usage.current.toFixed(2)}
- /
-
+ /
+
${usage.limit}
>
@@ -149,7 +152,7 @@ export function UsageIndicator({ onClick }: UsageIndicatorProps) {
{showUpgradeButton && (