v1.56.1
What's Changed
- fix: reinstate pointer-events on card "..." popover under a modal Reka dialog by @huntcsg in #17933
- fix(agent-crdt): keep the ghost placement flag out of the document by @claude[bot] in #18191
- fix: retarget new agent chat to the workflow tab on screen by @claude[bot] in #18196
- fix: pasted nodes reach the agent doc at the pasted position, not [10, 10] by @claude[bot] in #18071
- FE-2484 fix(billing): recover pending operations through the SDK lifecycle by @dante01yoon in #18135
- test(agent): failing repro for agent connect skipping slot type check by @claude[bot] in #18107
- fix: stop dropping a later completed download after a premature failed status (PM-1302) by @claude[bot] in #18082
- fix(agent): restore user attachment previews from history by @claude[bot] in #18192
- fix(agent-crdt): skip re-minting add_node for a node this port already relayed by @claude[bot] in #18175
- FE-2468 fix(billing): payment recovery reads on the subscription rail by @dante01yoon in #18060
- test: repro agent set_widget silently dropped on DynamicCombo mode by @claude[bot] in #18193
- test(agent): repro canvas blanking for a run turn's duration after a mid-turn doc reset by @claude[bot] in #18179
- refactor(assets): pin the asset feed page size to a named constant by @christian-byrne in #18046
- test: stabilize workshop workspace-switch Website E2E by @huang47 in #18055
- feat(website): launch Qwen-Image 2.1 by @bertfy in #18178
- test(agent): let the host fixture refuse a doc_subscribe by @christian-byrne in #18213
- fix(agent): gate persisted workflow tab bindings on document identity by @claude[bot] in #18077
- FE-2476 test(billing): browser E2E for the six reads on the SDK reader rail by @dante01yoon in #18140
- feat(website): swap in the updated Qwen-Image 2.1 hero sizzle by @bertfy in #18217
- chore: enable no-unnecessary-condition for groupNode.ts by @DrJKL in #17895
- chore: enable no-unnecessary-condition for widget files by @DrJKL in #17897
- chore: enable no-unnecessary-condition for metadata parsers by @DrJKL in #17900
- fix(agent-crdt): keep human-added frontend-only nodes across a workflow tab switch by @claude[bot] in #18078
- fix(agent-crdt): keep a human delete across a workflow tab switch by @claude[bot] in #18063
- FE-2482 fix(billing): subscription panel reads the SDK store by @dante01yoon in #18133
- FE-2471 refactor(billing): one status transport for the cloud subscription store by @dante01yoon in #18092
- chore(agent): address post-merge review nits from #16856 by @christian-byrne in #18204
- FE-2472 test(billing): table-driven rail x checkoutType x outcome net by @dante01yoon in #18137
- FE-2474 refactor(billing): top-up dialog reads through its adapter by @dante01yoon in #18132
- FE-2477 test(billing): browser E2E for resubscribe and the payment portal by @dante01yoon in #18139
- docs(browser_tests): note that the agent flag-off cases need a production build by @christian-byrne in #18177
- test(missing-model): pin userinfo URLs against Hugging Face trust confusion by @christian-byrne in #18147
- test(agent-crdt): pin seq-0 doc_update parsing (adopts the settled seq-0 ack contract) by @christian-byrne in #16452
- chore(agent): adopt multiplayer 0.3.0 in frontend by @christian-byrne in #18163
- chore(agent): close the minor review threads from #16856 by @christian-byrne in #18230
- docs(website): add an agent guide plus building-web-prs and fixing-web-prs skills for the design team by @anupreet-comfy in #17950
- test: preserve distinct attachment previews after reload by @christian-byrne in #18244
- test: exercise saved workflow reload and agent reattachment by @christian-byrne in #18243
- fix: preserve prompt height beside generated image previews by @christian-byrne in #18200
- test(autogrow): grown slots and their links survive a round-trip by @christian-byrne in #17521
- test(perf): baseline DOM widget ordering workloads by @christian-byrne in #16138
- fix(agent): apply the run permission choice without a save step by @christian-byrne in #18115
- fix(agent): redact sensitive CRDT dev event details by @christian-byrne in #16926
- fix(agent): preserve drafts when Enter is pressed during runs by @christian-byrne in #17628
- fix(agent): carry provider-neutral error metadata by @christian-byrne in #16491
- test: record extension lifecycle browser performance baselines by @christian-byrne in #16139
- test: adopt website auth and billing automocks by @DrJKL in #18020
- Remove Claude instruction redirects by @DrJKL in #18225
- test(agent-crdt): reproduce node-type-change current risk by @christian-byrne in #16626
- fix(agent): document dev-panel typed-array broadening (#16344) by @christian-byrne in #16547
- test: follow-up to #16378 — colocate R-78 collision characterization by @christian-byrne in #16548
- feat(models): warn when first and last frames have different aspect ratios by @mariana953 in #18024
- fix(website): keep the banner pagination inside the card and settle two edges by @mariana953 in #18131
- fix: keep a new agent chat from inheriting a stale canvas (binding adoption, op coalescing) + contract e2e by @claude[bot] in #18064
- 1.55.12 by @comfy-pr-bot in #18232
- fix(manager): clarify version choices and report installation failures by @ltdrdata in #18083
- [chore] Update Comfy Registry API types from cloud@cddf1cd by @comfy-pr-bot in #17368
- test(agent-crdt): pin insert_workflow dropping promoted host widgets by @claude[bot] in #18270
- FE-2033: test: cover agent subgraph follower in browser by @christian-byrne in #17585
- fix: guard reportError against re-entrant reports from Sentry normalization by @claude[bot] in #18041
- fix: release an agent workflow binding the server disowns by @claude[bot] in #18280
- fix(billing): round cents to credits on exact integer math by @dante01yoon in #18285
- fix: hide provider moderation controls from generation forms by @mariana953 in #18288
- fix(website): align homepage CTAs and split cards by @bertfy in #18226
- chore: lint root scripts/ with ESLint and oxlint by @DrJKL in #17910
- refactor(website): stop using i18n keys as prefixes of other keys by @DrJKL in #17992
- ci: add the i18n: Update Website workflow by @DrJKL in #17996
- test(assets): partial graph cleanup by @christian-byrne in #16248
- feat: add simple design system components by @DrJKL in #16259
- fix: gate cloud bootstrap on authentication by @huang47 in #18049
- test: add second automock foundation batch by @DrJKL in #17958
- test: preserve visible edits after rejected nested widget writes by @christian-byrne in #18263
- fix(website): handle unreadable model inputs and capture client exceptions by @benjcooley in #18293
- fix: run each repo-wide pre-commit check once per commit by @mariana953 in #18295
- test(agent): order turn completion after acceptance by @christian-byrne in #18261
- test(agent): judge agent layout from what the browser draws by @christian-byrne in #17901
- fix(website): align the NEW badge on top-level mobile nav rows by @bertfy in #18227
- feat: add selectionStore and derive canvasStore selection (FE-2040) by @DrJKL in #17048
- test: cover follower projection replay failures by @christian-byrne in #17602
- ci(dependabot): ignore Comfy-Org/github-workflows so a caller's two pins stay together by @mattmillerai in #17973
- PM-856: fix(agent): scope selected nodes to their workflow by @christian-byrne in #17327
- fix: retain visible autogrow slots after tab return by @christian-byrne in #18249
- test(assets): partial bulk insertion by @christian-byrne in #16252
- test(assets): cover list keyboard activation by @christian-byrne in #16308
- feat(website): report Models browser outcomes to Datadog by @benjcooley in #18307
- fix(agent): keep Retry-After parsing in contract and cover the admission message seam by @christian-byrne in #18229
- test(agent-crdt): characterize malformed follower updates by @christian-byrne in #16664
- fix(workflow): drop missing entries from openWorkflows by @claude[bot] in #18033
- fix: stop agent turn on Escape after submitting via mouse click on Send by @claude[bot] in #18296
- FE-2414: fix: derive Compare Images from stores instead of widget state by @jtydhr88 in #17806
- test(agent): pin silent exhaustion of doc-subscribe refusal retries by @christian-byrne in #18272
- fix: copy/paste beside the agent panel by @claude[bot] in #18062
- fix: keep hand-wired autogrow connections on their real slot after an agent slot sync (PM-1449) by @claude[bot] in #18279
- fix(linear-mode): follow-up to #14865 — hide Cloud billing controls off Cloud by @christian-byrne in #16584
- fix(workflow): stop workflow activation crashing on a null active state by @christian-byrne in #18190
- test(undo): pin navigation recovery to the deepest surviving subgraph by @christian-byrne in #18235
- fix: avoid unpolyfilled ES2023 array methods in runtime code by @christian-byrne in #18251
- fix(agent-crdt): scope layout mint ops to the bound document's root graph by @claude[bot] in #18109
- fix: read the root graph from one nullable source in executionErrorStore by @DrJKL in #18059
- fix: avoid TDZ crash restoring saved multiline widget value by @claude[bot] in #18324
- fix(agent): bound attachment upload contract by @christian-byrne in #16985
- fix: flag a freshly created, unsaved tab as unbound for the agent (PM-1430) by @claude[bot] in #18278
- feat(website): restructure Comfy Router landing page to v3 copy by @claude[bot] in #17754
- feat(website): add a right-click menu on the header logo by @bertfy in #17953
- test: cover mouse-driven autogrow reference alignment by @claude[bot] in #18101
- fix: explain legacy dialog errors with catalog messages by @jaeone94 in #18214
- feat: float workflow tabs and soften canvas dividers by @PabloWiedemann in #18236
- refactor: complete vue node review follow-ups by @christian-byrne in #18260
- fix: agent composer paste no longer also pastes the last copied node by @claude[bot] in #18068
- fix: restore Impact, WAS Pause, and RefMod compatibility by @DrJKL in #18301
- fix: guard asset list-view thumbnail against native image drag NotSupportedError by @claude[bot] in #18323
- Revert "feat(website): restructure Comfy Router landing page to v3 copy" by @anupreet-comfy in #18365
- MiniMax template wiring (PM-993): preserve agent workflow connections after dynamic input reordering by @ryan-di in #17221
- fix: autogrow slot can't be reconnected after disconnect without refresh (PM-1496) by @claude[bot] in #18289
- fix(agent-crdt): preserve a hand-wired autogrow link across the follower's own CRDT echo by @claude[bot] in #18375
- test(agent): cover hand-wired autogrow link surviving a later agent turn by @claude[bot] in #18327
- test(agent): fix two local-rig agent spec failures; document canvas baselines by @christian-byrne in #18209
- FE-2033: fix(agent): project define_subgraph definitions cleanly by @christian-byrne in #17458
- fix: don't leave agent-panel selection-restore guard armed on empty restore by @claude[bot] in #18400
- feat(agent): report a node-id write dropped by CRDT last-write-wins by @claude[bot] in #18353
- test(agent): black-box cover the ghost placement flag regression (#18191) by @christian-byrne in #18240
- fix(agent): don't let CRDT reconcile clobber a fresher live widget value by @claude[bot] in #18361
- test: add third automock foundation batch by @DrJKL in #18010
- fix(agent): defer What's New popup while agent onboarding runs by @MaanilVerma in #18287
- test(billing): complete E2E coverage of the billing SDK M1 QA plan by @dante01yoon in #18312
- FE-2620 test(billing-web): drive the checkout from quote through payment to the result page by @dante01yoon in #18315
- fix(billing): show the server's refusal message on the SDK subscription rail by @dante01yoon in #18297
- feat(website): send the onboarding source to the platform's API-keys page (DES-1082) by @shrimbly in #17884
- fix: forward agent telemetry to desktop host by @huntcsg in #18376
- test(agent): cover spare autogrow input across a tab switch by @christian-byrne in #18246
- fix(telemetry): drop extension tab messaging noise by @christian-byrne in #18387
- test: report all RefMod reload regressions by @DrJKL in #18406
- test: replace unnecessary primitive component mocks with real components by @DrJKL in #18022
- chore: enable no-unnecessary-condition for app.ts by @DrJKL in #17896
- fix(website): re-anchor PP Formula so its caps sit where they are centred by @mariana953 in #17843
- feat(assets): open the Assets panel from an ?assets=1 deep link by @mariana953 in #18442
- fix: derive shortcut blocking from rendered modals by @DrJKL in #18199
- fix: tolerate non-cloneable extension fields when serializing nodes by @christian-byrne in #18252
- chore(agent): bump comfy-multi-player to 0.3.3 by @christian-byrne in #18455
- fix(agent): remove workflow timing display by @christian-byrne in #18348
- test: cover asset panel drag onto existing Load Image node bypassing upload by @claude[bot] in #18180
- 1.55.13 by @comfy-pr-bot in #18321
- refactor: validate shared translations with the Responses API by @benceruleanlu in #17899
- test: establish a shared scripts/app automock by @DrJKL in #18018
- chore(knip): drop two suppressions that no longer suppress anything by @DrJKL in #18457
- fix(website): validate model inputs before generation by @benjcooley in #18450
- refactor: delete unused CustomNodesPanel and marketingImage by @huang47 in #16559
- fix(agent-crdt): realign named input links across multiple autogrow groups by @claude[bot] in #18275
- test: reproduce outbound link-position-vs-name corruption on agent CRDT apply (no fix) by @claude[bot] in #18332
- fix: send the workspace token when downloading a cloud asset by @christian-byrne in #18421
- ci: bump pr-risk to github-workflows@ba2e67b by @cloud-code-bot[bot] in #15379
- Fix subgraph definition ID scan edge cases by @christian-byrne in #18453
- fix: report invalid subgraph unpack mappings by @DrJKL in #17374
- fix: make reported E2E coverage trustworthy over time by @DrJKL in #18259
- test: characterize pointer gestures for FE-2040 by @DrJKL in #17109
- fix: complete Vue node context menu coverage and behavior by @DrJKL in #16104
- chore: enable no-unnecessary-condition for changeTracker, api, and ui by @DrJKL in #17904
- test: automate Workshop live smoke and release acceptance by @benjcooley in #18313
- docs(skills): add the verify skill for driving the cloud app against a real backend by @dante01yoon in #18299
- fix(billing): settle a reattached subscription operation like the legacy poller by @dante01yoon in #18310
- test(billing): cover the billing SDK rail outcomes the live QA pass left unvalidated by @dante01yoon in #18309
- fix(agent): signal the onboarding overlay only while a coach card is on screen by @MaanilVerma in #18439
- test(agent): pin remote apply acceptance failures by @DrJKL in #18187
- fix: keep template busy state and error handling in the loader by @benceruleanlu in #17801
- fix: materialize insert_workflow links with numeric ids by @claude[bot] in #18458
- fix: mint disjoint-range node ids for CRDT-bound graphs to prevent agent/frontend id collision by @claude[bot] in #18095
- fix: keep released subgraph definitions consistent across convert-to-subgraph by @claude[bot] in #18040
- fix(touch): stop a lost touchend from permanently freezing the canvas by @DrJKL in #17916
- fix(agent): wait for the general onboarding before offering Agent consent by @MaanilVerma in #18431
- FE-2006: test: characterize agent extension containment failures by @DrJKL in #16794
- refactor: consolidate Agent chip presentation (FE-2410) by @DrJKL in #17767
- test(agent-crdt): repro schema-gate latch leaving canvas at zero nodes by @claude[bot] in #18099
- fix(cicd): resolve the version the bump PR will actually produce by @christian-byrne in #15004
- perf: cut lint and typecheck time and memory (manual, lint-staged, CI) by @DrJKL in #18495
- test: migrate workbench platform mocks by @DrJKL in #18501
- fix(agent): flag LoadImage's image input as upload-capable in agent replay fixtures by @claude[bot] in #18338
- feat: restore tool-call work summary on reload and chat switch by @claude[bot] in #18282
- fix(agent): dismiss resolved paywalls by @christian-byrne in #18405
- test: add regression guard for node mode across workflow tab switches (#18441) by @claude[bot] in #18468
- fix: lock the canvas to selection-only while agent node picking is active by @claude[bot] in #18066
- chore: replace comfy-multi-player tarball pin with 0.3.5 by @christian-byrne in #18552
- [chore] Update Ingest API types from cloud@8d19cb1 by @comfy-pr-bot in #17930
- fix(e2e): stage devtools readable, and say so when it did not load by @christian-byrne in #18237
- test: migrate cloud auth telemetry automocks by @DrJKL in #18500
- fix(agent): drop the draft version from the turn request contract by @christian-byrne in #18224
- fix: agent tool-call chat completion lags canvas materialization (PM-1575/PM-1576) by @claude[bot] in #18391
- FE-2646 feat(account): the workspace deep-link contract, ?workspace= shared by the auth and billing SDKs by @dante01yoon in #18341
- test(agent): verify restored tool calls after chat switching by @christian-byrne in #18581
- fix: render widgets on insert_workflow-materialized nodes by @claude[bot] in #18598
- fix: insert_workflow nodes still render no widgets when execId derivation fails (PM-1580 follow-up) by @claude[bot] in #18604
- fix(website): handle missing abort APIs and label Workshop failures by @benjcooley in #18482
- feat(website): show which Router models route through which providers (DES-1106) by @shrimbly in #18489
- feat(website): add /share-news 307 redirects to the Router share page by @deepme987 in #18611
- fix(partner-gate): wait for API key validation and tag raw auth sessions by @MaanilVerma in #18597
- Update launches banner to promote Comfy Router by @robinjhuang in #18613
- FE-2767 feat(account): read Firebase configuration from the Cloud features endpoint by @dante01yoon in #18454
- test(queue): pin the system hour cycle when no clock preference is given by @christian-byrne in #18231
- test(agent): 35-case insert_workflow integration suite (widgets, links, subgraphs, templates) by @claude[bot] in #18607
- fix: resolve real LGraphNode for insert_workflow node ids in locator/callback path by @claude[bot] in #18616
- chore: convert the root scripts/*.js files to TypeScript by @DrJKL in #18560
- chore: enable low-count type-aware oxlint rules by @DrJKL in #18561
- fix(onboarding): report three onboarding failures that were silent by @MaanilVerma in #18603
- FE-2767 feat(billing): source the Stripe publishable key from the Cloud features endpoint by @dante01yoon in #18469
- chore: bump comfy-multi-player to 0.3.6 by @claude[bot] in #18626
- test: assert unpack telemetry and restored links for subgraph conversion by @christian-byrne in #18578
- test(agent): alternating-write (A -> B -> A) case for promoted subgraph widgets by @claude[bot] in #18629
- 1.56.0 by @comfy-pr-bot in #17671
- fix(litegraph): keep promoted dynamic combo child links on load (FE-258) by @DrJKL in #17486
- feat(telemetry): report swallowed auth session failures by @christian-byrne in #18592
- feat: show the agent's answer while the model writes it by @skishore23 in #18551
- fix: bound asset pagination and resolve queued outputs by @DrJKL in #16070
- [feat] Share one floating-panel style across the canvas toolbars by @PabloWiedemann in #18228
- fix(website): reduce false Workshop service failures by @benjcooley in #18505
- fix: guard keybindHandler Escape check against non-Element event targets by @claude[bot] in #18620
- docs(billing): fix balance-unit example that divided cents by 1,000,000 by @mattmillerai in #17713
- feat(website): add SF/LA Tech Week TOOL panel events by @claude[bot] in #18461
- test: migrate store tests to shared automocks by @DrJKL in #18488
- test: migrate composable tests to shared automocks by @DrJKL in #18490
- test: migrate renderer mocks to shared automocks by @DrJKL in #18492
- test: migrate component mocks to shared automocks by @DrJKL in #18496
- test: force isGraphReady and rootGraphOrUndefined apart in useNodeErrorFlagSync by @DrJKL in #18335
- fix: subgraph-interior widgets don't render in Vue mode after insert_workflow by @claude[bot] in #18634
- fix(agent): skip known failed definition bodies by @christian-byrne in #18508
- Make CodeRabbit E2E coverage check non-blocking by @DrJKL in #18652
- fix(agent): wait for open dialogs before offering Agent consent by @MaanilVerma in #18619
- fix: show clear upload-error toasts instead of raw HTTP status by @claude[bot] in #17868
- FE-2767 feat(billing): read the billing-web origin from the Cloud features endpoint by @dante01yoon in #18657
- Give unified-remint retry fetch its own timeout window by @claude[bot] in #18599
- test(agent): pin the nested-subgraph-instance insert_workflow gap (PR #18607 follow-up) by @claude[bot] in #18624
- FE-2767 ci(billing-web): deploy test on merge, staging and production on dispatch by @dante01yoon in #18661
- test: migrate asset and workflow mocks by @DrJKL in #18498
- refactor: replace dead Tailwind token classes and enforce no-unknown-classes by @DrJKL in #18632
- test: migrate workspace tests to shared mocks by @DrJKL in #18497
- test: migrate graph extension mocks by @DrJKL in #18499
- ci: skip test suites that a PR's changed test files cannot affect by @DrJKL in #18648
- feat: panel open time — pagehide teardown + visibility flag (G2, G3) by @huntcsg in #18664
- feat(agent-crdt): mint standalone disconnect ops by @christian-byrne in #16346
- fix(website): remove stale nav NEW badges and make BETA badge plum by @june-bump in #18647
- feat(telemetry): complete the agent activation funnel (PM-1474) by @huntcsg in #18503
- [chore] Update Ingest API types from cloud@a2730a5 by @comfy-pr-bot in #18667
- fix: download example media when opening local templates by @benceruleanlu in #17670
- feat: cut release branches Monday and Wednesday by @huang47 in #18463
- fix(lint): exempt the generated ingest-types source from its own duplicate-type rule by @benceruleanlu in #18689
- feat(website): make Router gallery cards clickable, move video higher by @claude[bot] in #18621
- refactor: route group context-menu selection through the canvas API by @DrJKL in #17084
- Fix duplicate-name stale workflow binding resolution by @christian-byrne in #18155
- refactor: replace WorkflowTabs SelectButton with Tabs by @DrJKL in #18658
- feat(onboarding): add a Replay Onboarding action for testing by @DrJKL in #17733
- fix(website): correct MiniMax license Enterprise tier model versions claim by @claude[bot] in #18713
- FE-2893 docs(adr): shared web session on a host-only cookie by @dante01yoon in #18707
- fix(agent): keep inline workflow chips through history Edit by @huang47 in #18221
- test: localize workbench automock state by @DrJKL in #18546
- fix: lint and typecheck all workspace paths by @DrJKL in #18720
- test: cover workflowReferenceParts split and offset edges by @huang47 in #17496
- test(agent): align R-73 suite title by @christian-byrne in #16899
- lint: require core tokens in UI primitives by @DrJKL in #18696
- feat(telemetry): report terminal unified-refresh failures to the error tracker by @christian-byrne in #18701
- feat: instrument agent panel actions by @huntcsg in #18665
- feat(website): add curated Cloud workflow pages and catalog by @benjcooley in #18615
- test: repro agent-CRDT reconcile overwriting live node/title/widget state by @claude[bot] in #18075
- fix(telemetry): drop undefined context values in reportError by @christian-byrne in #17322
- fix(website): reduce Nano, validation, and attribution failures by @benjcooley in #18651
- FE-2891 feat(flags): unified_web_session client flag, off by default by @dante01yoon in #18708
- test: address workflowReferenceParts review follow-ups by @huang47 in #18730
- feat(website): run Cloud workflows from Models by @benjcooley in #18680
- docs(adr): ASSETS-LIFECYCLE-0030 asset record and content lifecycles by @christian-byrne in #16102
- Don't gate asset updates on sidebar, smarter page sizes by @AustinMroz in #18633
- fix(website): sync mute button state when autoplay force-mutes video by @claude[bot] in #18692
- fix(billing): drive the 3DS challenge in-session when the auth state lags by @dante01yoon in #18717
- feat(website): refresh Products and Community nav featured cards by @june-bump in #18726
- fix: align floating sidebar with the shared floating panel style by @PabloWiedemann in #18734
- docs: define frontend agent journey effect contract by @christian-byrne in #17962
- FE-2891 fix(flags): guard the dev-override storage read and note the override bypass by @dante01yoon in #18744
- feat: attribute agent paywall purchases through checkout telemetry by @huntcsg in #18390
- chore: run Fallow audit before push by @DrJKL in #18753
- fix: scope Agent persistence to workspace (FE-2405) by @DrJKL in #17765
- chore: move ESLint rules that oxlint can enforce into oxlint by @DrJKL in #18511
- fix: guard canvas keybindings and toast failed setting saves in deprecated UI by @DrJKL in #18534
- docs: clarify agent release order by @christian-byrne in #16635
- test: reproduce widget value loss from an unguarded CRDT resync by @claude[bot] in #18089
- test(agent): repro duplicate insert_workflow + opaque widget-write silent failure by @claude[bot] in #18703
- fix(billing-web): drive failed-payment recovery from the server's recovery_action by @dante01yoon in #18687
- feat(agent): update consent card launch video by @uytieu in #18765
- FE-2767 fix(billing-web): confirm scheduled plan changes without a card form by @dante01yoon in #18684
- fix(billing-web): ship the design-system Inter faces in the build by @dante01yoon in #18685
- fix(billing): tell the customer when Billing & invoices is blocked instead of minting more portal sessions by @dante01yoon in #18740
- fix(website): centralize locale policy and link Chinese Enterprise pages by @benceruleanlu in #17902
- fix(billing-web): theme Stripe Elements from the checkout's own theme scope by @dante01yoon in #18686
- fix(agent): use a neutral color palette and lighter text in the agent panel by @uytieu in #18052
- feat(website): add workflow launch catalog and discovery tabs by @benjcooley in #18763
- refactor: derive selected_nodes and highlighted_links from the selection store by @DrJKL in #17086
- refactor: derive canvas.selectedItems from the selection store by @DrJKL in #17100
- refactor: derive selection toolbox updates from selection and layout stores by @DrJKL in #17101
- fix(agent): stop remote setWidget ops clobbering an in-progress local edit by @christian-byrne in #18766
- fix(agent): derive paywall visibility from current billing state by @mattmillerai in #18590
- feat(agent): follow visible workflow until send or node reference by @ryan-di in #18693
- perf: break the CanvasInfo watcher redraw feedback loop by @DrJKL in #16000
- refactor: back item.selected with the selection store by @DrJKL in #17103
- refactor: batch multi-item selection into one command by @DrJKL in #17105
- fix(billing): stop offering Continue verification after the 3DS challenge completes by @dante01yoon in #18739
- fix(account-ui): re-theme Stripe Elements when the theme changes after mount by @dante01yoon in #18778
- fix(billing-web): show when a cancelled plan ends by @dante01yoon in #18737
- FE-2892 feat(account-core): web session client and session error codes by @dante01yoon in #18710
- [chore] Update Ingest API types from cloud@50eb4f7 by @comfy-pr-bot in #18714
- feat(website): add Machine Cinema and Model Jam events by @claude[bot] in #18663
- feat(website): add Comfy Developer Platform / Comfy Router livestream event by @claude[bot] in #18746
- fix(website): bump the Router catalog model count to 212 by @dante01yoon in #18843
- FE-3012 fix(billing): show the subscription progress toast on the SDK rail by @dante01yoon in #18856
- FE-3013 fix(pricing): show the catalog credit grant in credits, not cents by @dante01yoon in #18858
- feat: add agent_panel_open to run attribution events (PM-1471) by @huntcsg in #18401
- fix(website): restore the catalogue tab and sort menu details by @mariana953 in #18818
- feat(website): a chosen picture opens, and a chosen sound plays by @mariana953 in #18828
- refactor(website): let a second catalogue share the hero, banner and back link by @mariana953 in #18857
- feat(website): move the catalogue tabs down beside the controls by @mariana953 in #18862
- test: characterize pointer gestures in LGraphCanvas by @DrJKL in #18883
- fix(billing): lock other plans while an earlier payment awaits bank verification by @dante01yoon in #18884
- feat(website): filter the workflows half by the model it runs on by @mariana953 in #18868
- refactor(website): name the catalogue card radius and badge size by @mariana953 in #18879
- fix(website): serve workflow graph files from a website-owned path by @benjcooley in #18800
- fix(billing): refuse a subscribe over a pending operation this tab did not issue by @dante01yoon in #18888
- FE-2894 feat(account-core): session-backed identity source and boot rules by @dante01yoon in #18715
- fix(billing-web): price team plans by their credit stop by @dante01yoon in #18738
- feat(website): keep a generation you can come back to by @mariana953 in #18837
- FE-3013 fix(pricing): stop showing the catalog credits_cents as the credit grant by @dante01yoon in #18867
- feat: enable native Churnkey discounts for backend-admitted subscriptions by @benceruleanlu in #17961
- fix: read agent_panel_open fresh; drop client-side agent thread attribution (PM-1472) by @huntcsg in #18413
- feat(website): Cinematic Studio (workshop, beta) by @mariana953 in #18695
- chore(website): refresh Ashby and cloud nodes snapshots by @comfy-pr-bot in #18913
- fix(billing-web): show the refusal instead of a blank page when a tab's workspace is gone by @dante01yoon in #18741
- test: migrate services and scripts to shared mocks by @DrJKL in #18491
- feat(website): Cinematic Studio credit estimates and credit gating by @benjcooley in #18928
- fix(website): re-sync credits after a workflow run until the charge lands by @benjcooley in #18924
- feat(website): gate Workshop apps on workshop-apps-enabled by @benjcooley in #18912
- test: split dialog.spec.ts and move dialog specs into tests/dialogs/ by @DrJKL in #15486
- fix(billing): an enterprise end date stays quiet until two weeks out by @comfydesigner in #16934
- FE-2895 feat(account-core): requestAuth authorize() for cookie requests by @dante01yoon in #18716
- fix: correctly hide run button on cloud when free tier is disabled by @huntcsg in #18239
- FE-2901 test(auth): non-web clients stay on tokens by @dante01yoon in #18711
- fix(billing): members invites stay live while cancelled; ended explains itself by @comfydesigner in #18662
- fix(billing): an ended Enterprise plan says what stopped and where to go by @comfydesigner in #18675
- test: cover reference-only attachment history previews by @christian-byrne in #18247
- fix(agent-harness): make the tsx capture CLIs loadable outside Vite by @christian-byrne in #18745
- test(agent): cover Escape-after-click stop and the first turn on an unsaved tab by @christian-byrne in #18768
- test(agent): pin wiring a text output into a prompt widget by @christian-byrne in #18769
- test(agent): pin named widget targeting by @christian-byrne in #18824
- test(agent): require actionable widget rejection message by @christian-byrne in #18848
- test(agent): clarify full-tab-reload title regression by @christian-byrne in #18849
- test(agent): preserve streaming scroll position by @christian-byrne in #18855
- test: reproduce widget.options getter-only crash from combofilter custom node by @claude[bot] in #18371
- feat(website): add thumbnail images to SF/LA Tech Week TOOL panel events by @claude[bot] in #18654
- fix(website): remove duplicate dev-platform-comfy-router event by @claude[bot] in #18853
- fix(website): move Developer Platform designer role into Design category by @claude[bot] in #18901
- test(agent): pin panel viewport drag bounds by @christian-byrne in #18859
- test(agent): pin duplicate rate-limit submissions by @christian-byrne in #18854
- test(agent): pin stale run approval actions by @christian-byrne in #18834
- test(agent): preserve completed widget edits by @christian-byrne in #18822
- test(agent): give the black-box agent harness a queue and execution surface by @christian-byrne in #18790
- test(agent): pin what the canvas shows when the agent reports a graph edit by @christian-byrne in #18771
- test(agent): pin the run-approval consent contract end to end (PM-1494) by @christian-byrne in #18774
- fix(telemetry): stop reporting third-party resource load failures by @christian-byrne in #18950
- fix(agent): give the composer one soft edge and align the cursor with the hint by @uytieu in #18932
- fix(agent): change panel badge from alpha to beta by @uytieu in #18943
- fix(agent): match user bubble line spacing to reply text and remove outline by @uytieu in #18948
- Revert "fix(website): move Developer Platform designer role into Design category" by @christian-byrne in #18953
- test: add ECS feature sanity coverage by @christian-byrne in #17459
- fix(billing): the subscribe button says Subscribe, not Subscribe Now by @comfydesigner in #18659
- ci: shard Vitest unit tests across four runners by @DrJKL in #18931
- fix(agent): deselect node when its composer reference chip is removed (PM-1227) by @claude[bot] in #18061
- FE-2897 feat(account-core): session lifecycle, create on sign-in, delete on sign-out, heartbeat by @dante01yoon in #18719
- FE-2900 feat(account-core): lazy workspace-token mint from the web session by @dante01yoon in #18870
- Add Cloud API concurrency limits to pricing plans by @robinjhuang in #18523
- test(agent): separate absent subscription sequence fixture by @christian-byrne in #18486
- docs(agent): document first-use tour semantics by @christian-byrne in #18428
- fix(agent): keep the expanded agent panel inside the window by @uytieu in #18182
- feat(agent): improve onboarding card focus, navigation, and replay by @uytieu in #18911
- fix(billing): bound fast polling for customer-blocked operations without an action by @dante01yoon in #18747
- fix(billing-web): offer a way back to ComfyUI when the entry workspace is refused by @dante01yoon in #18997
- feat(telemetry): say why an image preview failed, not just that it did by @christian-byrne in #18698
- feat(agent): mark video reply assets by @christian-byrne in #18392
- docs(tdd): add TDD for 1.54 QA follow-up security and stability fixes by @claude[bot] in #18584
- fix(VirtualGrid): correctly clamp visible range when item list shrinks or column count grows by @claude[bot] in #18588
- fix(TextPreviewWidget): preserve bracket-delimited text instead of parsing it as HTML by @claude[bot] in #18589
- fix(groupNode): pair widget values to their originating node during subgraph conversion by @claude[bot] in #18596
- fix(security): harden sanitization against attribute breakout, form injection, and javascript: URLs by @claude[bot] in #18594
- fix(agent): show onboarding after first scoped consent by @christian-byrne in #19061
- fix(agent-crdt): mint undo/redo restores into the CRDT doc; bracket follower frames in undo history by @christian-byrne in #17325
- feat(telemetry): stop swallowing canvas node media load failures by @christian-byrne in #18699
- chore: drop dead compiler options from the root tsconfig by @DrJKL in #19041
- fix(agent): omit redundant workflow name in bound run approvals by @christian-byrne in #19054
- fix(assets): open API-submitted jobs as workflows from the asset menu by @mattmillerai in #13957
- fix: automatically dedupe pnpm lockfile by @DrJKL in #19030
- chore: patch shoehorn so fromPartial accepts the full type by @DrJKL in #19042
- perf: run vue-tsc typechecks on typescript-native-bridge by @DrJKL in #19050
- perf: run workspace package typechecks on typescript-native-bridge by @DrJKL in #19059
- fix(agent): combine adjacent fragmented assets without reordering captioned assets by @claude[bot] in #18090
- fix(nodes): allow shrinking after content growth and tab switches by @claude[bot] in #18093
- feat: carry pack identity in Export (API) _meta and read it on import by @jaeone94 in #15395
- fix: scope pre-push fallow audit to main by @DrJKL in #19114
- [chore] Update Ingest API types from cloud@d9dbaf5 by @comfy-pr-bot in #18926
- test(agent): exercise reference chip focus integration by @christian-byrne in #16336
- ci: add informational CRDT skew alarm against comfy-multi-player main by @christian-byrne in #16789
- fix: add jitter and cleanup to workspace token refresh by @christian-byrne in #12276
- test(agent): expose a feature-flag settlement marker by @christian-byrne in #16301
- fix(api): name the request in the settings 401 error by @christian-byrne in #18951
- feat(billing): instrument capability reads and purchase phases by @huang47 in #17300
- test(agent): baseline long-session composer performance by @christian-byrne in #19051
- fix(agent): scroll restored conversation to latest by @christian-byrne in #19052
- fix: resolve DynamicCombo nested input types in node search by @bigcat88 in #15142
- fix(agent): stop retrying a permanently refused CRDT doc subscribe by @claude[bot] in #18704
- test(perf): warm agent composer benchmark twice by @christian-byrne in #19159
- fix(agent): resolve the agent gate off /features and delete the posthog-js flag path by @christian-byrne in #19074
- fix(ci): stop backport partial failures from discarding clean backports by @christian-byrne in #14152
- perf: skip document-wide modal scans while typing by @christian-byrne in #19057
- FE-2906 test(e2e): cross-origin session harness and section 17 test ids by @dante01yoon in #18718
- FE-3012 test(billing): hold billing progress toasts equal across the legacy and SDK rails by @dante01yoon in #18861
- FE-3013 test(billing): express plan catalog grants in cents in E2E fixtures by @dante01yoon in #18885
- FE-3045 docs(adr): billing-web hosts checkout only; hosts own plan selection by @dante01yoon in #19096
- fix(ci): type the CRDT skew scripts' nullable args so type-aware lint passes by @dante01yoon in #19144
- fix(agent): harden conversation follow intent by @christian-byrne in #19160
- FE-3045 refactor(billing-web): drop the billing-web plan grid; hosts own plan selection by @dante01yoon in #19097
- FE-3051 fix(billing): resume a parked checkout from Complete your payment by @dante01yoon in #19120
- chore: upgrade Vitest to 5.0.2 by @DrJKL in #19145
- fix: resolve the remaining disabled tests by @christian-byrne in #19064
- test(agent): cover AgentPanel state branches by @christian-byrne in #16376
- test: add renderer toggle and zoom legibility e2e coverage for the ECS migration QA plan by @christian-byrne in #17462
- FE-2894 fix(account-core): follow-ups from the web session reviews by @dante01yoon in #19002
- FE-3054 fix(billing): refresh the app on every return from a hosted billing tab by @dante01yoon in #19123
- feat(agent): paste an image into the agent composer to attach it by @christian-byrne in #18248
- fix: agent delete-all doesn't clear canvas until next message by @claude[bot] in #18404
- FE-3046 refactor(design-system): move buttonVariants into @comfyorg/design-system by @dante01yoon in #19098
- fix(telemetry): close the E1 and E3 agent paywall attribution gaps by @huntcsg in #18974
- FE-3046 feat(account-ui): shared checkout confirm, saved-method selector, card form and success by @dante01yoon in #19099
- FE-2891 feat(account-core): probe-gated unified_web_session readers for website and billing-web by @dante01yoon in #18874
- FE-2898 feat(billing-web): recognise the shared web session behind unified_web_session (1/2) by @dante01yoon in #18880
- FE-2896 feat(website): header shows the account from the shared web session by @dante01yoon in #18877
- Fix agent gate auth lifecycle by @christian-byrne in #19219
- fix(website): report Cloud credit refusals on workflow runs as insufficient credits by @benjcooley in #19249
- feat(website): Workshop apps as catalogue data at /models/apps/ by @benjcooley in #19247
- fix(website): take PP Formula's centring from the face and retire the overrides by @mariana953 in #18988
- fix(website): stop a button label reserving height it never uses by @mariana953 in #19023
- fix(website): make the failing Cloud workflows run by @benjcooley in #19251
- feat(website): record where failed Cloud workflow runs broke by @benjcooley in #19275
- ci: cut merge-queue cost per entry by @DrJKL in #19187
- FE-3002 fix(auth): show a closed sign-in popup right away by @MaanilVerma in #19243
- perf: skip enforce-canonical-classes in pre-commit, rely on CI auto-fix by @DrJKL in #18516
- feat(website): Hub V2 — Mar's 23 catalogue, workflow page and run-state PRs by @benjcooley in #19255
- test(agent): guard that a workflow the agent cleared is really empty on canvas by @christian-byrne in #18969
- fix(agent): tell the user when the doc host rejects their edit (PM-1716) by @christian-byrne in #19073
- fix: harden flaky E2E tests and history/model loading races by @DrJKL in #19218
- test: reduce Vitest environment, import and timer costs by @DrJKL in #19117
- fix(website): Hub V2 and PP Formula review fixes by @benjcooley in #19256
- FE-2903 feat(cloud): cloud app joins the shared session lifecycle by @dante01yoon in #18871
- FE-3067 feat(billing-web): gate /v1/checkout on the billing_web_checkout_ui flag by @dante01yoon in #19248
- FE-1656 refactor(billing): remove the unconfirmed team subscription checkout util by @dante01yoon in #19250
- fix(website): make every published Cloud workflow run by @benjcooley in #19291
- refactor(website): fill translation placeholders with named values by @benceruleanlu in #18945
- test: enable selective Vitest concurrency for isolated tooling by @DrJKL in #19128
- fix(ci): catch AI commit authorship, not just Co-authored-by trailers by @christian-byrne in #18920
- FE-3046 refactor(workspace): render the subscription checkout steps from account-ui by @dante01yoon in #19100
- fix: make a blocked billing-portal popup recoverable with a click by @wei-hai in #19254
- FE-2898 feat(billing-web): workspace scope and cookie transport on the shared web session (2/2) by @dante01yoon in #18881
- fix(website): render Developer Platform pricing from the rate-card contract at GA rates by @wei-hai in #18927
- FE-3018 feat(billing-web): full-page checkout page state and pure transition by @dante01yoon in #19252
- FE-2899 feat(website): credits balance on the shared web session by @dante01yoon in #18882
- FE-2904 feat(cloud): ingest requests on the web session, workspace switch without a mint by @dante01yoon in #18875
- test(website): sweep published Cloud workflow pages on a schedule by @benjcooley in #19274
- feat(website): catalogue tab subtitles, a floating workflow Run, and Add credits when out of credits by @benjcooley in #18914
- feat(website): the API tab puts what you need beside the code by @mariana953 in #19241
- feat(website): Cinematic Studio opens on a playground-style side panel by @mariana953 in #19316
- fix(agent): defer the consent offer past the first-run screen instead of dropping it by @christian-byrne in #18966
- perf: run unused-import checks natively in oxlint by @DrJKL in #19067
- test: isolate Pinia fixtures for concurrent store tests by @DrJKL in #19142
- test: use Vitest conditional mocks for usage logs by @DrJKL in #19146
- FE-3046 feat(billing-web): render the shared embedded checkout by @dante01yoon in #19101
- fix(vue-nodes): show missing resources as warnings by @jaeone94 in #19151
- fix(error-overlay): distinguish missing resources from errors by @jaeone94 in #19152
- fix(agent): report an approval ask the panel never delivered by @christian-byrne in #18952
- feat(workspace): mark expired invites in the Pending tab by @comfydesigner in #18645
- fix(model-library): load folders after the assets capability rebuild by @synap5e in #18781
- FE-3074 fix(billing): resolve the Stripe publishable key server-first everywhere by @dante01yoon in #19330
- FE-2906 fix(e2e): the session harness signs in on Cloud with the flag off by @dante01yoon in #19321
- fix: remove safe legacy code (V1 draft fallbacks, migration module, topbar-container) by @christian-byrne in #11454
- feat(surveys): wire an example-workflows survey, disabled until its form exists by @christian-byrne in #18725
- FE-2905 feat(cloud): socket and media URLs carry the web session workspace by @dante01yoon in #18878
- feat(website): replace Agent waitlist with Comfy Agent landing page by @june-bump in #18449
- perf: cache account-core Vitest transforms by @DrJKL in #19147
- fix: report malformed node input specs by @christian-byrne in #19220
- docs: leave repo-wide lint and typecheck to the git hooks and CI by @benceruleanlu in #19355
- feat(agent): keep panel open through activation by @christian-byrne in #19154
- test(agent): preserve behavioral pins on current main by @christian-byrne in #19328
- FE-2892 feat(account-core): sign out of all devices against the revoke-all contract by @dante01yoon in #18869
- feat(agent): attach user id to agent feedback Typeform hidden fields by @christian-byrne in #19028
- [chore] Update Ingest API types from cloud@6d1e6b7 by @comfy-pr-bot in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19212
- refactor(agent): apply remote CRDT ops through the graph API and delete the reconcile layer by @DrJKL in https://github.com/Comfy-Org/ComfyUI_frontend/pull/18700
- fix: dedupe malformed input diagnostics by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19361
- fix(agent): keep a held consent offer when the retry cannot be made by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/18975
- test(agent): make the grant no-persistence check order-independent and pin the sign-out clear by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19184
- docs(agent): refresh CRDT authority write path by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19389
- fix: keep template search working when custom node templates share a name by @deepme987 in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19392
- FE-2899 feat(website): model detail balance on the shared web session by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19368
- feat(agent): name the exit when an automatic consent offer ends silently by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/18978
- chore: remove AI co-author check by @DrJKL in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19393
- feat(website): send Windows on ARM PCs with NVIDIA GPUs to the arm64 desktop installer by @benceruleanlu in https://github.com/Comfy-Org/ComfyUI_frontend/pull/18543
- FE-3046 feat(billing-web): invite your team from the checkout success step by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19104
- FE-2900 feat(cloud): comfy-api calls use the workspace token minted from the web session by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19378
- fix: await in-flight unified-auth mint instead of racing it by @claude[bot] in https://github.com/Comfy-Org/ComfyUI_frontend/pull/15184
- FE-3052 fix(billing-web): explain a cancel refused while a plan change is in progress by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19119
- FE-3057 feat(billing): show the payment progress in the app while billing-web takes the payment by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19129
- feat(website): Cinematic Studio: more image models with honest frames, a Colors palette, and request fixes by @comfyrob in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19326
- FE-2904 test(cloud): browser tests for queue and workspace switch on the web session by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19382
- FE-3013 feat(pricing): read the plan's raw credit grant from the catalog by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/18873
- fix(website): workflow page audit — template controls, random seed, real examples by @comfyrob in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19391
- FE-3018 / FE-3019 / FE-3020 / FE-3021 / FE-3022 feat(billing-web): Milestone 3 full-page checkout behind billing_web_checkout_ui by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19253
- feat(agent): record every consent request outcome by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19430
- feat(website): video in Cinematic Studio: Image/Video mode, ten video models, animate a still by @comfyrob in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19370
- feat(website): tell Workshop models, workflows and apps apart in analytics by @benjcooley in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19451
- feat(website): offer Python and TypeScript SDK snippets on the workflow API tab by @benjcooley in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19323
- test(website): pin randomized seeds in the SDK snippet upload test by @benjcooley in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19464
- feat(website): record Workshop app views, runs and downloads by @benjcooley in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19456
- feat(website): land Mar's complete Hub design pass by @mariana953 in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19320
- ci: make cloud backport tagging recoverable by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19477
- ci: allow historical cloud tag recovery by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19479
- FE-3056 fix(billing-web): re-quote a stale subscribe quote the way the app does by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19126
- feat(agent): instrument starter-prompt clicks, and attribute the send they produce by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/18991
- [chore] Update Ingest API types from cloud@3932a04 by @comfy-pr-bot in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19427
- feat(agent): emit app:agent_error telemetry (TEL-8) by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/16628
- fix(agent): require lineage_seq on doc_reset frames by @claude[bot] in https://github.com/Comfy-Org/ComfyUI_frontend/pull/18277
- FE-3079 fix(cloud): workspace API and agent consent requests on the web session by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19390
- FE-2893 docs: describe the shared web session in the billing-web README and account-core by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19449
- FE-3079 fix(cloud): Run mints its workspace token from the web session by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19414
- fix: report DOM widget mount failures by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/16937
- FE-2899 feat(website): read the session balance in the run gates and credit action by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19454
- fix(cloud): report degraded subscription fallbacks by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/17001
- FE-2901 fix(cloud): keep API-key logins off the web session when unified_web_session is on by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19450
- FE-2891 test: pin website and billing-web requests with unified_web_session off by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19453
- ci: harden cloud backport tag reconciliation by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19492
- fix(website): restore global ImportMetaEnv declarations by @benceruleanlu in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19363
- test: refresh activation-aware Agent panel coverage by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19413
- feat(website): nav marks Developer Platform and Comfy Router as NEW, drops BETA (DPLAT-2098) by @shrimbly in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19444
- fix(website): remove BETA from the developer platform and Managed Builds pages (DPLAT-2098) by @shrimbly in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19445
- fix: close cloud tag workflow review gaps by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19507
- feat(agent): show the credits paywall when the workspace runs out, not only when a send is refused by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/18967
- fix(billing-web): re-quote on QUOTE_STALE in the full-page checkout by @DrJKL in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19499
- FE-3018 fix(billing-web): apply the third design-review round by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19462
- fix(website): hide cloud promo bar on download page by @claude[bot] in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19448
- fix: use release token for cloud tags by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19511
- feat(billing): add Pay invoice action to the payment-failed banner by @wei-hai in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19435
- FE-2904 test(cloud): the web session browser test clicks Run by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19457
- fix: classify Fallow entry point roles by @DrJKL in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19027
- FE-2904 fix(cloud): remote widgets fetch on the web session workspace by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19367
- fix: confine cloud tag release credential by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19523
- perf: keep ESLint content-hash caching to CI, use metadata locally by @DrJKL in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19036
- feat(website): run Re-shoot for real through the Comfy app proxy by @benjcooley in https://github.com/Comfy-Org/ComfyUI_frontend/pull/18917
- test(agent): prove persisted approvals recover on refresh by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19340
- test: isolate cloud tag token contract by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19532
- fix(website): link app GitHub pills to published repositories by @stale2000 in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19515
- fix(website): update Comfy API CTAs and sharing graphic by @bertfy in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19339
- refactor(sidebar): one layout for every left sidebar panel (DES-1220) by @shrimbly in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19480
- feat(website): add dedicated Comfy API section to pricing page by @claude[bot] in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19431
- FE-3088 fix(billing): no second 3DS challenge in the app for a payment billing-web is taking by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19514
- feat(website): clearer app subtitles on the Apps cards and app pages by @wealthwiselabs in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19529
- FE-3020 fix(billing-web): promo entry on scheduled changes, re-quote consent, and unchecked codes by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19536
- FE-3021 fix(billing-web): Pay failure card, $0 explanation, yearly naming and endings copy by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19537
- fix: preserve cloud branch dispatches by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19546
- fix: harden cloud push dispatch boundary by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19550
- feat(website): show a workshop entry only while its PostHog flag is on, per environment by @benjcooley in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19541
- feat(website): offer Linux on the download page by @deepme987 in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19478
- FE-3022 fix(billing-web): lock and redirect states after reloads and returns by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19538
- feat(website): run Re-shoot on current main, with the depth read started on pick by @comfyrob in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19465
- fix: isolate cloud dispatch concurrency by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19557
- fix: start typing from anywhere in the agent composer prompt area by @ryan-di in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19517
- BE-17784 fix(billing): accept and show the payment_not_completed decline reason by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19531
- FE-3018 fix(billing): keep a finished checkout finished across reloads and returns by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19540
- feat(hdr-viewer): composite transparent EXR pixels over a checkerboard by @jtydhr88 in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19554
- FE-2900 fix(cloud): show localized copy when a web-session token mint fails by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19452
- fix: coalesce cloud dispatches by branch by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19561
- feat(agent): tailor starter prompts to cloud and local by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19283
- fix: bound cloud dispatch jobs by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19562
- fix(agent): reopen saved workflows from chat history by @ryan-di in https://github.com/Comfy-Org/ComfyUI_frontend/pull/18866
- feat(website): Workshop /models SEO integration branch by @MaanilVerma in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19494
- fix(website): polish comfy-api hero animation, badges, and page content by @claude[bot] in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19565
- test: port missing CRDT mint-reset coverage from #18403 by @claude[bot] in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19522
- fix(website): bump router catalog model count to 213 by @claude[bot] in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19574
- feat(website): track Workshop API snippet copies and Get API key clicks by @wealthwiselabs in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19473
- fix(website): unblock builds and defer offscreen footer loading by @claude[bot] in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19580
- fix: follow-up to #18064 — six review findings in the agent op sender and the new-chat fixture by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/18538
- fix(website): Seedance 2.5 first frame keeps its own ratio in Cinematic Studio by @wealthwiselabs in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19579
- feat: report exhausted checkout recovery by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/17000
- test(agent): agent work adds to the canvas instead of replacing it by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/18770
- fix(website): preserve platform animation across navigation by @bertfy in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19582
- fix(agent-crdt): settle outstanding ops during detach by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19595
- fix(agent): recover persisted attachment presentation by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19516
- feat: use generated ToolCallSummary type for persisted tool-call schema by @claude[bot] in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19585
- feat(website): give workflows and apps their own hub pages, and move app pages to /hub/apps by @MaanilVerma in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19594
- test(assets): delete the redundant media-type-filter suite by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/18841
- feat(website): Cinematic Studio makes a grade palette from an uploaded image by @mariana953 in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19426
- fix(website): Hub polish — one banner height, tighter corners, card labels off the artwork by @mariana953 in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19500
- test(agent): pin the draft a turn posts against the canvas the user sees by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/18767
- fix(website): keep Hub tab navigation steady by @mariana953 in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19610
- feat(camera-angle): 3D camera angle picker widget for the CameraAngle node by @jtydhr88 in https://github.com/Comfy-Org/ComfyUI_frontend/pull/17413
- fix(agent): sequence consent tour before held send by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19619
- test(agent): keep visible nodes in queued prompts by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/18829
- fix(assets): label the media assets list as the selected tab's panel by @shrimbly in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19534
- fix(queue): make the job list keyboard-scrollable by @shrimbly in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19535
- feat(telemetry): require error surface tags by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19230
- docs(adr): propose same-page operation replay policy by @christian-byrne in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19314
- fix(sidebar): draw dashed section dividers as one thin line (DES-1222) by @shrimbly in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19637
- FE-3128 fix(cloud): signing in again after a sign-out creates the web session by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19630
- FE-3110 fix(billing): keep billing_op_id, presentation, resumed and decline_reason on the SDK operation event by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19623
- FE-3114 fix(billing): report subscribe and top-up start and success on the legacy personal rail by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19627
- FE-3018 fix(billing-web): send a planless checkout link to the pricing table by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19611
- FE-3021 fix(billing-web): visual pass — checkbox outline, dark dropdown, unbroken dates and IDs, settled copy by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19612
- FE-3020 fix(billing-web): restore a promo this page applied, and keep discount rows in server order by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19613
- fix(website): address the Cursor review on #19594 (hub section pages) by @MaanilVerma in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19605
- fix(website): tell users Seedance blocks realistic faces by @wealthwiselabs in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19638
- FE-3129 feat(billing): gate Members credit limits behind their own flag by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19641
- FE-3106 fix(billing): report each SDK-rail cancel and subscribe operation once by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19620
- FE-3113 fix(billing): report a terminal when a downgrade to personal needs reconciliation by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19622
- fix(website): drop live docs catalog count test by @huang47 in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19635
- FE-3106 test(billing): expect the lifecycle started event to carry its operation id by @dante01yoon in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19648
- feat(website): show the paste-into-agent prompt in Comfy API Ship in minutes by @claude[bot] in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19636
- feat(layout): symmetric header padding variant by @comfydesigner in https://github.com/Comfy-Org/ComfyUI_frontend/pull/18328
- 1.56.1 by @comfy-pr-bot in https://github.com/Comfy-Org/ComfyUI_frontend/pull/18653
New Contributors
- @anupreet-comfy made their first contribution in #17950
- @wealthwiselabs made their first contribution in https://github.com/Comfy-Org/ComfyUI_frontend/pull/19529
Full Changelog: v1.55.11...v1.56.1