Skip to content

v1.60.0

Latest

Choose a tag to compare

@comfy-pr-bot comfy-pr-bot released this 26 Oct 21:05
· 487 commits to main since this release
5cb2899

What's Changed

  • refactor: drop the free_tier_job_allowance_enabled flag read (BE-17903) by @deepme987 in #20465
  • fix(widgets): restore numeric and boolean strings as typed widget values (PM-2173) by @christian-byrne in #21246
  • refactor: establish declaration-backed frontend package leaves by @DrJKL in #21224
  • FE-3450 feat(billing): prefill the server-suggested top-up for a negative balance by @dante01yoon in #21360
  • FE-3434 fix(billing): lock Run for payment recovery on payment_recovery_available by @dante01yoon in #21362
  • refactor(billing): retire legacy routing override by @wei-hai in #21374
  • FE-1908 fix(billing): open blocked checkout and card pages from a real link by @dante01yoon in #21388
  • ci: publish CI container from the monorepo by @DrJKL in #20650
  • fix: keep hidden links visible during slot drags by @jaeone94 in #19690
  • fix: refresh balance when the profile menu opens by @benceruleanlu in #21392
  • feat: add Spooky, Skeleton, Witch, Zombie and Fennec Girl color palettes by @DrJKL in #21207
  • fix(litegraph): stop external writes from replacing a group's geometry buffers by @DrJKL in #20260
  • fix(cloud): let a stored API key finish cloud bootstrap by @christian-byrne in #21380
  • FE-1908 feat(billing): hand off to an open checkout instead of closing the Add credits dialog by @dante01yoon in #21395
  • chore: upgrade Reka UI to 2.11.0 by @DrJKL in #21389
  • fix: skip unnecessary CI container candidate builds by @DrJKL in #21405
  • fix(agent): withhold stale bound canvas drafts by @christian-byrne in #21268
  • docs: document running Playwright E2E in remote agent containers by @DrJKL in #20457
  • test: move E2E to the CI container 0.0.28 (ComfyUI v0.42.1) by @jaeone94 in #21371
  • FE-1908 fix(billing): mint a fresh checkout when reopening a blocked top-up tab by @dante01yoon in #21408
  • fix: refuse remote DynamicGroup row counts above max by @jaeone94 in #21264
  • fix: resolve the multiline widget store id from its current name by @jaeone94 in #21293
  • test: cover remote DynamicGroup catch-up, promoted rows and shared definitions by @jaeone94 in #21098
  • build: extend declaration-backed workspace package references by @DrJKL in #21390
  • Fix agnix identified errors by @AustinMroz in #21384
  • fix: ask a session-only tab to sign in again before accepting an invite by @MaanilVerma in #21363
  • fix: build the E2E fallback image from this repo's container tag by @jaeone94 in #21415
  • fix: clear the drag link reveal on connector reset and polish its tests by @jaeone94 in #21397
  • refactor: extensionless package-local import specifiers by @DrJKL in #21423
  • [chore] Update Ingest API types from cloud@c5d79c08 by @comfy-pr-bot in #21351
  • fix(agent): load every page of Chat history by @ryan-di in #20827
  • test(agent): pin Note/MarkdownNote materialization from agent add_node ops by @christian-byrne in #18363
  • fix(agent): scope tool completion to canvas ops (PM-1637) by @christian-byrne in #21369
  • test(agent): cover restart node refresh in browser by @christian-byrne in #21044
  • test(agent): open a template mid agent turn without load-failure toast (PM-2126) by @christian-byrne in #21243
  • fix: withhold a stale architecture verdict and tidy CLI tests by @DrJKL in #21328
  • test(agent): assert restart reload keeps saved widget values by @christian-byrne in #21458
  • feat(agent): send this tab's ComfyUI client id with each turn (PM-1875) by @christian-byrne in #20090
  • fix: clarify credit purchases before payment by @wei-hai in #21426
  • feat(agent): report the submitting frontend build as client_version on a turn by @christian-byrne in #20798
  • feat(canvas): click a socket to hide or delete its links (DES-1238) by @shrimbly in #20838
  • feat(canvas): a hidden link snaps back like an elastic band (DES-1239) by @shrimbly in #20861
  • feat: Track item clicks in the Comfy menu and workflow actions dropdown by @PabloWiedemann in #21042
  • fix: preserve agent undo tracking while a subgraph is open by @DrJKL in #20876
  • test(agent): retain upload-gating browser coverage by @christian-byrne in #20820
  • feat(website): show the live Openjutsu app card on open-source-higgsfield by @june-bump in #21466
  • [chore] Update Ingest API types from cloud@453e791d by @comfy-pr-bot in #21450
  • Copy to clipboard even when localStorage fails by @AustinMroz in #21465
  • refactor: move shared UI translations to app callers by @DrJKL in #21420
  • fix(agent): hold a promoted widget write during a re-subscribe instead of refusing it (PM-2003) by @christian-byrne in #21335
  • feat: node-level undo/redo for the image crop, video edit and colors widgets by @jtydhr88 in #21407
  • refactor: extract the Load3D engine and camera/light viewports into @comfyorg/viewport3d by @DrJKL in #21404
  • feat(website): add VFX V3 workflow showcase by @bertfy in #21401
  • feat(website): sunset /cloud/supported-nodes behind redirects by @claude[bot] in #21406
  • feat(oauth): mark dynamically registered clients as unverified on consent by @mattmillerai in #20618
  • FE-1908 fix(billing): retry a hosted top-up checkout refused with a retryable 409 by @dante01yoon in #21463
  • fix: release subscribe busy once the SDK rail parks the checkout on the customer by @dante01yoon in #21472
  • FE-1908 fix(workspace): reopen a reloaded tab on its own workspace by @dante01yoon in #21464
  • ingest-types 1.3.0 by @dante01yoon in #21474
  • fix: use one overlay tier with reopen-aware portal ordering by @DrJKL in #21396
  • fix(agent): declare every node's widget form at the Agent boundary by @DrJKL in #21479
  • fix: publish litegraph augmentations and named litegraph types in @comfyorg/comfyui-frontend-types by @mcmerdith in #20311
  • feat(canvas): stack hidden link labels from one socket (DES-1237) by @shrimbly in #20836
  • test: validate native LoRA stack assets and execution by @jaeone94 in #20307
  • fix: create restored above-max DynamicGroups on followers by @jaeone94 in #21280
  • test: verify DynamicGroup against the real backend by @jaeone94 in #17510
  • fix(website): send retired /cloud/supported-nodes to the custom nodes support article by @claude[bot] in #21489
  • FE-3449 fix(billing): apply confirmed M4 copy for auto top-up, billing portal, member past-due and sales-managed ending by @dante01yoon in #21467
  • PM-1236: defer the run permissions notice until composer focus by @christian-byrne in #18426
  • feat(website): add Krea 3 to footer Models column by @claude[bot] in #21498
  • feat(agent): validate operational replay bundles by @christian-byrne in #20778
  • feat(website): complete VFX campaign media and signup flow by @bertfy in #21486
  • refactor: delete components only imported by their own tests and stories by @DrJKL in #21509
  • fix(agent): remember a refused consent card for the account (PM-1910) by @christian-byrne in #19869
  • chore: drop leftover references to components deleted in #21509 by @DrJKL in #21516
  • test: pin agent wire identity across a /ws reconnect by @christian-byrne in #21497
  • fix: ship only the package name and version from account-core's manifest by @DrJKL in #21428
  • feat(website): polish VFX v3 CTAs, Studio playback and enterprise details by @june-bump in #21518
  • fix: stop reactive proxies from breaking workflow loads (DataCloneError) by @christian-byrne in #20747
  • FE-3526 feat(billing): show Activating on the plan row by @dante01yoon in #21511
  • fix(agent): recheck funds after an admitted send before showing the out-of-credits card by @christian-byrne in #21538
  • fix(website): make the Developer Platform optional in the challenge rules by @deepme987 in #21505
  • fix(execution): scope execution frames to the workflow that queued the job by @DrJKL in #21300
  • lint: enforce agent platform utility boundaries (carry #20893 onto main) by @christian-byrne in #21491
  • PM-1236: point the run notice at the Run permissions control by @christian-byrne in #21496
  • feat(deploy): open installation deployment from the run bar by @shrimbly in #21202
  • refactor: remove ImperativePopover in favor of declarative Reka popovers by @DrJKL in #21411
  • Fix highlighting of links on a just selected node by @AustinMroz in #21525
  • Use renderingSize to arrange nodes by @AustinMroz in #21586
  • Fix the 'Align Selected To' icons by @AustinMroz in #21594
  • fix: harvest partial snapshot updates and skip non-screenshot E2E jobs by @DrJKL in #21583
  • test: focus E2E screenshot assertions with screenshotRegion by @DrJKL in #21430
  • test: remove canvasOps.resetView by @DrJKL in #21500
  • test(agent): type bound-canvas refusal fixture by @christian-byrne in #21375
  • fix(agent): define a hand-added subgraph host's definitions in the bound document by @christian-byrne in #21576
  • ci: wait for CI Tests E2E before recording Playwright videos by @DrJKL in #21577
  • FE-3555 feat(billing): record auto top-up card views and platform handoffs by @dante01yoon in #21596
  • ci: fold native LoRA tests into existing cloud shards by @DrJKL in #21585
  • fix(agent): restore a completed turn's thinking on reload and chat switch (PM-717) by @christian-byrne in #21600
  • feat(website): lower RTX PRO 6000 Comfy API rate to $3.49/hr by @claude[bot] in #21379
  • fix(agent): move an agent-inserted workflow clear of the nodes it lands on by @christian-byrne in #21527
  • feat: complete Desktop Agent consent and locked panel startup by @ryan-di in #21532
  • FE-1618 fix(billing): show the served credit balance when a workspace has no plan by @dante01yoon in #21611
  • fix: name legacy error dialogs by their visible title by @jaeone94 in #21449
  • fix(manager): retry a failed later search page without dropping loaded packs by @jaeone94 in #21448
  • feat(workspace): Running on moves to an engine button in the Run bar by @shrimbly in #21148
  • fix: keep Shift+Home/End text selection in search autocomplete by @jaeone94 in #21447
  • feat: fullscreen editor for Create Bounding Boxes by @jtydhr88 in #21526
  • chore(website): freeze the monorepo copy and switch off its deploys by @benceruleanlu in #21573
  • refactor: size resource timing buffer during Sentry init by @DrJKL in #21619
  • refactor: create conflict acknowledgment storage lazily on first use by @DrJKL in #21620
  • refactor: give ContextMenu its own DOMPurify instance by @DrJKL in #21617
  • refactor: give media cache instance ownership of its unload listener by @DrJKL in #21618
  • refactor: read browser state lazily instead of at module import by @DrJKL in #21621
  • feat(agent): attach .exr in the composer with its stored preview by @heymemie in #21203
  • refactor: start cloud badge canvas watcher in extension init by @DrJKL in #21623
  • fix: keep the top menu rendering after the run bar is re-docked by @christian-byrne in #21631
  • refactor: express draggableList item styles as Tailwind utilities by @DrJKL in #21626
  • fix: show a retryable error when the agent panel content fails to mount by @christian-byrne in #21524
  • fix(agent): authenticate the local agent with the active workspace's token by @skishore23 in #21575
  • refactor: resolve import-time translations when they are read by @DrJKL in #21624
  • FE-3447 fix(billing): open plan actions on Cloud by @dante01yoon in #21613
  • refactor: register the Electron adapter from an awaited core extension step by @DrJKL in #21625
  • fix(agent): keep a saved custom-node workflow's output node and values when the Agent opens it (PM-2018) by @christian-byrne in #21584
  • fix: restore a run's outputs when it finished while the socket was down (PM-2123) by @christian-byrne in #21282
  • refactor: create node templates manager on first use by @DrJKL in #21622
  • refactor: create SubgraphNode workflow badge bitmap on first draw by @DrJKL in #21646
  • fix: recover when session storage denies client id access by @DrJKL in #21647
  • refactor: give extension auth hooks an owner with a disposer by @DrJKL in #21648
  • refactor: resolve HTTP client base URLs at request time by @DrJKL in #21649
  • refactor: fold shared draggable item utilities into draggableItemClass by @DrJKL in #21650
  • refactor: create persisted remote-config flag cache lazily by @DrJKL in #21651
  • refactor: own vue node resize tracking resources by @DrJKL in #21652
  • refactor: install error-node widgets and touch pointer guards once, from explicit owners by @DrJKL in #21653
  • refactor: choose run button at render time and retry failed 3D lazy load by @DrJKL in #21655
  • fix(agent): refresh node definitions when ComfyUI reconnects after an agent restart by @christian-byrne in #21644
  • test(agent): cover switching away from an unsaved tab mid-turn and back by @skishore23 in #21657
  • refactor: give CRDT debug gate and doc nonce explicit owners by @DrJKL in #21654
  • fix: read persisted remote-config flags back as booleans by @DrJKL in #21656
  • fix: report lost agent edits through platform telemetry by @DrJKL in #20883
  • refactor: construct router and i18n inside an explicit main.ts bootstrap by @DrJKL in #21671
  • docs: give the layout store's Y.Doc an explicit owner (ADR-CRDT-LAYOUT-0046) by @DrJKL in #21667
  • fix: dismiss group context menu on canvas click by @DrJKL in #21668
  • FE-3434 fix(billing): keep Add credits available when payment is past due by @dante01yoon in #21546
  • FE-3434 fix(billing): keep payment recovery and run capability through the SDK rail by @dante01yoon in #21547
  • FE-1908 fix(billing): retry a hosted checkout refused with 503 unavailable by @dante01yoon in #21540
  • FE-3434 fix(billing): show the out-of-credits banner on a past-due workspace by @dante01yoon in #21548
  • fix(workspace): the editor's first load never waits long on the deployments check by @vqt123 in #21607
  • FE-3523 feat(billing): show credit banners on the local Billing tab by @dante01yoon in #21514
  • [chore] Update Ingest API types from cloud@2d86ea8c by @comfy-pr-bot in #21508
  • docs: scope ADR-CRDT-LAYOUT-0046 claims to main and the test by @DrJKL in #21675
  • docs: ADR for provide*/Access late-bound accessors by @DrJKL in #21669
  • refactor: tidy main.ts bootstrap follow-ups from review by @DrJKL in #21674
  • Highlight canvas nodes while browsing agent references by @christian-byrne in #18397
  • refactor: construct ComfyApp legacy UI and ComfyApi page context from bootstrap by @DrJKL in #21672
  • FE-3159 fix(billing): show one ended banner on the Members tab by @dante01yoon in #21696
  • FE-3525 fix(billing): open Plans from can_open_plans by @dante01yoon in #21699
  • fix: keep node templates when saving after a failed load by @DrJKL in #21645
  • fix(billing): check pendingServerFact bridges written with type arguments by @dante01yoon in #21473
  • perf: drop the vendor-other catch-all chunk from the eager startup closure by @DrJKL in #21714
  • Fix workspace switcher on mobile by @AustinMroz in #21610
  • feat(billing): end the Credits plan line with the refill date by @dante01yoon in #21710
  • test(agent): pin tagged-node selection payload by @christian-byrne in #21591
  • FE-3527 feat(billing): show plan checkout banners from checkout_state by @dante01yoon in #21708
  • test(agent): cover PM-655 canvas edits between turns by @christian-byrne in #17542
  • fix(agent): don't report a 409 with no selection as another answer winning by @christian-byrne in #21320
  • test(agent): pin a mid-turn colour and shape edit reverting on an agent rename by @christian-byrne in #21711
  • FE-1908 fix(billing): retry top-up Pay after setting a default card by @dante01yoon in #21694
  • test(agent): keep canvas adds out of the composer by @christian-byrne in #18773
  • test(agent): preserve promoted host writes through serialization by @christian-byrne in #17412
  • fix(agent): show the server-assigned chat title in the open chat header (PM-2098) by @christian-byrne in #21697
  • Move Workspace Switcher to Popover by @AustinMroz in #21721
  • perf: warm up the Vite dev entry and GraphView route on server start by @DrJKL in #21735
  • FE-3571 feat(billing): auto top-up failed and turned off banners on the Billing tab by @dante01yoon in #21718
  • perf: trace every bootstrap window and report untraced time by @DrJKL in #21739
  • fix(agent): catalog-mismatch toast says the next message rebuilds the workflow (FE-3493) by @christian-byrne in #21677
  • test: add coverage floor for agent panel + CRDT follower dirs by @christian-byrne in #16688
  • fix(agent): gate canvas-affecting claims on observed canvas state (PM-1343, PM-1996, PM-1586) by @christian-byrne in #20741
  • fix: silence self-inflicted startup console warnings by @DrJKL in #21738
  • refactor(billing): colocate billing and subscription under platform/billing (FE-3573) by @DrJKL in #21741
  • refactor: colocate template UI under platform/workflow/templates by @DrJKL in #21722
  • refactor: register core extensions from an explicit ordered list by @DrJKL in #21673
  • refactor: colocate keybinding UI under platform/keybindings by @DrJKL in #21725
  • ci: reuse Playwright video recordings for unchanged specs by @DrJKL in #21582
  • refactor: replace imperative ContextMenu API with Reka primitives by @DrJKL in #21670
  • perf: cut node definition startup work and prefetch object_info by @DrJKL in #21755
  • refactor: colocate error catalog and missing-resource modules under platform/workflowErrors by @DrJKL in #21727
  • DESK2-183 fix(auth): tell Desktop users to finish sign-in in the browser, not that it was blocked by @dante01yoon in #21715
  • refactor: colocate the mask editor and extract its stroke/GPU engine into @comfyorg/mask-editor by @DrJKL in #21730
  • FE-3571 fix(billing): say payment method in the auto top-up turned off banner by @dante01yoon in #21747
  • chore(codeowners): own the Agent test-harness paths that sit outside the agent/ dirs by @christian-byrne in #21758
  • fix: open the link context menu only from its centre marker by @jaeone94 in #21759
  • refactor: colocate the Load3D, camera and light host in src/extensions/core/load3d by @DrJKL in #21728
  • test(agent): pin the ask_kinds advertisement to what the panel renders by @christian-byrne in #21716
  • chore(deps): override @grpc/grpc-js to ^1.13.6 (BE-22504) by @luke-mino-altherr in #21700
  • fix(auth): stop session-only Desktop sign-in redirect loop by @benceruleanlu in #21768
  • chore(deps): bump astro to 7.2.8 (BE-22503) by @luke-mino-altherr in #21693
  • fix(agent): keep dynamic-combo writes on the catalog path with comfy-multi-player 0.3.12 by @christian-byrne in #21535
  • test(agent): run the standalone harness on the shared-document path by @christian-byrne in #21239
  • refactor: restore saved widget values through widgetValueStore by @DrJKL in #21378
  • fix(onboarding): keep the first-run nudge clear of the docked Agent panel by @christian-byrne in #20146
  • fix(agent): send human links into dynamic-combo inputs the bound doc lacks (PM-2080) by @christian-byrne in #21686
  • [chore] Update Ingest API types from cloud@99f52fc1 by @dante01yoon in #21746
  • FE-3212 fix: stop the Parameters panel crashing on a widget with no type by @christian-byrne in #20131
  • FE-3587 fix(billing): show the yearly Team price the server bills by @dante01yoon in #21748
  • fix(execution): report when execution_start rejects a job with no known owner by @christian-byrne in #21761
  • test: ratchet expected-failure inventory by @christian-byrne in #20140
  • test: record minimap change-cadence performance baselines by @christian-byrne in #16140
  • fix(agent-crdt): bind the session to the workflow a reload restored (FE-1969) by @christian-byrne in #21147
  • test: repair the expected-failure baseline drift reddening every PR by @christian-byrne in #21803
  • FE-3557 feat(billing): say a Cloud plan is required to run workflows by @dante01yoon in #21766
  • ci: make expected-failure check informational by @DrJKL in #21815
  • feat(billing): gate Cloud credit banners on is_active by @dante01yoon in #21709
  • billing-contract 1.0.0-alpha.1 by @comfy-pr-bot in #21816
  • docs: ground test guidance in observable behavior by @DrJKL in #21807
  • fix: remove SVG flex warnings and lint icon assets by @DrJKL in #21809
  • fix(litegraph): report direct selection changes by @christian-byrne in #20098
  • perf: load the ComfyHub publish dialog on open by @DrJKL in #21772
  • feat(ingest-types): add the public catalog creator operations by @MaanilVerma in #21678
  • fix(workspace): a failed deployment check never slows the editor for someone who has not picked one by @vqt123 in #21806
  • 1.59.1 by @comfy-pr-bot in #21403
  • fix(agent): report array element shapes for malformed slot types by @christian-byrne in #21801
  • feat(test-recorder): forward a Cloudflare Access service token to the backend by @christian-byrne in #17623
  • fix(agent): report a free-text-only answer that won elsewhere by @christian-byrne in #21829
  • feat(workspace): the deployment switcher marks which deployments can run the open workflow (BE-19373) by @vqt123 in #20372
  • FE-3593 fix(billing): show the plan-required Add credits line only when it applies by @dante01yoon in #21835
  • ci(website): block committed images and video under apps/website by @claude[bot] in #21109
  • fix: guard touch handlers against a missing canvas and report why by @claude[bot] in #21321
  • feat: track loaded theme in Datadog by @DrJKL in #21823
  • test(agent): cover out-of-order subgraph definitions by @christian-byrne in #18831
  • perf: load the mask editor dialog components on open by @DrJKL in #21770
  • perf: keep the Datadog RUM SDK off the local startup path by @DrJKL in #21771
  • fix(agent): refresh model warnings after catalog updates by @christian-byrne in #21841
  • fix: skip object_info prefetch on cloud and refetch after a failed prefetch by @DrJKL in #21849
  • Fix graph selection box visual by @AustinMroz in #21733
  • perf: load the markdown widget editor on first use by @DrJKL in #21769
  • feat(workspace): ask to save unsaved workflows before a deployment switch by @shrimbly in #21183
  • feat(architecture): enforce webcam capture boundary by @christian-byrne in #21830
  • fix(billing): render the served Team stop price instead of a rounded-percent rebuild by @dante01yoon in #21863
  • perf: load three.js only when a 3D node is used by @DrJKL in #21767
  • test(agent): user-story specs — stop survives, output surfaces, failure/stall surfaced, finished-generation preview by @christian-byrne in #18803
  • fix(agent): name Comfy Agent in the workflow run approval card by @christian-byrne in #21865
  • fix(agent): keep an Agent run's outputs on the tab it ran for (PM-2275) by @christian-byrne in #21666
  • fix: report unit coverage for every main push, measured against its own ancestor by @christian-byrne in #19551
  • test: record the reopened-workflow pin in the expected-failure baseline by @christian-byrne in #21883
  • test(load3d): pin docked viewer workspace bounds by @christian-byrne in #20136
  • refactor(workflow): report user-initiated tab activations by @christian-byrne in #21791
  • feat(workspace): the missing-nodes message offers deployments that can run the workflow (BE-19374) by @vqt123 in #20373
  • fix(workspace): a compatibility answer only counts for the check that asked for it (BE-19373) by @vqt123 in #21897
  • test(agent): pin the flag-off gate and the streaming shimmer by @christian-byrne in #21898
  • fix(agent): remove canvas groups a remote clear drops from the document by @christian-byrne in #21572
  • test(agent): adapt PM-1875 local-run canvas pin by @christian-byrne in #21886
  • test(agent): pin 30-chat history pagination by @christian-byrne in #21900
  • FE-3470 fix(agent): prove the widget form against the post-hook values by @christian-byrne in #21790
  • PM-855: fix(agent): reorder add-menu so assets entry precedes add-nodes by @christian-byrne in #17326
  • fix(agent): make the coach-tour hold on the first send visible and always releasable by @mattmillerai in #21285
  • fix(agent-crdt): tell the person when the page is ahead of the doc host by @mattmillerai in #21286
  • test(agent): assert the 30 chat identities, not only the count by @christian-byrne in #21901
  • test(agent): make completed-turn approval action test deterministic by @mattmillerai in #21249
  • test(agent): pin a human link severance surviving save and reload (PM-1410) by @christian-byrne in #21888
  • fix(agent): report rejected node id/class on doc-host rejection telemetry by @christian-byrne in #21902
  • test(agent): pin that agent-built and hand-drawn links are painted on the canvas by @christian-byrne in #21903
  • fix(agent): preserve links in ask-user answers by @christian-byrne in #21856
  • fix(agent): keep accepted turns live after storage failures by @christian-byrne in #21912
  • test(agent): name the two Agent CRDT fixtures after the convention by @christian-byrne in #21887
  • fix: package E2E coverage against tested revision by @christian-byrne in #21904
  • fix: play hashed Cloud video and audio assets through /view by @claude[bot] in #20359
  • feat(agent): carry workflow chat follow onto current main by @christian-byrne in #21512
  • fix(agent): identify opaque API failures by @christian-byrne in #21919
  • fix(queue): enable the toolbar stop control for an Agent-started run (PM-2219) by @christian-byrne in #21889
  • fix(agent): let Back out of chat history when the chat cannot be opened by @christian-byrne in #21926
  • fix(agent): surface terminal workflow sync failure by @christian-byrne in #18273
  • fix(litegraph): report each selection operation once by @christian-byrne in #21698
  • test(agent): pin the canvas a continuing unbound-tab turn drops (PM-1410) by @christian-byrne in #21931
  • feat: the editor opens while custom nodes start, and turns them on when they arrive by @vqt123 in #21915
  • feat: the editor says custom nodes are starting, and when they are ready by @vqt123 in #21935
  • feat: a custom node script that could not be fetched is tried once more, then Reload is offered by @vqt123 in #21936
  • test(agent): cover terminal approval expiry (BE-17612) by @christian-byrne in #21943
  • feat: nodes of custom node packs still starting show as waiting, not missing by @vqt123 in #21937
  • Test Agent reuse of a subgraph definition by @christian-byrne in #21944
  • feat: the editor can follow which step the deployment's CPU server is on by @vqt123 in #21938
  • FE-3562 feat(billing): pay for a top-up with a new card or a chosen saved card by @dante01yoon in #21800
  • FE-3530 feat(billing): align the Billing tab with the settings visual spec by @dante01yoon in #21515
  • FE-3522 feat(billing): show the parked payment banner by @dante01yoon in #21702
  • feat: the starting toast says which step the CPU server is on by @vqt123 in #21939
  • fix: keep local node colour, shape and properties when an agent frame edits other fields by @christian-byrne in #21947
  • Defer agent onboarding coach while a global dialog is open by @christian-byrne in #21928
  • test(agent): prove silent follower recovery by @christian-byrne in #21942
  • FE-3524 feat(billing): replace Manage with Contact sales by @dante01yoon in #21519
  • FE-3467 feat(billing): show a processing top-up in the credits flyout by @dante01yoon in #21536
  • FE-3467 feat(billing): show hosted top-up payment progress on the Billing tab by @dante01yoon in #21468
  • [FE-1968] Guard agent follower invariants on the graph-API seam by @christian-byrne in #21852
  • test(agent): wait for consent state before coach assertion by @christian-byrne in #21948
  • test(agent): prove host updates resume across an Agent panel remount (FE-2247) by @christian-byrne in #21962
  • fix(agent): isolate workflow draft restore state by @christian-byrne in #21945
  • fix(agent): record the status and route of a failed thread/history load (FE-3200) by @christian-byrne in #20089
  • fix: harden workflow load against null initial state and report occurrences by @claude[bot] in #21326
  • test(e2e): check restored numeric widget values on the canvas, not only in the queued prompt (PM-2173) by @christian-byrne in #21247
  • fix: let the document own DynamicGroup row counts above max by @christian-byrne in #21788
  • chore(website): remove the migrated website from the frontend by @benceruleanlu in #21861
  • perf: build slot default tables once after node registration by @DrJKL in #21859
  • FE-3620 fix(billing): show the Team plan card's final price without a count-up by @dante01yoon in #21980
  • chore: remove leftover references to the removed website by @benceruleanlu in #21987
  • fix(architecture): declare webcam capture consumer by @christian-byrne in #21996
  • fix: bound PostHog pre-init event queue by @christian-byrne in #21991
  • Add black-box proof for core-only Agent workflows by @christian-byrne in #21979
  • feat(extensions): mark agent-created extensions in the Extensions panel by @christian-byrne in #21950
  • feat(billing): show an outstanding-payment notice in the pricing table footer by @wei-hai in #21978
  • 1.60.0 by @comfy-pr-bot in #22006

New Contributors

Full Changelog: v1.59.0...v1.60.0