Repository navigation
sparkDash 2.32.0
Fixes since 2.31.0, mostly for remote and iPhone setups.
Upgrade (Docker): git pull then docker compose up --build -d.
Fixed
- Sidebar reorder — dropping a Spark after dragging it no longer also opens it. The drag library swallows the click that follows a drop before the app sees it, so the browser followed the link on its own; the default action is now cancelled for a moment after a drop
- TensorFold prefill tok/s no longer reads 100k+. The rate divided every prompt token by the time spent computing, but an agent that re-sends a growing conversation gets ~95% of those tokens from the prefix cache (a 56k-token turn computed 2.7k tokens in 1.1 s and showed 49k tok/s, on another turn 146k). The probe now uses computed (uncached) tokens, from
cached_tokens_total, and holds the last real rate when a prompt was fully cached. Builds that do not report the cached total still use the whole prompt. Reported on a unit serving GLM-5.3-Flash. - An LLM that only SSH can reach is now monitored ("Something is loading" on a unit whose engine is up). The live probe only tried the unit's own address, so an engine on a port that is not exposed (a unit behind a NAT that forwards just SSH, like a remote Spark on port 30022) showed "LLM server not reachable", and the Overview card guessed that a model was still loading because the GPU memory was in use. After two failed direct probes the monitor now opens an SSH forward to the unit's loopback and probes through it (a via SSH chip on the LLM panel says so), retries the direct path if the forward keeps failing, backs off between attempts (1 to 15 minutes) and never tunnels for a pinned
llmHost, a local unit or a Windows PC. Reported for GLM-5.3-Flash on port 8093. - The installed iPhone app: header under the status bar, and the icon. The app runs under the status bar (
viewport-fit=cover), so the logo and the clock overlapped. The phone top bar now starts below the safe area (and respects the side insets in landscape), with a dark strip behind the status bar so the clock stays readable in the light themes. The home-screen icon was a dark square with a bare bolt; it is now the logo: the amber rounded square with the dark bolt (full-bleed for iOS and the maskable Android icons). iOS keeps the old icon until the app is removed from the home screen and added again. - Decode benchmark: "Live generation" no longer shows 0 tok/s. The live figure in the dialog was the engine's own reading, which is 0 on engines whose counters only move when a request finishes (TensorFold and EXL3
/healthtotals), and missing for a Remote target. It is now measured from the benchmark's own streams (tokens received across all streams over the last ~2 s, once a second; nothing is shown until the first token, not a 0 during prefill) and falls back to the engine reading only when there are no streams yet. Reported on a unit serving GLM-5.3-Flash on port 8093. - Health findings no longer flap at a threshold. A GPU hovering around 85 °C raised "running hot" and "back to normal" every minute and filled Activity with identical events. A finding now stays active for 90 s after its rule last raised it, so a reading that crosses a threshold back and forth produces one event and one "back to normal" when it has really settled. This applies to every health rule (temperature, memory, link speed, RoCE, concurrency).
Full history: CHANGELOG