feat: add compact toolbox and public wiki vector search

This commit is contained in:
吉鑫升 committed 2026-08-26 14:40:57 +08:00
1 parent 9f29ecae9e
commit d35d075669
29 files changed
+757 -128

No files matched your search

+1 -1
View File
@@ -810,7 +810,7 @@ export default function AgentChatPage({
agentName={agentDisplayName}
disabled={thread.isLoading || isDemoMode}
onAskQuestion={(text) => handleSubmit({ text, files: [] })}
defaultCollapsed={taskCtxOn}
defaultCollapsed
showRecentChats={!taskCtxOn}
compactAppearanceActions={compactAppearanceActions}
/>
@@ -261,12 +261,17 @@ function compactRowsFromTree(tree: MenuItem[], overrides: CompactMenuOverride[])
}
function normalizeCompactRows(rows: CompactRow[]): CompactRow[] {
const placementOrder: Record<CompactMenuPlacement, number> = {
sidebar: 0,
settings: 1,
toolbox: 2,
};
return rows
.slice()
.sort(
(a, b) =>
a.topIndex - b.topIndex ||
Number(a.placement === "settings") - Number(b.placement === "settings") ||
placementOrder[a.placement] - placementOrder[b.placement] ||
a.order - b.order ||
a.id.localeCompare(b.id),
);
@@ -1091,7 +1096,7 @@ function CompactMenuManagementPanel({ baseTree }: { baseTree: MenuItem[] }) {
<p className="flex max-w-2xl items-start gap-2.5 rounded-2xl border border-slate-200/50 bg-slate-50/70 p-3.5 text-sm leading-relaxed text-slate-600">
<Info className="mt-0.5 size-4 shrink-0 text-slate-400" />
<span>
这里配置的是简洁模式工作区左侧菜单,保存后仅对当前网页使用的
这里配置简洁模式菜单在左侧菜单、设置和更多、右侧工具箱之间的分布,保存后仅对当前网页使用的
{COMPACT_MENU_TYPE_LABELS[runtimeType]}生效(两套部署各改各的);全量模式菜单不受影响。
</span>
</p>
@@ -1132,6 +1137,7 @@ function CompactMenuManagementPanel({ baseTree }: { baseTree: MenuItem[] }) {
<SelectContent>
<SelectItem value="sidebar">左侧菜单</SelectItem>
<SelectItem value="settings">设置和更多</SelectItem>
<SelectItem value="toolbox">右侧工具箱</SelectItem>
</SelectContent>
</Select>
<div className="flex justify-end gap-1.5">
+8
View File
@@ -3,6 +3,7 @@ import { Navigate, Route, Routes } from "react-router-dom";
import { PageSidebar } from "@/components/page-sidebar";
import { PageSidebarDark } from "@/components/page-sidebar-dark";
import { CompactToolbox } from "@/components/workspace/compact-toolbox";
import { isChatsIframeWorkspacePath } from "@/core/page-layout/chats-iframe-route";
import { readSidebarEnabled } from "@/core/page-layout/sidebar-enabled";
import { isWujieEnv } from "@/core/embed/wujie";
@@ -102,12 +103,19 @@ function PageLayout() {
!embedActive &&
// `?hideChrome=1` 显式去 chrome:优先级高于上面对 dashboard-agent 的强制全局 chrome。
!chromeHidden;
const compactToolboxAllowed =
!chromeByPreference &&
!forceChromeForDashboardAgent &&
!embedActive &&
!chromeHidden &&
!isChatsIframeWorkspacePath(location.pathname);
// h-full(100%)而非 h-screen(100vh):配合 globals.css 的 html/body/#root height:100%
// 高度链,根布局跟随容器高度。全屏下 100% 解析到视口,与 h-screen 等价;无界等嵌套
// 下容器不占满整屏时,高度才能正确收缩而非锁死整屏。
return (
<RoundtableJobNotifier>
{compactToolboxAllowed && <CompactToolbox />}
<div className="h-full flex flex-col bg-muted/20">
{pageSidebarAllowed && !headerHidden && <Header collapsed={collapsed} />}
<div className="flex flex-1 overflow-hidden">