mirror of
https://github.com/Comfy-Org/comfy-typescript-sdk.git
synced 2026-11-04 23:47:27 +00:00
[PR #137] [MERGED] docs(changelog): cut 0.2.0 #140
Labels
No labels
audit:ai-readiness
audit:community
audit:github
audit:health-scoring
audit:policy
audit:release
audit:supply-chain
bug
cursor-review-pin
effort:medium
effort:small
effort:trivial
priority:nice-to-have
priority:recommended
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-typescript-sdk#140
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-typescript-sdk/pull/137
Author: @mattmillerai
Created: 9/10/2026
Status: ✅ Merged
Merged: 9/10/2026
Merged by: @mattmillerai
Base:
main← Head:matt/release-0.2.0📝 Commits (1)
acc9130docs(changelog): cut 0.2.0📊 Changes
1 file changed (+4 additions, -1 deletions)
View changed files
📝
CHANGELOG.md(+4 -1)📄 Description
ELI-5
This moves everything under
## [Unreleased]in the changelog under a## [0.2.0] - 2026-09-10heading, so the next GitHub Release (tagv0.2.0) has a matching changelog section. Nothing else changes: the version is injected from the tag at publish time, sopackage.jsonstays a placeholder per CONTRIBUTING.md.What ships in 0.2.0
Asset.getDownloadUrl()comfy.models.runcollects a still-running generation on409 concurrency_limit_exceeded/504 deadline_exceededwithRetry-After; newretry.collectBudgetMsretryAfterandidempotencyKeyon everyComfyError;retryAfteronRouterErrorJob.getLogs()andJob.urls.logscomfy.models.rundeadline 10 → 20 minutesWhy 0.2.0 rather than 0.1.10
Two defaults change on the
models.runpath (collect-instead-of-throw, and the 20-minute deadline). Additive otherwise. Edit the heading in this PR if 0.1.10 is preferred.Draft release notes for
v0.2.0Release notes (paste into the GitHub Release)
comfy.models.runnow collects a generation it already dispatched instead of losing it, uploaded assets get a directly-fetchable URL, and a job's execution log can be read on demand.Highlights
A generation that outlives the connection is collected, not lost. Comfy answers two failures with a
Retry-Afterthat means "the generation yourIdempotency-Keyalready names has not finished — wait, then ask again for that one": a409carryingconcurrency_limit_exceeded(an earlier attempt of this same call is still in flight, which is what a re-send after a dropped connection meets) and a504carryingdeadline_exceeded(Comfy stopped holding the connection at its own bound while the provider carried on). Both used to be terminal, so a caller lost a generation that had already been dispatched and paid for.runnow waits the interval the server named, re-sends the same key, and resolves with the result: no second dispatch, no second charge, nothing to enable. The collect loop has its own budget,retry.collectBudgetMs(default 20 minutes);collectBudgetMs: 0switches it off alone,retry: falseswitches off retries and collection together.The default
comfy.models.rundeadline is 20 minutes, up from 10. The deadline covers every attempt of a call, and Comfy's own deadline is 10 minutes — so the old default was exactly spent at the moment adeadline_exceeded504arrived, and the collect above could never start under it. Successful calls are unaffected; the deadline is a ceiling, not a wait. PasstimeoutMs: 600_000for the old bound.Every
ComfyErrorcarriesretryAfterandidempotencyKey. The server'sRetry-Afterin seconds (nullwhen none was sent), and the key the failed call went out under — including a key the SDK minted for you, which was previously visible nowhere. Together they are what a manual re-ask needs once the collect budget is spent.RouterErrorgainsretryAfterfor the same reason.Asset.getDownloadUrl(). A directly-fetchable URL for an uploaded asset's bytes, mirroringOutput.getDownloadUrl(). On Comfy Cloud it is a short-lived signed URL any fetcher can read untilexpiresAt, which is what lets a local image be passed to a URL-taking image-to-image model: upload it as an asset, resolve its URL, put the URL in the model's input. MatchesAsset.get_download_url()in the Python SDK.Job.getLogs(). The run's captured execution log viaGET /api/v2/jobs/{id}/logs, ornullwhen the job has none — today only a job run on a serverless deployment has one; Comfy Cloud captures none. The text is untrusted workflow output and should be rendered as plain text.Upgrading
No API removals. Two defaults changed on the
comfy.models.runpath: a409/504carryingRetry-Afteris now collected rather than thrown, and the default deadline is 20 minutes. If you relied on the previous behaviour, passretry: { collectBudgetMs: 0 }and/ortimeoutMs: 600_000.Full detail in CHANGELOG.md.
Not in this release
do-not-mergeuntil the router queue routes are deployed to cloud.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.