import type { Metadata } from "next"; import { JetBrains_Mono, Source_Sans_3 } from "next/font/google"; import "katex/dist/katex.min.css"; import "./globals.css"; import { AppShell, SidebarProvider } from "@/components/sidebar"; import { ActivityProvider } from "@/components/activity-dock"; import { ServerEventsProvider } from "@/components/server-events"; import { AppearanceProvider } from "@/components/settings/appearance"; // Chrome = JetBrains Mono, teaching prose = Source Sans 3, titles = CMU // Serif (the bundled lh-cmu @font-face in globals.css — no CDN). const ui = JetBrains_Mono({ subsets: ["latin"], variable: "--font-jetbrains" }); const prose = Source_Sans_3({ subsets: ["latin"], variable: "--font-sans3" }); export const metadata: Metadata = { title: "Learning Harness", description: "A teacher agent with a memory — sessions, quizzes, and a knowledge graph of what you know.", }; export default function RootLayout({ children }: { children: React.ReactNode }) { return ( {/* The notification channel rides OUTSIDE everything: sidebar, dock, and pages all subscribe as the polls retire (push S3, 2026-10-02). */} {children} ); }