// App — composes the three columns. Hydrates from /api/state and routes // every flow (upload, analyze, distill, brainstorm, export) through the API. class ErrorBoundary extends React.Component { constructor(props) { super(props); this.state = { error: null }; } static getDerivedStateFromError(error) { return { error }; } componentDidCatch(error, info) { console.error('ErrorBoundary caught:', error, info); } render() { if (!this.state.error) return this.props.children; return (
{String(this.state.error?.stack || this.state.error)}