From 2915acae8d1e129d3aa8b133b2dfac4cfd36aff2 Mon Sep 17 00:00:00 2001 From: MaximEdogawa Date: Tue, 21 Apr 2026 19:17:52 +0200 Subject: [PATCH] update: conditionally initialize Tauri registry and enhance TerminalPreview for marketing website --- src/main.tsx | 5 +++- .../bot/components/TerminalPreview.tsx | 24 ++++++++++++++++--- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/main.tsx b/src/main.tsx index 603f642..90f716c 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -4,9 +4,12 @@ import { BrowserRouter } from "react-router-dom"; import App from "./App"; import "./shared/appMeta"; import { initTauriRegistryBridge } from "./shared/mcpEvents"; +import { isTauriApp } from "./shared/runtimeTarget"; import "./index.css"; -initTauriRegistryBridge(); +if (isTauriApp()) { + initTauriRegistryBridge(); +} ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( diff --git a/src/modules/bot/components/TerminalPreview.tsx b/src/modules/bot/components/TerminalPreview.tsx index d33ceb7..f26811a 100644 --- a/src/modules/bot/components/TerminalPreview.tsx +++ b/src/modules/bot/components/TerminalPreview.tsx @@ -1,4 +1,5 @@ import { useCallback, useEffect, useRef, useState } from "react"; +import { isMarketingWebsite } from "../../../shared/runtimeTarget"; import { PENGINE } from "../api"; import { logLineKindClass } from "./logLineKindClass"; @@ -8,10 +9,25 @@ const fallbackLines: LogLine[] = [ { timestamp: "00:00:00", kind: "ok", message: "Waiting for Pengine service…" }, ]; +/** Static copy only — never opens loopback (avoids browser local-network prompts on the public site). */ +const marketingDemoLines: LogLine[] = [ + { + timestamp: "—", + kind: "info", + message: "Demo preview — the desktop app streams a live log from your machine.", + }, + { timestamp: "—", kind: "ok", message: "Tool policy loaded from local settings." }, + { timestamp: "—", kind: "info", message: "MCP registry idle — add servers in the dashboard." }, + { timestamp: "—", kind: "ok", message: "Agent loop ready (connect Telegram in Setup)." }, +]; + const SCROLL_NEAR_BOTTOM_PX = 64; export function TerminalPreview() { - const [lines, setLines] = useState(fallbackLines); + const marketingSite = isMarketingWebsite(); + const [lines, setLines] = useState(() => + marketingSite ? marketingDemoLines : fallbackLines, + ); const scrollRef = useRef(null); const addLine = useCallback((line: LogLine) => { @@ -19,6 +35,8 @@ export function TerminalPreview() { }, []); useEffect(() => { + if (marketingSite) return; + let cancelled = false; let retryTimer: ReturnType | null = null; let reconnectAttempt = 0; @@ -91,7 +109,7 @@ export function TerminalPreview() { es?.close(); unlistenTauri?.(); }; - }, [addLine]); + }, [addLine, marketingSite]); useEffect(() => { const el = scrollRef.current; @@ -111,7 +129,7 @@ export function TerminalPreview() {

pengine runtime

- live + {marketingSite ? "demo" : "live"}