diff --git a/static/js/cookbook.js b/static/js/cookbook.js
index 73965faf..124f883d 100644
--- a/static/js/cookbook.js
+++ b/static/js/cookbook.js
@@ -2802,6 +2802,7 @@ function _renderRecipes() {
html += '
';
html += '';
html += '';
+ html += '';
html += '
';
html += '';
html += '';
diff --git a/static/js/cookbookRunning.js b/static/js/cookbookRunning.js
index 3fd77cfa..a76bc316 100644
--- a/static/js/cookbookRunning.js
+++ b/static/js/cookbookRunning.js
@@ -3948,6 +3948,12 @@ async function _pollBackgroundStatus() {
_showDiagnosis(el, task._backendDiagnosis, task.output || '');
}
completedDeps.forEach(t => _refreshDepsAfterInstall(t));
+ // Ulysses: when a download finishes, invalidate the model scan cache
+ // so the Serve tab doesn't show stale results.
+ const justDownloaded = localTasks.filter(t => t.type === 'download' && t.status === 'done');
+ if (justDownloaded.length) {
+ try { localStorage.removeItem('cookbook_cached_models_scan_v1'); } catch {}
+ }
}
} catch (_) { /* non-fatal: background status should never break polling */ }