What happens
warmup_models returns a per-model ModelWarmupStatus saying exactly which of the four models came down and which did not. desktop/ui/setup.js throws the value away.
So a user whose beat model never arrived sees a clean, successful setup, and then a permanently worse beat grid, with nothing at any point connecting the two. There is no message, no log line, and nothing in the UI.
Why it matters more than it looks
The degraded state is genuinely invisible from the outside. Beat detection falls back to librosa, which looks exactly like a machine that never had the model. The karaoke split just reports itself unavailable. Neither says why, and neither points at setup.
This is the piece that turns #603 from a bug into a bug nobody can report, because the user has no reason to suspect their models at all.
Constraints
- The setup wizard is the wrong place for the visible message. The step that follows overwrites the status line immediately and then navigates away to the backend, so anything written there cannot be read.
- The right home is the main UI, next to the feature that is actually degraded, which is a larger piece of work than the one line that reads the status.
desktop/ui/setup.js has no i18n layer at all (no import, all strings hardcoded), unlike the web UI in static/. Anything added there does not go through the language tables.
What happens
warmup_modelsreturns a per-modelModelWarmupStatussaying exactly which of the four models came down and which did not.desktop/ui/setup.jsthrows the value away.So a user whose beat model never arrived sees a clean, successful setup, and then a permanently worse beat grid, with nothing at any point connecting the two. There is no message, no log line, and nothing in the UI.
Why it matters more than it looks
The degraded state is genuinely invisible from the outside. Beat detection falls back to librosa, which looks exactly like a machine that never had the model. The karaoke split just reports itself unavailable. Neither says why, and neither points at setup.
This is the piece that turns #603 from a bug into a bug nobody can report, because the user has no reason to suspect their models at all.
Constraints
desktop/ui/setup.jshas no i18n layer at all (no import, all strings hardcoded), unlike the web UI instatic/. Anything added there does not go through the language tables.