fix: event-loop freezes, plugin-install boot crash, tmux attach/scrollbar, Codex transcripts
- GET /api/workflows: one LEAD() window pass in a read worker (read-pool.js, workflow-stats.js); idx_events_session restored, idx_events_tool added - compat-sqlite gains function/pluck/readonly so a plugin install without a better-sqlite3 build boots again; antigravity-usage uses db.js's Database - install-hooks adds no checkout hooks while the agenthub plugin is enabled (events were doubled) - terminal attach runs the live tmux server's own binary; the pane scrollbar gets a visible 2-column style, and claude panes start with CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 so tmux keeps history to scroll - Codex sessions' conversation in GET /api/sessions/:id/transcript - Codex/Antigravity sessions claimed by their workspace without hooks - UI-audit follow-ups, docs and OpenAPI
This commit is contained in:
@@ -1583,15 +1583,30 @@ function AnalyticsTab() {
|
||||
);
|
||||
}
|
||||
|
||||
// The workflow sections the health cards read; the server computes only these.
|
||||
const HEALTH_SECTIONS = [
|
||||
"stats",
|
||||
"toolFlow",
|
||||
"effectiveness",
|
||||
"modelDelegation",
|
||||
"errorPropagation",
|
||||
"concurrency",
|
||||
"compaction",
|
||||
] as const satisfies readonly (keyof WorkflowData)[];
|
||||
type HealthWorkflow = Pick<WorkflowData, (typeof HEALTH_SECTIONS)[number]>;
|
||||
|
||||
function SystemHealthTab() {
|
||||
const { t } = useTranslation("dashboard");
|
||||
const [info, setInfo] = useState<SystemInfo | null>(null);
|
||||
const [workflow, setWorkflow] = useState<WorkflowData | null>(null);
|
||||
const [workflow, setWorkflow] = useState<HealthWorkflow | null>(null);
|
||||
|
||||
const [loadError, setLoadError] = useState<string | null>(null);
|
||||
const loadData = useCallback(async () => {
|
||||
try {
|
||||
const [infoRes, workflowRes] = await Promise.all([api.settings.info(), api.workflows.get()]);
|
||||
const [infoRes, workflowRes] = await Promise.all([
|
||||
api.settings.info(),
|
||||
api.workflows.get(undefined, HEALTH_SECTIONS),
|
||||
]);
|
||||
setInfo(infoRes as any);
|
||||
setWorkflow(workflowRes);
|
||||
setLoadError(null);
|
||||
|
||||
Reference in New Issue
Block a user