Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
1. App.tsx: add restoreSession() call on startup to prevent redirect to login page after refresh (isRestoring guard + BootstrapScreen) 2. CloneManager: call syncAgents() after loadClones() to restore currentAgent and conversation history on app load 3. zclaw-memory: add get_or_create_session() so frontend session UUID is persisted directly — kernel no longer creates mismatched IDs 4. openai.rs: assistant message content must be non-empty for Kimi/Qwen APIs — replace empty content with meaningful placeholders Also includes admin-v2 ModelServices unified page (merge providers + models + API keys into expandable row layout)
26 lines
674 B
TypeScript
26 lines
674 B
TypeScript
import type { ReactNode } from 'react'
|
|
|
|
interface PageHeaderProps {
|
|
title: string
|
|
description?: string
|
|
actions?: ReactNode
|
|
}
|
|
|
|
export function PageHeader({ title, description, actions }: PageHeaderProps) {
|
|
return (
|
|
<div className="flex items-start justify-between mb-6">
|
|
<div>
|
|
<h1 className="text-xl font-semibold text-neutral-900 dark:text-neutral-100">
|
|
{title}
|
|
</h1>
|
|
{description && (
|
|
<p className="mt-1 text-sm text-neutral-500 dark:text-neutral-400">
|
|
{description}
|
|
</p>
|
|
)}
|
|
</div>
|
|
{actions && <div className="flex items-center gap-2">{actions}</div>}
|
|
</div>
|
|
)
|
|
}
|