diff --git a/.agents/skills/impeccable/scripts/live-browser.js b/.agents/skills/impeccable/scripts/live-browser.js index 918dfe093..69d227b0a 100644 --- a/.agents/skills/impeccable/scripts/live-browser.js +++ b/.agents/skills/impeccable/scripts/live-browser.js @@ -4902,6 +4902,13 @@ saveSession(); } + function completeParameterGenerationIfReady() { + if (expectedVariants <= 0 || arrivedVariants < expectedVariants) return; + if (parameterGenerationState === 'pending' || parameterGenerationState === 'loading') { + completeParameterPublication(); + } + } + function toggleTunePopover() { if (pendingApplyInFlight) { showManualApplyBusyToast(); return; } if (tuneOpen) { closeTunePopover(); return; } @@ -5796,7 +5803,7 @@ setLiveState('CYCLING'); showOrUpdateCyclingBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); return; } @@ -5884,7 +5891,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Mounted ' + arrivedVariants + ' ' + manifest.framework + ' component variants.'); } catch (err) { console.error('[impeccable] Failed to mount component-preview variants:', err); @@ -6329,7 +6336,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Injected ' + arrivedVariants + ' variants from source file.'); }) .catch(err => { @@ -6836,6 +6843,7 @@ const expected = parseInt(wrapper.dataset.impeccableVariantCount || '0'); if (expected > 0) expectedVariants = expected; + completeParameterGenerationIfReady(); if (arrivedVariants > 0) { setLiveState('CYCLING'); diff --git a/.claude/skills/impeccable/scripts/live-browser.js b/.claude/skills/impeccable/scripts/live-browser.js index 918dfe093..69d227b0a 100644 --- a/.claude/skills/impeccable/scripts/live-browser.js +++ b/.claude/skills/impeccable/scripts/live-browser.js @@ -4902,6 +4902,13 @@ saveSession(); } + function completeParameterGenerationIfReady() { + if (expectedVariants <= 0 || arrivedVariants < expectedVariants) return; + if (parameterGenerationState === 'pending' || parameterGenerationState === 'loading') { + completeParameterPublication(); + } + } + function toggleTunePopover() { if (pendingApplyInFlight) { showManualApplyBusyToast(); return; } if (tuneOpen) { closeTunePopover(); return; } @@ -5796,7 +5803,7 @@ setLiveState('CYCLING'); showOrUpdateCyclingBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); return; } @@ -5884,7 +5891,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Mounted ' + arrivedVariants + ' ' + manifest.framework + ' component variants.'); } catch (err) { console.error('[impeccable] Failed to mount component-preview variants:', err); @@ -6329,7 +6336,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Injected ' + arrivedVariants + ' variants from source file.'); }) .catch(err => { @@ -6836,6 +6843,7 @@ const expected = parseInt(wrapper.dataset.impeccableVariantCount || '0'); if (expected > 0) expectedVariants = expected; + completeParameterGenerationIfReady(); if (arrivedVariants > 0) { setLiveState('CYCLING'); diff --git a/.cursor/skills/impeccable/scripts/live-browser.js b/.cursor/skills/impeccable/scripts/live-browser.js index 918dfe093..69d227b0a 100644 --- a/.cursor/skills/impeccable/scripts/live-browser.js +++ b/.cursor/skills/impeccable/scripts/live-browser.js @@ -4902,6 +4902,13 @@ saveSession(); } + function completeParameterGenerationIfReady() { + if (expectedVariants <= 0 || arrivedVariants < expectedVariants) return; + if (parameterGenerationState === 'pending' || parameterGenerationState === 'loading') { + completeParameterPublication(); + } + } + function toggleTunePopover() { if (pendingApplyInFlight) { showManualApplyBusyToast(); return; } if (tuneOpen) { closeTunePopover(); return; } @@ -5796,7 +5803,7 @@ setLiveState('CYCLING'); showOrUpdateCyclingBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); return; } @@ -5884,7 +5891,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Mounted ' + arrivedVariants + ' ' + manifest.framework + ' component variants.'); } catch (err) { console.error('[impeccable] Failed to mount component-preview variants:', err); @@ -6329,7 +6336,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Injected ' + arrivedVariants + ' variants from source file.'); }) .catch(err => { @@ -6836,6 +6843,7 @@ const expected = parseInt(wrapper.dataset.impeccableVariantCount || '0'); if (expected > 0) expectedVariants = expected; + completeParameterGenerationIfReady(); if (arrivedVariants > 0) { setLiveState('CYCLING'); diff --git a/.gemini/skills/impeccable/scripts/live-browser.js b/.gemini/skills/impeccable/scripts/live-browser.js index 918dfe093..69d227b0a 100644 --- a/.gemini/skills/impeccable/scripts/live-browser.js +++ b/.gemini/skills/impeccable/scripts/live-browser.js @@ -4902,6 +4902,13 @@ saveSession(); } + function completeParameterGenerationIfReady() { + if (expectedVariants <= 0 || arrivedVariants < expectedVariants) return; + if (parameterGenerationState === 'pending' || parameterGenerationState === 'loading') { + completeParameterPublication(); + } + } + function toggleTunePopover() { if (pendingApplyInFlight) { showManualApplyBusyToast(); return; } if (tuneOpen) { closeTunePopover(); return; } @@ -5796,7 +5803,7 @@ setLiveState('CYCLING'); showOrUpdateCyclingBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); return; } @@ -5884,7 +5891,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Mounted ' + arrivedVariants + ' ' + manifest.framework + ' component variants.'); } catch (err) { console.error('[impeccable] Failed to mount component-preview variants:', err); @@ -6329,7 +6336,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Injected ' + arrivedVariants + ' variants from source file.'); }) .catch(err => { @@ -6836,6 +6843,7 @@ const expected = parseInt(wrapper.dataset.impeccableVariantCount || '0'); if (expected > 0) expectedVariants = expected; + completeParameterGenerationIfReady(); if (arrivedVariants > 0) { setLiveState('CYCLING'); diff --git a/.github/skills/impeccable/scripts/live-browser.js b/.github/skills/impeccable/scripts/live-browser.js index 918dfe093..69d227b0a 100644 --- a/.github/skills/impeccable/scripts/live-browser.js +++ b/.github/skills/impeccable/scripts/live-browser.js @@ -4902,6 +4902,13 @@ saveSession(); } + function completeParameterGenerationIfReady() { + if (expectedVariants <= 0 || arrivedVariants < expectedVariants) return; + if (parameterGenerationState === 'pending' || parameterGenerationState === 'loading') { + completeParameterPublication(); + } + } + function toggleTunePopover() { if (pendingApplyInFlight) { showManualApplyBusyToast(); return; } if (tuneOpen) { closeTunePopover(); return; } @@ -5796,7 +5803,7 @@ setLiveState('CYCLING'); showOrUpdateCyclingBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); return; } @@ -5884,7 +5891,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Mounted ' + arrivedVariants + ' ' + manifest.framework + ' component variants.'); } catch (err) { console.error('[impeccable] Failed to mount component-preview variants:', err); @@ -6329,7 +6336,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Injected ' + arrivedVariants + ' variants from source file.'); }) .catch(err => { @@ -6836,6 +6843,7 @@ const expected = parseInt(wrapper.dataset.impeccableVariantCount || '0'); if (expected > 0) expectedVariants = expected; + completeParameterGenerationIfReady(); if (arrivedVariants > 0) { setLiveState('CYCLING'); diff --git a/.grok/skills/impeccable/scripts/live-browser.js b/.grok/skills/impeccable/scripts/live-browser.js index 918dfe093..69d227b0a 100644 --- a/.grok/skills/impeccable/scripts/live-browser.js +++ b/.grok/skills/impeccable/scripts/live-browser.js @@ -4902,6 +4902,13 @@ saveSession(); } + function completeParameterGenerationIfReady() { + if (expectedVariants <= 0 || arrivedVariants < expectedVariants) return; + if (parameterGenerationState === 'pending' || parameterGenerationState === 'loading') { + completeParameterPublication(); + } + } + function toggleTunePopover() { if (pendingApplyInFlight) { showManualApplyBusyToast(); return; } if (tuneOpen) { closeTunePopover(); return; } @@ -5796,7 +5803,7 @@ setLiveState('CYCLING'); showOrUpdateCyclingBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); return; } @@ -5884,7 +5891,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Mounted ' + arrivedVariants + ' ' + manifest.framework + ' component variants.'); } catch (err) { console.error('[impeccable] Failed to mount component-preview variants:', err); @@ -6329,7 +6336,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Injected ' + arrivedVariants + ' variants from source file.'); }) .catch(err => { @@ -6836,6 +6843,7 @@ const expected = parseInt(wrapper.dataset.impeccableVariantCount || '0'); if (expected > 0) expectedVariants = expected; + completeParameterGenerationIfReady(); if (arrivedVariants > 0) { setLiveState('CYCLING'); diff --git a/.hermes/skills/impeccable/scripts/live-browser.js b/.hermes/skills/impeccable/scripts/live-browser.js index 918dfe093..69d227b0a 100644 --- a/.hermes/skills/impeccable/scripts/live-browser.js +++ b/.hermes/skills/impeccable/scripts/live-browser.js @@ -4902,6 +4902,13 @@ saveSession(); } + function completeParameterGenerationIfReady() { + if (expectedVariants <= 0 || arrivedVariants < expectedVariants) return; + if (parameterGenerationState === 'pending' || parameterGenerationState === 'loading') { + completeParameterPublication(); + } + } + function toggleTunePopover() { if (pendingApplyInFlight) { showManualApplyBusyToast(); return; } if (tuneOpen) { closeTunePopover(); return; } @@ -5796,7 +5803,7 @@ setLiveState('CYCLING'); showOrUpdateCyclingBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); return; } @@ -5884,7 +5891,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Mounted ' + arrivedVariants + ' ' + manifest.framework + ' component variants.'); } catch (err) { console.error('[impeccable] Failed to mount component-preview variants:', err); @@ -6329,7 +6336,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Injected ' + arrivedVariants + ' variants from source file.'); }) .catch(err => { @@ -6836,6 +6843,7 @@ const expected = parseInt(wrapper.dataset.impeccableVariantCount || '0'); if (expected > 0) expectedVariants = expected; + completeParameterGenerationIfReady(); if (arrivedVariants > 0) { setLiveState('CYCLING'); diff --git a/.kiro/skills/impeccable/scripts/live-browser.js b/.kiro/skills/impeccable/scripts/live-browser.js index 918dfe093..69d227b0a 100644 --- a/.kiro/skills/impeccable/scripts/live-browser.js +++ b/.kiro/skills/impeccable/scripts/live-browser.js @@ -4902,6 +4902,13 @@ saveSession(); } + function completeParameterGenerationIfReady() { + if (expectedVariants <= 0 || arrivedVariants < expectedVariants) return; + if (parameterGenerationState === 'pending' || parameterGenerationState === 'loading') { + completeParameterPublication(); + } + } + function toggleTunePopover() { if (pendingApplyInFlight) { showManualApplyBusyToast(); return; } if (tuneOpen) { closeTunePopover(); return; } @@ -5796,7 +5803,7 @@ setLiveState('CYCLING'); showOrUpdateCyclingBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); return; } @@ -5884,7 +5891,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Mounted ' + arrivedVariants + ' ' + manifest.framework + ' component variants.'); } catch (err) { console.error('[impeccable] Failed to mount component-preview variants:', err); @@ -6329,7 +6336,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Injected ' + arrivedVariants + ' variants from source file.'); }) .catch(err => { @@ -6836,6 +6843,7 @@ const expected = parseInt(wrapper.dataset.impeccableVariantCount || '0'); if (expected > 0) expectedVariants = expected; + completeParameterGenerationIfReady(); if (arrivedVariants > 0) { setLiveState('CYCLING'); diff --git a/.opencode/skills/impeccable/scripts/live-browser.js b/.opencode/skills/impeccable/scripts/live-browser.js index 918dfe093..69d227b0a 100644 --- a/.opencode/skills/impeccable/scripts/live-browser.js +++ b/.opencode/skills/impeccable/scripts/live-browser.js @@ -4902,6 +4902,13 @@ saveSession(); } + function completeParameterGenerationIfReady() { + if (expectedVariants <= 0 || arrivedVariants < expectedVariants) return; + if (parameterGenerationState === 'pending' || parameterGenerationState === 'loading') { + completeParameterPublication(); + } + } + function toggleTunePopover() { if (pendingApplyInFlight) { showManualApplyBusyToast(); return; } if (tuneOpen) { closeTunePopover(); return; } @@ -5796,7 +5803,7 @@ setLiveState('CYCLING'); showOrUpdateCyclingBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); return; } @@ -5884,7 +5891,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Mounted ' + arrivedVariants + ' ' + manifest.framework + ' component variants.'); } catch (err) { console.error('[impeccable] Failed to mount component-preview variants:', err); @@ -6329,7 +6336,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Injected ' + arrivedVariants + ' variants from source file.'); }) .catch(err => { @@ -6836,6 +6843,7 @@ const expected = parseInt(wrapper.dataset.impeccableVariantCount || '0'); if (expected > 0) expectedVariants = expected; + completeParameterGenerationIfReady(); if (arrivedVariants > 0) { setLiveState('CYCLING'); diff --git a/.pi/skills/impeccable/scripts/live-browser.js b/.pi/skills/impeccable/scripts/live-browser.js index 918dfe093..69d227b0a 100644 --- a/.pi/skills/impeccable/scripts/live-browser.js +++ b/.pi/skills/impeccable/scripts/live-browser.js @@ -4902,6 +4902,13 @@ saveSession(); } + function completeParameterGenerationIfReady() { + if (expectedVariants <= 0 || arrivedVariants < expectedVariants) return; + if (parameterGenerationState === 'pending' || parameterGenerationState === 'loading') { + completeParameterPublication(); + } + } + function toggleTunePopover() { if (pendingApplyInFlight) { showManualApplyBusyToast(); return; } if (tuneOpen) { closeTunePopover(); return; } @@ -5796,7 +5803,7 @@ setLiveState('CYCLING'); showOrUpdateCyclingBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); return; } @@ -5884,7 +5891,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Mounted ' + arrivedVariants + ' ' + manifest.framework + ' component variants.'); } catch (err) { console.error('[impeccable] Failed to mount component-preview variants:', err); @@ -6329,7 +6336,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Injected ' + arrivedVariants + ' variants from source file.'); }) .catch(err => { @@ -6836,6 +6843,7 @@ const expected = parseInt(wrapper.dataset.impeccableVariantCount || '0'); if (expected > 0) expectedVariants = expected; + completeParameterGenerationIfReady(); if (arrivedVariants > 0) { setLiveState('CYCLING'); diff --git a/.qoder/skills/impeccable/scripts/live-browser.js b/.qoder/skills/impeccable/scripts/live-browser.js index 918dfe093..69d227b0a 100644 --- a/.qoder/skills/impeccable/scripts/live-browser.js +++ b/.qoder/skills/impeccable/scripts/live-browser.js @@ -4902,6 +4902,13 @@ saveSession(); } + function completeParameterGenerationIfReady() { + if (expectedVariants <= 0 || arrivedVariants < expectedVariants) return; + if (parameterGenerationState === 'pending' || parameterGenerationState === 'loading') { + completeParameterPublication(); + } + } + function toggleTunePopover() { if (pendingApplyInFlight) { showManualApplyBusyToast(); return; } if (tuneOpen) { closeTunePopover(); return; } @@ -5796,7 +5803,7 @@ setLiveState('CYCLING'); showOrUpdateCyclingBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); return; } @@ -5884,7 +5891,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Mounted ' + arrivedVariants + ' ' + manifest.framework + ' component variants.'); } catch (err) { console.error('[impeccable] Failed to mount component-preview variants:', err); @@ -6329,7 +6336,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Injected ' + arrivedVariants + ' variants from source file.'); }) .catch(err => { @@ -6836,6 +6843,7 @@ const expected = parseInt(wrapper.dataset.impeccableVariantCount || '0'); if (expected > 0) expectedVariants = expected; + completeParameterGenerationIfReady(); if (arrivedVariants > 0) { setLiveState('CYCLING'); diff --git a/.rovodev/skills/impeccable/scripts/live-browser.js b/.rovodev/skills/impeccable/scripts/live-browser.js index 918dfe093..69d227b0a 100644 --- a/.rovodev/skills/impeccable/scripts/live-browser.js +++ b/.rovodev/skills/impeccable/scripts/live-browser.js @@ -4902,6 +4902,13 @@ saveSession(); } + function completeParameterGenerationIfReady() { + if (expectedVariants <= 0 || arrivedVariants < expectedVariants) return; + if (parameterGenerationState === 'pending' || parameterGenerationState === 'loading') { + completeParameterPublication(); + } + } + function toggleTunePopover() { if (pendingApplyInFlight) { showManualApplyBusyToast(); return; } if (tuneOpen) { closeTunePopover(); return; } @@ -5796,7 +5803,7 @@ setLiveState('CYCLING'); showOrUpdateCyclingBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); return; } @@ -5884,7 +5891,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Mounted ' + arrivedVariants + ' ' + manifest.framework + ' component variants.'); } catch (err) { console.error('[impeccable] Failed to mount component-preview variants:', err); @@ -6329,7 +6336,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Injected ' + arrivedVariants + ' variants from source file.'); }) .catch(err => { @@ -6836,6 +6843,7 @@ const expected = parseInt(wrapper.dataset.impeccableVariantCount || '0'); if (expected > 0) expectedVariants = expected; + completeParameterGenerationIfReady(); if (arrivedVariants > 0) { setLiveState('CYCLING'); diff --git a/.trae-cn/skills/impeccable/scripts/live-browser.js b/.trae-cn/skills/impeccable/scripts/live-browser.js index 918dfe093..69d227b0a 100644 --- a/.trae-cn/skills/impeccable/scripts/live-browser.js +++ b/.trae-cn/skills/impeccable/scripts/live-browser.js @@ -4902,6 +4902,13 @@ saveSession(); } + function completeParameterGenerationIfReady() { + if (expectedVariants <= 0 || arrivedVariants < expectedVariants) return; + if (parameterGenerationState === 'pending' || parameterGenerationState === 'loading') { + completeParameterPublication(); + } + } + function toggleTunePopover() { if (pendingApplyInFlight) { showManualApplyBusyToast(); return; } if (tuneOpen) { closeTunePopover(); return; } @@ -5796,7 +5803,7 @@ setLiveState('CYCLING'); showOrUpdateCyclingBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); return; } @@ -5884,7 +5891,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Mounted ' + arrivedVariants + ' ' + manifest.framework + ' component variants.'); } catch (err) { console.error('[impeccable] Failed to mount component-preview variants:', err); @@ -6329,7 +6336,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Injected ' + arrivedVariants + ' variants from source file.'); }) .catch(err => { @@ -6836,6 +6843,7 @@ const expected = parseInt(wrapper.dataset.impeccableVariantCount || '0'); if (expected > 0) expectedVariants = expected; + completeParameterGenerationIfReady(); if (arrivedVariants > 0) { setLiveState('CYCLING'); diff --git a/.trae/skills/impeccable/scripts/live-browser.js b/.trae/skills/impeccable/scripts/live-browser.js index 918dfe093..69d227b0a 100644 --- a/.trae/skills/impeccable/scripts/live-browser.js +++ b/.trae/skills/impeccable/scripts/live-browser.js @@ -4902,6 +4902,13 @@ saveSession(); } + function completeParameterGenerationIfReady() { + if (expectedVariants <= 0 || arrivedVariants < expectedVariants) return; + if (parameterGenerationState === 'pending' || parameterGenerationState === 'loading') { + completeParameterPublication(); + } + } + function toggleTunePopover() { if (pendingApplyInFlight) { showManualApplyBusyToast(); return; } if (tuneOpen) { closeTunePopover(); return; } @@ -5796,7 +5803,7 @@ setLiveState('CYCLING'); showOrUpdateCyclingBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); return; } @@ -5884,7 +5891,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Mounted ' + arrivedVariants + ' ' + manifest.framework + ' component variants.'); } catch (err) { console.error('[impeccable] Failed to mount component-preview variants:', err); @@ -6329,7 +6336,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Injected ' + arrivedVariants + ' variants from source file.'); }) .catch(err => { @@ -6836,6 +6843,7 @@ const expected = parseInt(wrapper.dataset.impeccableVariantCount || '0'); if (expected > 0) expectedVariants = expected; + completeParameterGenerationIfReady(); if (arrivedVariants > 0) { setLiveState('CYCLING'); diff --git a/.vibe/skills/impeccable/scripts/live-browser.js b/.vibe/skills/impeccable/scripts/live-browser.js index 918dfe093..69d227b0a 100644 --- a/.vibe/skills/impeccable/scripts/live-browser.js +++ b/.vibe/skills/impeccable/scripts/live-browser.js @@ -4902,6 +4902,13 @@ saveSession(); } + function completeParameterGenerationIfReady() { + if (expectedVariants <= 0 || arrivedVariants < expectedVariants) return; + if (parameterGenerationState === 'pending' || parameterGenerationState === 'loading') { + completeParameterPublication(); + } + } + function toggleTunePopover() { if (pendingApplyInFlight) { showManualApplyBusyToast(); return; } if (tuneOpen) { closeTunePopover(); return; } @@ -5796,7 +5803,7 @@ setLiveState('CYCLING'); showOrUpdateCyclingBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); return; } @@ -5884,7 +5891,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Mounted ' + arrivedVariants + ' ' + manifest.framework + ' component variants.'); } catch (err) { console.error('[impeccable] Failed to mount component-preview variants:', err); @@ -6329,7 +6336,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Injected ' + arrivedVariants + ' variants from source file.'); }) .catch(err => { @@ -6836,6 +6843,7 @@ const expected = parseInt(wrapper.dataset.impeccableVariantCount || '0'); if (expected > 0) expectedVariants = expected; + completeParameterGenerationIfReady(); if (arrivedVariants > 0) { setLiveState('CYCLING'); diff --git a/plugin/skills/impeccable/scripts/live-browser.js b/plugin/skills/impeccable/scripts/live-browser.js index 918dfe093..69d227b0a 100644 --- a/plugin/skills/impeccable/scripts/live-browser.js +++ b/plugin/skills/impeccable/scripts/live-browser.js @@ -4902,6 +4902,13 @@ saveSession(); } + function completeParameterGenerationIfReady() { + if (expectedVariants <= 0 || arrivedVariants < expectedVariants) return; + if (parameterGenerationState === 'pending' || parameterGenerationState === 'loading') { + completeParameterPublication(); + } + } + function toggleTunePopover() { if (pendingApplyInFlight) { showManualApplyBusyToast(); return; } if (tuneOpen) { closeTunePopover(); return; } @@ -5796,7 +5803,7 @@ setLiveState('CYCLING'); showOrUpdateCyclingBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); return; } @@ -5884,7 +5891,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Mounted ' + arrivedVariants + ' ' + manifest.framework + ' component variants.'); } catch (err) { console.error('[impeccable] Failed to mount component-preview variants:', err); @@ -6329,7 +6336,7 @@ refreshParamsPanel(); positionBar(); saveSession(); - if (parameterGenerationState === 'loading') completeParameterPublication(); + completeParameterGenerationIfReady(); console.log('[impeccable] Injected ' + arrivedVariants + ' variants from source file.'); }) .catch(err => { @@ -6836,6 +6843,7 @@ const expected = parseInt(wrapper.dataset.impeccableVariantCount || '0'); if (expected > 0) expectedVariants = expected; + completeParameterGenerationIfReady(); if (arrivedVariants > 0) { setLiveState('CYCLING');