bea64fe85e
## Motivation When navigating back to a previous conversation that used a different model than the one currently loading, the UI incorrectly displayed the other model's loading/download progress bar instead of the conversation messages. Additionally, attempting to continue that old conversation by sending a message would create an entirely new chat rather than continuing the existing one. ## Changes All changes in `dashboard/src/routes/+page.svelte`: 1. **Added fallthrough reset in the `chatLaunchState` restore `$effect`**: When switching to a conversation whose model has no active instance (not running, not downloading, not loading), the effect now resets `chatLaunchState` to `"idle"` instead of leaving stale state from a different model. 2. **Added `skipCreate` parameter to `launchModelForChat()`**: When continuing an existing conversation (has messages), `createConversation()` is skipped so the old conversation is preserved rather than replaced with a new empty one. 3. **Reordered view conditional**: Progress views (downloading/loading/launching) take priority, then conversation messages (when idle with messages or model ready), then model selector (idle with no messages). This ensures: - Old conversations display normally when their model isn't running - Download progress shows when relaunching a model for any conversation - Model selector only appears when there are no messages ## Why It Works - The `$effect` fallthrough prevents `chatLaunchState` from retaining a stale value (e.g., `"downloading"`) from Model A when the user switches to a conversation using Model B that has no active state. - The `skipCreate` flag ensures `launchModelForChat` can be reused for both new conversations (from model picker) and continuing existing ones (from chat input) without always creating a new conversation. - The reordered view logic ensures each state maps to the correct UI: active launch → progress, existing messages → chat view, nothing → model selector. ## Test Plan ### Manual Testing - Load an old conversation while a different model is downloading → should see conversation messages, not the other model's loading bar - Send a message from that old conversation → model should launch/download with progress shown → conversation continues with the response appended - Select a new model from the picker → should still create a new conversation as before - New conversation with model download → progress bar shows correctly --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>