Replay remote status after page refresh
This commit is contained in:
@@ -236,7 +236,7 @@ Active remote nodes show a small progress panel with per-bar `it/s` rates (LLM n
|
||||
|
||||
Remote planning and capacity acquisition count as active queue work even though they happen before the rewritten prompt enters ComfyUI's native execution queue. During Vast startup, the canvas receives readable updates for rental, worker-image download, SSH readiness, and runtime initialization. A provider-side terminal image-pull failure is reported immediately rather than appearing as an empty queue until the startup timeout expires. A rental that never produces an SSH-usable worker is marked unusable and destroyed after the bounded initialization wait so a later workflow cannot silently reuse it.
|
||||
|
||||
For workflows using a **Remote Execution Configurator**, that node is also the primary planning surface. As soon as scheduling finishes, the scheduler result is streamed to the panel before any Vast rental or SSH-readiness wait begins. The browser retains that plan across late node-panel mounts, tab refocus, queue failure, and extension reloads, while removing any orphaned prior panel before remounting. Configuration names, selected targets, predicted completion time, and predicted cost therefore remain inspectable even when capacity never becomes ready. Live preparation and execution status use the same durable event stream. Legacy workflows without a configurator continue to use the global status pill.
|
||||
For workflows using a **Remote Execution Configurator**, that node is also the primary planning surface. As soon as scheduling finishes, the scheduler result is streamed to the panel before any Vast rental or SSH-readiness wait begins. The browser retains that plan across late node-panel mounts, a full page refresh, tab refocus, queue failure, and extension reloads, while removing any orphaned prior panel before remounting. Configuration names, selected targets, predicted completion time, and predicted cost therefore remain inspectable even when capacity never becomes ready. Live preparation and execution status use the same durable event stream. Legacy workflows without a configurator continue to use the global status pill.
|
||||
|
||||
Queue-time preparation appears in ComfyUI's queue through the server-side preparation bridge, while the Configurator panel and global status pill show its detailed phase. Preparation deliberately does not emit fake native node-execution events: doing so starts ComfyUI's execution watchdog, which can incorrectly mark a node as stalled or failed during a healthy multi-minute asset download. A preparation failure remains a queue/setup error with its original message rather than being recast as a node execution crash.
|
||||
|
||||
|
||||
@@ -533,6 +533,7 @@
|
||||
## 2026-08-24: Pre-capacity plans need a durable UI path
|
||||
|
||||
- A queue response cannot be the first carrier of a workflow plan when the same request performs capacity acquisition. If Vast rental or SSH initialization stalls, that response never arrives; publish the side-effect-free scheduler result before acquisition and retain it in prompt-scoped browser state.
|
||||
- Durable backend events do not restore a freshly loaded page unless the frontend requests them after the graph and its DOM panels mount. Refocus-only replay misses an already-visible initial load, leaving the Configurator blank until a new prompt emits a live event; trigger the same replay-and-reconcile pass after graph configuration.
|
||||
- ComfyUI DOM widgets may mount after their prompt events arrive or remain temporarily detached during canvas virtualization. Store plan and status independently of the element, replay the newest matching prompt after mount, and set a mounted guard only after `addDOMWidget` succeeds so a transient mount failure remains retryable.
|
||||
- A persisted Vast lease registry describes controller intent, not live SSH health. Worker readiness loops must log changed probe diagnostics as they occur and include instance/environment identity at the service boundary; otherwise a provider closing the connection during key exchange appears as a silent 15-minute initialization wait.
|
||||
- Provider `running` plus an assigned SSH endpoint is not sufficient evidence that rented capacity is reusable. If bounded runtime initialization fails, mark the lease draining before cleanup, destroy the owned instance, and preserve the original failure even if destruction itself fails; otherwise every later plan can select the same poisoned registry entry.
|
||||
|
||||
@@ -803,3 +803,4 @@ def test_modal_ui_refreshes_after_visibility_or_focus_returns() -> None:
|
||||
assert "handleModalProgress({ detail: payload });" in source
|
||||
assert 'document.addEventListener("visibilitychange"' in source
|
||||
assert 'window.addEventListener("focus", refreshModalUiAfterVisibilityChange);' in source
|
||||
assert "selectedModalGpu();\n refreshModalUiAfterVisibilityChange();" in source
|
||||
|
||||
@@ -6274,5 +6274,6 @@ app.registerExtension({
|
||||
rebuildRemoteDescendantIndex();
|
||||
refreshNodeDecorations();
|
||||
selectedModalGpu();
|
||||
refreshModalUiAfterVisibilityChange();
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user