Follow-up to a1cc09d22d.
The model and feature dropdown lists in the AI Usage admin page weren't
updating when users changed the time period. For example, switching from
"Last month" to "Last 24 hours" would still show models that had no
usage in the last 24 hours.
The root cause was a race condition in the caching mechanism. The cache
was being cleared inside the async `fetchData` method, but tracked
property changes in methods like `setPeriodDates` would trigger Glimmer
re-renders before the cache was cleared. This caused the stale cached
values to be used during re-render.
Additionally, the cache could be populated with empty arrays during
initial render before the AJAX response arrived, preventing proper
population once data was available.
The fix moves cache invalidation to happen synchronously before any
tracked property changes, and only populates the cache when actual data
is present. This ensures the dropdown options always reflect the
currently selected time period.
Ref - https://meta.discourse.org/t/bug-in-llm-usage-ui/392652