diff --git a/public/js/clinicalAssistant.js b/public/js/clinicalAssistant.js index f8e4d09e..1592aa07 100644 --- a/public/js/clinicalAssistant.js +++ b/public/js/clinicalAssistant.js @@ -1710,6 +1710,7 @@ import { renderImageJobs(row.querySelector('.assistant-bubble') || row, message.imageJobs, 'clinical_assistant', function(card, data) { card.insertAdjacentHTML('beforeend', imageStore.renderGeneratedImage(data.imageUrl, 'Generated teaching visual', data.downloadUrl)); exporter.invalidate(); + loadImageGallery(); // completed images join the user's library immediately }); } diff --git a/public/js/generatedImages.js b/public/js/generatedImages.js index b1266c4e..57ae1eca 100644 --- a/public/js/generatedImages.js +++ b/public/js/generatedImages.js @@ -91,7 +91,9 @@ export function renderImageJobs(container, jobs, workflow, onDone) { if (data.status === 'error') return; } catch (error) { if (!validSharingOwner(ticket) || error.name === 'AbortError') return; - status.textContent = 'Image status unavailable. Reopen image history to resume; no new paid job was started.'; + // Transient status failures keep polling; the job is durable server-side. + status.textContent = 'Image: checking status…'; + setTimeout(poll, 2500); return; } setTimeout(poll, 2000);