diff options
| author | Adam Malczewski <[email protected]> | 2026-06-27 19:29:35 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-27 19:29:35 +0900 |
| commit | 6b08485fd94dbe18d70cbbc02cb931a4f50cc1d1 (patch) | |
| tree | 8c2c6a8403dc5caa227e251cc11f99cc600b909a /src/features/conversation-cache/types.ts | |
| parent | 38416765b3ac9707e7a5f5df5e3fd50a82c4ea32 (diff) | |
| download | dispatch-web-6b08485fd94dbe18d70cbbc02cb931a4f50cc1d1.tar.gz dispatch-web-6b08485fd94dbe18d70cbbc02cb931a4f50cc1d1.zip | |
fix(concurrency): silent background refresh — no loading flicker
The 2s status poll (and post-mutation limit reloads) toggled a visible
loading state, but since the refresh is near-instant the spinner flashed
for <1 frame — a visible flicker/jerk every poll. The polling is now
SILENT (mirrors the heartbeat runs list):
- refreshLimits/refreshStatus: re-entrancy guard (limitsInFlight/statusInFlight,
no UI), no loading-state toggle. Error cleared only on success so it stays
visible + stable during an in-flight retry (no vanish-mid-poll).
- Removed limitsLoading/statusLoading: the Refresh buttons are plain-text
(no spinner, not disabled); the empty-state guards use hasLoaded* only
(no && !loading), so the list area never reflows mid-refresh.
+1 regression-guard test (Refresh buttons never surface a spinner). typecheck
0/0, 926 tests green (x2), biome clean, build OK.
Diffstat (limited to 'src/features/conversation-cache/types.ts')
0 files changed, 0 insertions, 0 deletions
