Selector or count rebuild after a sub-widget write replays differently by apply order

オープン
#1,101 コメント 0 件 リアクション 0 件 担当者 1 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@jaeone94 がすでに取り組んでいます。

2026年11月3日 から。

  • #1136 @skishore23 による — オープン

評価

この issue はまだ評価されていません。

説明

A batch that writes a DynamicCombo sub-widget and then switches the selector away and back replays to different graphs depending on apply order.

On a Gen node already at model = max:

specs = [model.mode = quality, model = base, model = max]
  • Forward replay: the model = max rebuild refills model.mode with its default, so the node ends at balanced.
  • Reverse replay: model = max wins first and model = base loses the gate, so no rebuild happens. model.mode = quality still applies, so the node ends at quality.

The rebuild resets the sub-widget's value but leaves its _widget_stamps entry alone, so the earlier sub-widget write keeps winning its gate in one order and not the other. A DynamicGroup shrink-then-regrow in one batch has the same shape.

With #1007 the ops in a batch are minted in increasing order, so this shape diverges every time instead of depending on random op_ids. #1007 narrows its amendment's convergence claim and leaves this open.

Possible fixes: have a selector or count rebuild bump or reset the stamps of the sub-widgets it replaces, or refuse a batch that writes a sub-widget before rebuilding its selector or count.

Found by Cursor review on #1007.

主要言語
Python
スター
1k
フォーク
176
平均マージ
1日 11時間
マージ済み PR(30日)
87

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

Comfy-Org/comfy-cli のほかの issue

Comfy-Org/comfy-cli の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。