diff --git a/apps/web/src/components/app/app-header.tsx b/apps/web/src/components/app/app-header.tsx
deleted file mode 100644
index e983638f..00000000
--- a/apps/web/src/components/app/app-header.tsx
+++ /dev/null
@@ -1,90 +0,0 @@
-import { PanelLeftOpen, PanelRightOpen } from "lucide-react";
-
-import { Button } from "@/components/ui/button";
-import { useIconColor } from "@/hooks/use-icon-color";
-import { cn } from "@/lib/utils";
-
-type AppHeaderProps = {
- leftOpen: boolean;
- mediaOpen: boolean;
- isMobile: boolean;
- showReconnectIndicator: boolean;
- hasActiveAgent: boolean;
- unseenMediaCount: number;
- setLeftOpen: (open: boolean) => void;
- setMediaOpen: (open: boolean) => void;
-};
-
-export function AppHeader({
- leftOpen,
- mediaOpen,
- isMobile,
- showReconnectIndicator,
- hasActiveAgent,
- unseenMediaCount,
- setLeftOpen,
- setMediaOpen,
-}: AppHeaderProps): JSX.Element {
- const { iconColor } = useIconColor();
- const showLeftToggle = isMobile ? !leftOpen : !leftOpen;
- const showMediaToggle = hasActiveAgent && (!mediaOpen || isMobile);
-
- return (
-
-
- {showLeftToggle ? (
-
-
- {!isMobile ? (
-

- ) : null}
-
- ) : (
-
- )}
-
-
-
- {showMediaToggle ? (
-
- ) : null}
-
-
- {showReconnectIndicator ? (
-
- ) : null}
-
- );
-}
diff --git a/apps/web/src/components/app/brain-tab-content.tsx b/apps/web/src/components/app/brain-tab-content.tsx
deleted file mode 100644
index bd1bbeea..00000000
--- a/apps/web/src/components/app/brain-tab-content.tsx
+++ /dev/null
@@ -1,115 +0,0 @@
-import { Link } from "react-router-dom";
-import { ArrowRight, Brain, Database, List, Radio } from "lucide-react";
-
-import { useAgentBrainActivity } from "@/hooks/use-brain";
-import { encodeRepoRoot } from "@/lib/brain-encoding";
-import { cn } from "@/lib/utils";
-import {
- CollapsibleSection,
- ObjectCard,
- ListCard,
- EventCard,
-} from "@/components/app/brain-cards";
-
-type BrainTabContentProps = {
- agentId: string | null;
- repoRoot: string | null;
-};
-
-export function BrainTabContent({
- agentId,
- repoRoot,
-}: BrainTabContentProps): JSX.Element {
- const { data, isLoading, isError } = useAgentBrainActivity(agentId, repoRoot);
-
- if (!agentId || !repoRoot) {
- return (
-
-
-
-
No brain context available for this agent.
-
-
- );
- }
-
- if (isLoading) {
- return (
-
- );
- }
-
- if (isError) {
- return (
-
-
-
-
Failed to load brain data.
-
-
- );
- }
-
- const objects = data?.objects ?? [];
- const lists = data?.lists ?? [];
- const events = data?.events ?? [];
-
- if (objects.length === 0 && lists.length === 0 && events.length === 0) {
- return (
-
-
-
-
- This agent hasn't written any brain data yet.
-
-
-
- );
- }
-
- return (
-
-
-
- Shared memory this agent has written.
-
- {repoRoot ? (
-
- View full brain
-
-
- ) : null}
-
-
- {objects.map((obj) => (
-
- ))}
-
-
-
- {lists.map((list) => (
-
- ))}
-
-
-
- {events.map((event) => (
-
- ))}
-
-
- );
-}
diff --git a/apps/web/src/components/app/status-footer.tsx b/apps/web/src/components/app/status-footer.tsx
deleted file mode 100644
index 1a5dc528..00000000
--- a/apps/web/src/components/app/status-footer.tsx
+++ /dev/null
@@ -1,36 +0,0 @@
-import { Database, Server } from "lucide-react";
-
-import { ServiceStatus } from "@/components/app/service-status";
-import { type ServiceState } from "@/components/app/types";
-
-type StatusFooterProps = {
- apiState: ServiceState;
- dbState: ServiceState;
- serviceDotClass: (state: ServiceState) => string;
-};
-
-export function StatusFooter({
- apiState,
- dbState,
- serviceDotClass,
-}: StatusFooterProps): JSX.Element {
- return (
-
- );
-}