diff --git a/src/app/page.tsx b/src/app/page.tsx
index cc7e0bd..ea310e3 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -1,13 +1,13 @@
"use client";
import React, { useState, useEffect, useCallback, Suspense } from "react";
-import Image from "next/image";
import { useQueryState } from "nuqs";
import { AccountDialog } from "@/app/components/AccountDialog";
import { ChangePasswordDialog } from "@/app/components/ChangePasswordDialog";
import { ConfigDialog } from "@/app/components/ConfigDialog";
import { ErrorLogBell } from "@/app/components/ErrorLogBell";
import { ImageModelsDialog } from "@/app/components/ImageModelsDialog";
+import { SystemConfigDialog } from "@/app/components/system-config/SystemConfigDialog";
import { Button } from "@/components/ui/button";
import {
DropdownMenu,
@@ -29,6 +29,7 @@ import {
PanelRight,
PanelRightClose,
LogOut,
+ ServerCog,
SlidersHorizontal,
UserRound,
} from "lucide-react";
@@ -44,9 +45,15 @@ import { SkillsMarketplace } from "@/app/components/SkillsMarketplace";
import { MemoryPanel } from "@/app/components/MemoryPanel";
import { ScheduledTasksPanel } from "@/app/components/ScheduledTasksPanel";
import { ThemeToggle } from "@/app/components/ThemeToggle";
+import { VersionBadge } from "@/app/components/VersionBadge";
import { HealthIndicator } from "@/app/components/HealthIndicator";
import { InspectorPanel } from "@/app/components/InspectorPanel";
import { setThreadAutoApprove } from "@/lib/autoApprove";
+import {
+ DEFAULT_WORDMARK,
+ logoSrc,
+ usePublicSystemConfig,
+} from "@/app/hooks/usePublicSystemConfig";
import type { MainChatReporter } from "@/lib/asyncAgents";
import { cn } from "@/lib/utils";
@@ -54,9 +61,11 @@ const FALLBACK_ASSISTANT_ID = "EvoScientist";
interface HomePageInnerProps {
authEnabled: boolean;
+ isAdmin: boolean;
}
-function HomePageInner({ authEnabled }: HomePageInnerProps) {
+function HomePageInner({ authEnabled, isAdmin }: HomePageInnerProps) {
+ const publicConfig = usePublicSystemConfig();
const [threadId, setThreadId] = useQueryState("threadId");
const [sidebar, setSidebar] = useQueryState("sidebar");
const [view, setView] = useQueryState("view");
@@ -75,6 +84,7 @@ function HomePageInner({ authEnabled }: HomePageInnerProps) {
const [changePasswordOpen, setChangePasswordOpen] = useState(false);
const [modelConfigOpen, setModelConfigOpen] = useState(false);
const [imageModelsOpen, setImageModelsOpen] = useState(false);
+ const [systemConfigOpen, setSystemConfigOpen] = useState(false);
// "Submit a message on the main thread" — registered by ChatInterface (only
// while it's mounted, i.e. on the chat view), used by the Agents board to loop
// an async result back to the main agent. Null when not on the chat view.
@@ -293,25 +303,31 @@ function HomePageInner({ authEnabled }: HomePageInnerProps) {
open={imageModelsOpen}
onOpenChange={setImageModelsOpen}
/>
+