diff --git a/qimingclaw/crates/agent-electron-client/public/sgrobot-digital/index.html b/qimingclaw/crates/agent-electron-client/public/sgrobot-digital/index.html
index d2381704..aac6e4d7 100644
--- a/qimingclaw/crates/agent-electron-client/public/sgrobot-digital/index.html
+++ b/qimingclaw/crates/agent-electron-client/public/sgrobot-digital/index.html
@@ -8,6 +8,12 @@
sgRobot
diff --git a/qimingclaw/crates/agent-electron-client/src/renderer/components/pages/OverviewPage.tsx b/qimingclaw/crates/agent-electron-client/src/renderer/components/pages/OverviewPage.tsx
index c7fa8627..a6139e53 100644
--- a/qimingclaw/crates/agent-electron-client/src/renderer/components/pages/OverviewPage.tsx
+++ b/qimingclaw/crates/agent-electron-client/src/renderer/components/pages/OverviewPage.tsx
@@ -1,39 +1,18 @@
import React, {
- useCallback,
useEffect,
useMemo,
useRef,
useState,
} from "react";
-import { Alert, Button, Input, message } from "antd";
-import { ReloadOutlined, SaveOutlined } from "@ant-design/icons";
+import { Alert } from "antd";
import { APP_DISPLAY_NAME } from "@shared/constants";
import { t } from "../../services/core/i18n";
import styles from "../../styles/components/OverviewPage.module.css";
-const OVERVIEW_URL_SETTING_KEY = "overview.digital_employee_url";
const DEFAULT_OVERVIEW_URL = "sgrobot-digital/index.html#/digital";
-function normalizeOverviewUrl(value: string): string {
- const trimmed = value.trim();
- if (!trimmed) return DEFAULT_OVERVIEW_URL;
- const url = new URL(trimmed, window.location.href);
- const legacySgRobotEndpoint =
- (url.hostname === "localhost" && url.port === "5173") ||
- (url.hostname === "127.0.0.1" && url.port === "42617");
- if (legacySgRobotEndpoint && url.pathname === "/_app/digital") {
- return DEFAULT_OVERVIEW_URL;
- }
- if (!["http:", "https:", "file:"].includes(url.protocol)) {
- throw new Error("Unsupported protocol");
- }
- return trimmed;
-}
-
function OverviewPage() {
const webviewRef = useRef(null);
- const [url, setUrl] = useState(DEFAULT_OVERVIEW_URL);
- const [draftUrl, setDraftUrl] = useState(DEFAULT_OVERVIEW_URL);
const [error, setError] = useState(null);
const [userAgent, setUserAgent] = useState();
@@ -46,22 +25,6 @@ function OverviewPage() {
.catch(() => {});
}, []);
- useEffect(() => {
- let mounted = true;
- window.electronAPI?.settings
- .get(OVERVIEW_URL_SETTING_KEY)
- .then((saved) => {
- if (!mounted || typeof saved !== "string" || !saved.trim()) return;
- const normalized = normalizeOverviewUrl(saved);
- setUrl(normalized);
- setDraftUrl(normalized);
- })
- .catch(() => {});
- return () => {
- mounted = false;
- };
- }, []);
-
useEffect(() => {
const el = webviewRef.current as any;
if (!el) return;
@@ -85,58 +48,15 @@ function OverviewPage() {
el.removeEventListener("did-start-loading", handleStartLoading);
el.removeEventListener("did-fail-load", handleFailLoad);
};
- }, [url]);
-
- const canSave = useMemo(() => draftUrl.trim() !== url, [draftUrl, url]);
- const webviewUrl = useMemo(
- () => new URL(url, window.location.href).toString(),
- [url],
- );
-
- const handleReload = useCallback(() => {
- setError(null);
- (webviewRef.current as any)?.reload?.();
}, []);
- const handleSave = useCallback(async () => {
- try {
- const normalized = normalizeOverviewUrl(draftUrl);
- await window.electronAPI?.settings.set(
- OVERVIEW_URL_SETTING_KEY,
- normalized,
- );
- setUrl(normalized);
- setDraftUrl(normalized);
- setError(null);
- message.success(t("Claw.Overview.urlSaved"));
- } catch {
- message.error(t("Claw.Overview.invalidUrl"));
- }
- }, [draftUrl]);
+ const webviewUrl = useMemo(
+ () => new URL(DEFAULT_OVERVIEW_URL, window.location.href).toString(),
+ [],
+ );
return (
-
- {t("Claw.Overview.title")}
- setDraftUrl(e.target.value)}
- onPressEnter={handleSave}
- />
- }
- onClick={handleSave}
- disabled={!canSave}
- >
- {t("Claw.Common.save")}
-
- } onClick={handleReload}>
- {t("Claw.Common.refresh")}
-
-
{error && (