{env.NEXT_PUBLIC_STATIC_WEBSITE_ONLY === "true" ? (
-
+
{titleBlock}
) : (
diff --git a/frontend-web/src/components/workspace/workspace-nav-chat-list.tsx b/frontend-web/src/components/workspace/workspace-nav-chat-list.tsx
index 6528071a..f6dc0858 100644
--- a/frontend-web/src/components/workspace/workspace-nav-chat-list.tsx
+++ b/frontend-web/src/components/workspace/workspace-nav-chat-list.tsx
@@ -20,18 +20,18 @@ export function WorkspaceNavChatList() {
-
+
{t.sidebar.newChat}
-
-
+
+
{t.sidebar.chats}
@@ -39,10 +39,10 @@ export function WorkspaceNavChatList() {
-
+
{t.sidebar.agents}
@@ -50,10 +50,10 @@ export function WorkspaceNavChatList() {
-
+
任务管理
diff --git a/frontend-web/src/core/threads/utils.ts b/frontend-web/src/core/threads/utils.ts
index fc31b859..1c2b7ab5 100644
--- a/frontend-web/src/core/threads/utils.ts
+++ b/frontend-web/src/core/threads/utils.ts
@@ -36,8 +36,8 @@ export function pathOfThread(
: pickAgentRef(thread.context, thread.metadata);
return agentRef
- ? `/workspace/agents/${encodeURIComponent(agentRef)}/chats/${threadId}`
- : `/workspace/chats/${threadId}`;
+ ? `/page/workspace/agents/${encodeURIComponent(agentRef)}/chats/${threadId}`
+ : `/page/workspace/chats/${threadId}`;
}
export function textOfMessage(message: Message) {
diff --git a/frontend-web/src/pages/AgentChatPage.tsx b/frontend-web/src/pages/AgentChatPage.tsx
index 6bf9e897..19bd0918 100644
--- a/frontend-web/src/pages/AgentChatPage.tsx
+++ b/frontend-web/src/pages/AgentChatPage.tsx
@@ -66,7 +66,7 @@ export default function AgentChatPage() {
history.replaceState(
null,
"",
- `${window.location.pathname}${window.location.search}#/workspace/agents/${agent_id}/chats/${createdThreadId}`,
+ `${window.location.pathname}${window.location.search}#/page/workspace/agents/${agent_id}/chats/${createdThreadId}`,
);
},
onFinish: (state) => {
@@ -137,7 +137,7 @@ export default function AgentChatPage() {
size="sm"
variant="secondary"
onClick={() => {
- router.push(`/workspace/agents/${agent_id}/chats/new`);
+ router.push(`/page/workspace/agents/${agent_id}/chats/new`);
}}
>
{t.agents.newChat}
diff --git a/frontend-web/src/pages/ChatPage.tsx b/frontend-web/src/pages/ChatPage.tsx
index 78da500b..8a2cd504 100644
--- a/frontend-web/src/pages/ChatPage.tsx
+++ b/frontend-web/src/pages/ChatPage.tsx
@@ -64,7 +64,7 @@ export default function ChatPage() {
history.replaceState(
null,
"",
- `${window.location.pathname}${window.location.search}#/workspace/chats/${createdThreadId}`,
+ `${window.location.pathname}${window.location.search}#/page/workspace/chats/${createdThreadId}`,
);
},
onFinish: (state) => {
diff --git a/frontend-web/src/pages/LoginPage.tsx b/frontend-web/src/pages/LoginPage.tsx
index 826c4f2b..fce89afa 100644
--- a/frontend-web/src/pages/LoginPage.tsx
+++ b/frontend-web/src/pages/LoginPage.tsx
@@ -33,7 +33,7 @@ export default function LoginPage() {
}
setStoredAuth(auth);
setStatus("success");
- router.replace("/workspace/chats/new");
+ router.replace("/page/workspace/chats/new");
} catch (error) {
if (cancelled) {
return;
diff --git a/frontend-web/src/pages/NewAgentPage.tsx b/frontend-web/src/pages/NewAgentPage.tsx
index a9d4f531..e345b639 100644
--- a/frontend-web/src/pages/NewAgentPage.tsx
+++ b/frontend-web/src/pages/NewAgentPage.tsx
@@ -317,7 +317,7 @@ export default function NewAgentPage() {
@@ -478,7 +478,7 @@ export default function NewAgentPage() {
diff --git a/frontend-web/src/pages/NotFoundPage.tsx b/frontend-web/src/pages/NotFoundPage.tsx
index d26ffd87..f41e0035 100644
--- a/frontend-web/src/pages/NotFoundPage.tsx
+++ b/frontend-web/src/pages/NotFoundPage.tsx
@@ -10,7 +10,7 @@ export function NotFoundPage() {
dedicated migration pass.
Open workspace
diff --git a/frontend-web/src/pages/PageRoutes.tsx b/frontend-web/src/pages/PageRoutes.tsx
new file mode 100644
index 00000000..30f53d58
--- /dev/null
+++ b/frontend-web/src/pages/PageRoutes.tsx
@@ -0,0 +1,20 @@
+import { Navigate, Route, Routes } from "react-router-dom";
+
+import WorkspaceRoutes from "./WorkspaceRoutes";
+
+// 根路由容器,统一承接 /page/* 下的所有子系统路由
+export default function PageRoutes() {
+ return (
+
+ } />
+
+ {/* 现有系统:DeerFlow Workspace */}
+ } />
+
+ {/* TODO: 引入外部系统路由
+ import AnotherSystemRoutes from "外部系统路径";
+ } />
+ */}
+
+ );
+}
diff --git a/frontend-web/src/pages/ScheduledChatPage.tsx b/frontend-web/src/pages/ScheduledChatPage.tsx
index df19b271..84adc17f 100644
--- a/frontend-web/src/pages/ScheduledChatPage.tsx
+++ b/frontend-web/src/pages/ScheduledChatPage.tsx
@@ -12,7 +12,7 @@ export default function ScheduledChatPage() {
const { data, isLoading, error } = useSchedulerThread();
if (data?.thread_id) {
- return ;
+ return ;
}
return (
diff --git a/frontend-web/src/pages/ScheduledTaskRunDetailPage.tsx b/frontend-web/src/pages/ScheduledTaskRunDetailPage.tsx
index 15e543fd..4071b1e8 100644
--- a/frontend-web/src/pages/ScheduledTaskRunDetailPage.tsx
+++ b/frontend-web/src/pages/ScheduledTaskRunDetailPage.tsx
@@ -174,7 +174,7 @@ export default function ScheduledTaskRunDetailPage() {
try {
await actions.removeRun.mutateAsync(run.id);
toast.success("执行记录已删除");
- navigate("/workspace/scheduled/tasks");
+ navigate("/page/workspace/scheduled/tasks");
} catch (error) {
toast.error(error instanceof Error ? error.message : "删除失败");
}
@@ -198,7 +198,7 @@ export default function ScheduledTaskRunDetailPage() {
执行信息
-