import React, { useState } from 'react'; import { History, GitCommit, CheckCircle2, AlertCircle, FileText, Clock, ShieldCheck, ChevronDown } from 'lucide-react'; export default function AuditLog({ activityFeed, loading }) { const [filterType, setFilterType] = useState('ALL'); if (loading) { return (

Loading Git Audit Trail...

); } const events = activityFeed || []; const filtered = events.filter((e) => { if (filterType === 'ALL') return true; return e.type === filterType; }); const getEventBadge = (type) => { switch (type) { case 'proposal_approved': return { color: 'bg-emerald-500/10 text-emerald-400 border-emerald-500/20', label: 'COMMITTED', }; case 'proposal_created': return { color: 'bg-amber-500/10 text-amber-300 border-amber-500/20', label: 'PROPOSED', }; case 'workflow_completed': return { color: 'bg-blue-500/10 text-blue-300 border-blue-500/20', label: 'WORKFLOW', }; default: return { color: 'bg-slate-800 text-slate-300 border-slate-700', label: 'ACTIVITY', }; } }; return (
{/* Audit Log Header */}

Immutable Git Audit Log

Cryptographically verifiable lineage of knowledge commits, reviews, and workflows.

{['ALL', 'proposal_approved', 'proposal_created', 'workflow_completed'].map((f) => ( ))}
{/* Visual Commit History Timeline */}
{filtered.length === 0 ? (
No audit records found matching criteria.
) : (
{filtered.map((evt, idx) => { const badge = getEventBadge(evt.type); const dateStr = evt.timestamp ? new Date(evt.timestamp).toLocaleString() : 'Recent'; const sha = (evt.id || 'commit').slice(-7); return (
{/* Timeline Dot */}
{sha} {badge.label} Verified
{dateStr}

{evt.message}

{evt.metadata && (
Metadata: {JSON.stringify(evt.metadata)}
)}
); })}
)}
); }