+
{hasPendingQuestions ? (
) : (
)}
+
+ {askEnabled && (
+ // Docked below the top nav (h-16) and above the steer bar (z-30); the
+ // sidebar animates its own width, so the wrapper collapses when closed.
+
+
setAskOpen(false)} />
+
+ )}
);
}
diff --git a/apps/fabro-web/app/routes/settings-integrations.tsx b/apps/fabro-web/app/routes/settings-integrations.tsx
index 64140f1ef..cf17cfd9d 100644
--- a/apps/fabro-web/app/routes/settings-integrations.tsx
+++ b/apps/fabro-web/app/routes/settings-integrations.tsx
@@ -38,10 +38,21 @@ export default function SettingsIntegrations() {
+
{resources ? (
<>
@@ -48,6 +49,32 @@ export default function SettingsResources() {
);
}
+function RunsPanel() {
+ const infoQuery = useSystemInfo(5_000);
+ const settingsQuery = useServerSettings();
+ const info = infoQuery.data;
+ const settings = settingsQuery.data;
+
+ if (!info || !settings) {
+ return
;
+ }
+
+ const active = info.runs?.active ?? 0;
+ const max = settings.server.scheduler.max_concurrent_runs;
+ const percent = max > 0 ? (active / max) * 100 : null;
+
+ return (
+
+
+
+
+
+ );
+}
+
function CpuPanel({ cpu }: { cpu: SystemCpuResources }) {
if (!cpu.supported) {
return (