The details panel kept spinning after Pause, so a frozen dev server looked like a
working one. The spinner is the whole claim being made, and it was false — the
state most likely to be watched, since the panel is where you sit while a `bun dev`
runs.
Amber either way: it is still a live job holding its port and its memory, which is
what separates paused from stopped. What changes is the motion, and the line beside
it now reads `paused` rather than `running…`.
── And the state moved up a level ──
`paused` lived in the panel, which unmounts when you close it. Closing and
reopening would have put a spinning icon back over a stopped process — the exact
failure this commit is fixing, arriving by a different route. It is the tray's now,
so it survives the panel being closed.
Still per-session: a reload forgets, and the button then offers Pause on a job that
is already frozen. SIGSTOP makes that harmless, and the honest fix is asking the
process rather than remembering — `ps -o state=` on the pids holding the output
file would make it survive anything, at the cost of a spawn per poll. Worth doing
if this ever misleads.
The chip is unchanged: a paused job still shows the running dot there, because live
is what that dot means and the distinction belongs where the controls are.
tsgo clean, frontend builds, 914 pass / 7 fail unchanged.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>