mirror of
https://github.com/Comfy-Org/comfy-remote-nodes.git
synced 2026-11-04 23:37:22 +00:00
[PR #5] [MERGED] feat(async-polling): advertise ASYNC_EXECUTE capability and derive poll cap from duration #5
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Comfy-Org/comfy-remote-nodes#5
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/Comfy-Org/comfy-remote-nodes/pull/5
Author: @Kosinkadink
Created: 5/15/2026
Status: ✅ Merged
Merged: 5/15/2026
Merged by: @Kosinkadink
Base:
main← Head:feat/async-polling-mode📝 Commits (1)
94f995bfeat(async-polling): advertise ASYNC_EXECUTE capability and derive poll cap from duration📊 Changes
3 files changed (+45 additions, -12 deletions)
View changed files
📝
client.py(+7 -0)📝
protocol.py(+12 -1)📝
proxy_node.py(+26 -11)📄 Description
Summary
Final pieces of Track A (async-polling mode) on the client side. The proxy_node already routes between
/executeand/execute_asyncbased on the descriptor'sremote.execution.mode; this PR makes the contract honest in two ways.Changes
client.py: advertise the newCapability.ASYNC_EXECUTEtoken so the server can gateasync_pollingdescriptors on its presence. An older client that only knows/executeis now visible to the server and won't be silently routed to a long-poll provider whose lifecycle it can't drive.protocol.py+proxy_node.py: drop theDEFAULT_MAX_POLL_ATTEMPTSwire-default in favour of duration-basedDEFAULT_SOFT_TIMEOUT_S/DEFAULT_HARD_TIMEOUT_S/DEFAULT_POLL_GRACE_S. The poll-loop cap is now a derived value (ceil((hard_timeout_s + grace) / poll_interval_s)) so changing the poll cadence can never silently shrink or stretch the contract. Industry precedent: OAuth2 device flow §3.5, Kubernetes--timeout, gRPC deadlines all express bounds as durations.Lockstep
Paired with the server side at Comfy-Org/comfy-rnp-server#feat/async-polling-mode, which now enforces
modedispatch on/executevs/execute_asyncand migrates existing providers to their correct modes. Per workspace policy these go in lockstep — wire-shape changes on both sides.Amp-Thread-ID: T-019e28c3-3357-72da-a978-304bc8639b2c
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.