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
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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:Design notes
bcc_core.py(e.g. aHealthStatusenum/const + a function that maps a spawn-test result → status + summary), unit-tested without Qt.Acceptance criteria
Filed by the supervisor (Cowork) session.