9e21ea17bbbbcb3e383d09fd3d9106645e13570d
Root cause: handleHosts and partitionTargets both declared their result slices with `var`, so an empty result (no logs old enough yet, or every requested target blocked by a floor) marshaled to JSON `null` instead of `[]` on fields without `omitempty`. The frontend's `.length` access on that `null` threw mid-render, which is why this shipped with the spinner stuck forever instead of the empty state ever painting -- production is freshly deployed with nothing yet older than the default 30-day cutoff, so every user hit this on first load. Also replaces the static "Loading hosts…" text with the existing shimmer Skeleton component for real visual feedback, and adds `?? []` fallbacks in api.ts as a second line of defense.
Description
Imported from github.com during the 2026-09-20 standup (local dir: cairnobs)
2.1 MiB
Languages
Go
72.5%
Svelte
12.1%
Rust
8%
TypeScript
4%
Shell
1.3%
Other
2%