diff --git a/app/layout.tsx b/app/layout.tsx
index 46c9102..294edaf 100644
--- a/app/layout.tsx
+++ b/app/layout.tsx
@@ -17,6 +17,7 @@ export const metadata: Metadata = {
siteName: 'Conduit',
images: [{ url: '/og-image.svg', width: 1200, height: 630, alt: 'Conduit — Streaming Payments on Stellar' }],
type: 'website',
+ locale: 'en_US',
},
twitter: {
card: 'summary_large_image',
diff --git a/components/CircuitBreakerOverlay.tsx b/components/CircuitBreakerOverlay.tsx
index fd2c806..6ae4c73 100644
--- a/components/CircuitBreakerOverlay.tsx
+++ b/components/CircuitBreakerOverlay.tsx
@@ -49,6 +49,9 @@ export function CircuitBreakerOverlay() {
return (
Circuit Breaker Monitor
+
+ Some actions are paused while the network recovers. They resume automatically.
+
{states.map((s) => {
const seconds = Math.ceil(s.remainingMs / 1000);
diff --git a/components/ErrorBoundary.tsx b/components/ErrorBoundary.tsx
index afe892e..e43f809 100644
--- a/components/ErrorBoundary.tsx
+++ b/components/ErrorBoundary.tsx
@@ -122,7 +122,8 @@ export class ErrorBoundary extends Component {
return this.props.fallback(this.state.error!, this.retry, this.reset);
}
- return React.createElement('div', { className: 'flex items-center justify-center min-h-[200px]' },
+ // Scoped to this boundary, so wrapping a single stream card keeps the rest of the page usable.
+ return React.createElement('div', { role: 'alert', className: 'flex items-center justify-center min-h-[200px]' },
React.createElement('div', { className: 'text-center p-6 max-w-md' },
React.createElement('h2', { className: 'text-lg font-semibold text-gray-700 dark:text-gray-300 mb-2' }, 'Something went wrong'),
React.createElement('p', { className: 'text-sm text-gray-500 dark:text-gray-400 mb-4' }, this.state.error?.message || 'An unexpected error occurred.'),
diff --git a/components/ThemeToggle.tsx b/components/ThemeToggle.tsx
index 6d48e93..b726b7a 100644
--- a/components/ThemeToggle.tsx
+++ b/components/ThemeToggle.tsx
@@ -25,7 +25,10 @@ export function ThemeToggle() {
useEffect(() => {
setMounted(true);
try {
- const stored = localStorage.getItem(THEME_STORAGE_KEY) || localStorage.getItem('theme');
+ const stored =
+ localStorage.getItem(THEME_STORAGE_KEY) ||
+ localStorage.getItem('conduit-theme') ||
+ localStorage.getItem('theme');
if (stored && (stored === 'light' || stored === 'dark' || stored === 'system') && stored !== theme) {
setTheme(stored);
}