"Test all" + per-server health/status column #28

Closed
opened 2026-07-08 11:46:15 -04:00 by the_og · 0 comments
Owner

Problem

The spawn-test (#2) runs one server at a time, and its result isn't persisted in the list view. There's no at-a-glance answer to "which of my servers actually launch?" — which is the #1 question when a server won't show up in Claude.

Proposed solution

Build on the existing SpawnTester (bcc.py) / spawn-test core:

  • A "Test all" button that runs the spawn-test across all enabled stdio servers (remote/url servers are skipped or pinged as appropriate), off the UI thread, without freezing the app.
  • A status indicator per server row (a small colored dot / status cell): untested (grey), ok (green), crashed/failed (red), plus a tooltip with the short reason. Updates as each test completes.
  • Pairs naturally with the log viewer (#6) and spawn-test (#2).

Design notes

  • Keep the health-state model as a pure, testable helper in bcc_core.py (e.g. a HealthStatus enum/const + a function that maps a spawn-test result → status + summary), unit-tested without Qt.
  • Reuse the existing spawn-test logic; don't duplicate it.
  • Don't block the UI; tests run sequentially or pooled off-thread and update rows as they finish.

Acceptance criteria

  • "Test all" tests every enabled stdio server without freezing the UI.
  • Each row shows an updating status indicator (untested/ok/crashed) with a reason tooltip.
  • The result→status mapping is a pure function with unit tests.

Filed by the supervisor (Cowork) session.

## Problem The spawn-test (#2) runs one server at a time, and its result isn't persisted in the list view. There's no at-a-glance answer to "which of my servers actually launch?" — which is the #1 question when a server won't show up in Claude. ## Proposed solution Build on the existing `SpawnTester` (bcc.py) / spawn-test core: - A **"Test all"** button that runs the spawn-test across all enabled **stdio** servers (remote/url servers are skipped or pinged as appropriate), off the UI thread, without freezing the app. - A **status indicator per server row** (a small colored dot / status cell): untested (grey), ok (green), crashed/failed (red), plus a tooltip with the short reason. Updates as each test completes. - Pairs naturally with the log viewer (#6) and spawn-test (#2). ## Design notes - Keep the health-state model as a pure, testable helper in `bcc_core.py` (e.g. a `HealthStatus` enum/const + a function that maps a spawn-test result → status + summary), unit-tested without Qt. - Reuse the existing spawn-test logic; don't duplicate it. - Don't block the UI; tests run sequentially or pooled off-thread and update rows as they finish. ## Acceptance criteria - "Test all" tests every enabled stdio server without freezing the UI. - Each row shows an updating status indicator (untested/ok/crashed) with a reason tooltip. - The result→status mapping is a pure function with unit tests. _Filed by the supervisor (Cowork) session._
the_og added the P1 label 2026-07-08 11:46:15 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: the_og/better-claude-config#28