diff --git a/.changeset/tui-header-remote-truncate.md b/.changeset/tui-header-remote-truncate.md
new file mode 100644
index 000000000..527999096
--- /dev/null
+++ b/.changeset/tui-header-remote-truncate.md
@@ -0,0 +1,5 @@
+---
+"@runfusion/fusion": patch
+---
+
+Fix TUI header overflow when a remote tunnel is configured. Between 100 and 175 columns the remote URL was pushing the left edge (logo + tabs) offscreen; the remote info now lives in a flex-shrinkable, right-justified slot that truncates instead of overflowing. Also gives the QR overlay a solid background so it no longer renders transparent over the underlying TUI.
diff --git a/packages/cli/src/commands/dashboard-tui/app.tsx b/packages/cli/src/commands/dashboard-tui/app.tsx
index 3c1daf59d..70e43d290 100644
--- a/packages/cli/src/commands/dashboard-tui/app.tsx
+++ b/packages/cli/src/commands/dashboard-tui/app.tsx
@@ -958,21 +958,16 @@ function MainHeader({ state }: { state: DashboardState }) {
);
})}
-
- {state.remoteStatus?.state === "running" && (
-
- ● tunnel
- {state.remoteStatus.url && cols >= 100 && (
- {state.remoteStatus.url}
- )}
- {cols >= 80 && [^Q] QR}
-
- )}
- {state.remoteStatus?.state === "starting" && (
-
+
+ {state.remoteStatus?.state === "running" && (
+
+ ● tunnel{state.remoteStatus.url ? ` ${state.remoteStatus.url}` : ""}{cols >= 80 ? " [^Q] QR" : ""}
+
+ )}
+ {state.remoteStatus?.state === "starting" && (
● tunnel starting…
-
- )}
+ )}
+
{showHelpHint && [?] help [q] quit}
);
@@ -4209,7 +4204,7 @@ export function DashboardApp({ controller }: DashboardAppProps) {
)}
{qrOverlay && (
-
+
Remote Access — Scan to connect
{qrOverlay.state === "loading" && Generating QR…}
{qrOverlay.state === "error" && {qrOverlay.message}}