- applications/iknowyou: new Next.js chat application with persona-aware conversations, briefing API, cohort logic, vLLM streaming, and sidebar navigation - tidal M8: add replication control plane (control.rs), tenant migration state machine (migration.rs), tenant/upgrade coordinators, cluster/fault test harnesses - tidal M8 tests: expand m8p2/m8p3/m8p4 test suites; add m8p5_multitenancy and m8_uat - tidal db: split replication_ops out of db/mod.rs (was 647 lines, now 574) - .claude: add kai-park, kaya-osei, mira-vasquez agents; add aeries-design-architect, aeries-fullstack-engineer, aeries-product-visionary skills - docs: update ROADMAP.md Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
45 lines
1.3 KiB
TypeScript
45 lines
1.3 KiB
TypeScript
"use client";
|
|
|
|
import { useState } from "react";
|
|
import { Sidebar } from "@/components/sidebar/sidebar";
|
|
import { ChatContainer } from "@/components/chat/chat-container";
|
|
|
|
export default function Home() {
|
|
const [sidebarOpen, setSidebarOpen] = useState(false);
|
|
|
|
return (
|
|
<div className="flex h-dvh">
|
|
<Sidebar isOpen={sidebarOpen} onClose={() => setSidebarOpen(false)} />
|
|
|
|
<div className="flex flex-col flex-1 min-w-0">
|
|
{/* Mobile header with menu toggle */}
|
|
<div className="flex items-center px-4 py-2 border-b border-border md:hidden">
|
|
<button
|
|
onClick={() => setSidebarOpen(true)}
|
|
className="text-text-muted hover:text-text p-1 -ml-1"
|
|
>
|
|
<svg
|
|
width="20"
|
|
height="20"
|
|
viewBox="0 0 20 20"
|
|
fill="none"
|
|
stroke="currentColor"
|
|
strokeWidth="1.5"
|
|
strokeLinecap="round"
|
|
>
|
|
<line x1="3" y1="5" x2="17" y2="5" />
|
|
<line x1="3" y1="10" x2="17" y2="10" />
|
|
<line x1="3" y1="15" x2="17" y2="15" />
|
|
</svg>
|
|
</button>
|
|
<span className="text-text-muted text-xs font-medium ml-3 tracking-wide">
|
|
aeries
|
|
</span>
|
|
</div>
|
|
|
|
<ChatContainer />
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|