'use client' import { useState, useEffect } from 'react' import { useData } from '@/components/data-provider' import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card' import { Button } from '@/components/ui/button' import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle, } from '@/components/ui/dialog' import { Badge } from '@/components/ui/badge' import { RefreshCw, RotateCcw, AlertTriangle, Database, HardDrive, FolderSync, } from 'lucide-react' import { BackupCard } from '@/components/backup-section' export default function SettingsPage() { const { syncing, resetting, lastSyncResult, lastSyncTime, handleSync, handleReset } = useData() const [resetOpen, setResetOpen] = useState(false) const [paths, setPaths] = useState<{ database: string; images: string; claudeLogs: string; codexLogs: string } | null>(null) useEffect(() => { fetch('/api/check') .then((r) => r.json()) .then((d) => { if (d.paths) setPaths(d.paths) }) .catch(() => {}) }, []) return (
Import new sessions from ~/.claude and ~/.codex into the local database.
{lastSyncTime && (Last synced: {lastSyncTime.toLocaleString()} {lastSyncResult && ( — {lastSyncResult.sessionsAdded} added, {lastSyncResult.sessionsSkipped} skipped )}
)}Delete all synced data and re-import from log files on disk. Use if data seems corrupted.
{paths?.database ?? 'agentfit.db'}
{paths?.claudeLogs ?? '~/.claude/projects/'}
{paths?.codexLogs ?? '~/.codex/sessions/'}
{paths?.images ?? 'data/images/'}