d96895c276
Two bugs: 1. Manual 'Refresh' button didn't refresh weather/RSS before compiling. The daily scheduler calls refresh_all_feeds + refresh_location_cache before run_compilation; the manual trigger route called run_compilation directly, reading a stale cache. Manual trigger now mirrors the scheduler: refresh feeds and all configured weather locations first. 2. Navigating to WorkspaceView during a long briefing compilation caused the workspace chat to show the briefing content. triggerNow awaits ~30-60s; on completion it called loadAll() → chatStore.fetchConversation which overwrote the workspace's currentConversation in the shared store. Fixed with a _mounted flag — all post-async state writes in BriefingView are now guarded so they no-op if the component has been unmounted. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>