10 Commits
Author SHA1 Message Date
Taremin 26e910b4f1 chore(test): ComfyUIの複数バージョン自動検証基盤の導入とテスト安定化
テスト時に指定された複数のComfyUIバージョンを自動ダウンロードし、最適な仮想環境を構築した上でテストを実行する仕組みを導入。また、Playwright同期APIに起因するデッドロックやキャッシュ汚染によるテストのハングアップ問題を解消。

- 設定ファイルで複数バージョンの定義をサポート
- 該当するComfyUIおよびEmbeddable Pythonを自動取得するdownloaderモジュールを追加
- pytest_generate_testsによりバージョン別のテストを動的にパラメータ化
- min_comfy_versionマーカーによるバージョン制限テストの条件付きスキップをサポート
- Windows環境でのゾンビプロセス防止のためtaskkillによる強制終了処理を追加
- バージョン切り替え時のブラウザキャッシュ汚染を防ぐためキャッシュを無効化
- Playwright同期APIのダイアログ処理をJavaScript側でのモック化へ移行しデッドロックを回避
- 設定画面でのCSVトグル描画有無によるテストアプローチの動的切り替えを実装
- リサイズ操作のsteps指定など各種タイミング競合とタイムアウト処理を強化
2026-07-13 21:13:11 +09:00
Taremin 9eda74eab2 feat(multitext): implement template autocomplete and error navigation on frontend 2026-06-20 07:15:17 +09:00
Taremin 29a3c74040 fix: Monaco APIによるE2Eテスト検証の安定化およびイベント伝播の共通化
- Monaco Editor 0.54.0 へのアップデートに伴い、suggestController 内部 of 非公開プロパティ名が _model から model に変更されていた問題に対処。PromptEditor.getSuggestList() において、controller.model と controller._model の両方に対応する互換フォールバックロジックを実装。
- E2Eテスト内の補完ウィジェット(サジェストリスト)表示確認について、従来のDOM要素セレクタ(.suggest-widget 等)依存から、PromptEditor の API 経由(isSuggestVisible, getSuggestList)での取得・検証方式へ移行。これにより、マークアップ変更への堅牢性が向上。
- applyCommonEditorSetup にて keydown / keyup イベントの伝播防止処理を単一ハンドラに共通化。
- test_multitext_shortcuts における無駄なキャンバスクリックを削除し、カプセル化された pe.focus() を呼び出す形に整理。フォーカス剥奪によるノードの意図しない削除不具合を解消。
2026-05-24 04:19:28 +09:00
Taremin dbbd9284eb feat(multitext): 一括選択機能の実装と DOM 更新の最適化
- 選択モード用のツールバーに「すべて有効」「すべて無効」ボタンを追加
- checkboxElements (Map) による要素管理と syncCheckboxes メソッドを導入し、
  DOM の全面再構築を伴わない高速な状態更新を実現
- チェック状態の計算ロジックを calculateCheckState に集約
- 一括選択機能の正常動作を検証する E2E テストを追加
2026-04-06 07:11:41 +09:00
Taremin 34f9a7901b feat: Selection Modeのチェックボックスを親子間で連動させる機能を追加
- フォルダのON/OFFを切り替えた際、子要素の状態を一括で同期(トップダウン)
- 子要素のON/OFFを切り替えた際、親フォルダの状態を自動で更新(ボトムアップ)
  - 子が1つでもONなら親もON
  - 全ての子がOFFなら親もOFF
- 部分選択(Indeterminate)状態のUIサポートを追加
- 連動機能を検証するためのE2Eテストを追加・修正
2026-04-03 22:59:57 +09:00
Taremin d892109784 feat(multitext): Selection Mode (選択モード) の追加
- MultiTextノードのツリー上でファイル・フォルダ単位でOutput出力対象から除外できる「選択モード」を追加
- UIのツールバーに選択モード切り替えボタンを追加し、チェックボックスで状態を切り替え可能にした
- バックエンドのJSONパース処理(traverse)にて、selectionModeとoutputプロパティに基づき対象ファイルを除外するよう改修
- ユニットテストおよび状態維持(Persistence)のE2Eテストを追加し、保存・リロード時の動作を保証
2026-04-03 16:38:28 +09:00
Taremin f2ab8597e6 refactor: PromptEditorManagerの導入による状態管理の中央化とE2Eテストの安定化
- src/PromptEditorManager.ts を新設し、これまで各エディタインスタンスに分散していた設定と状態の同期処理をグループ単位で一元管理するようにリファクタリング。
- src/index.ts, src/main.ts, src/comfyui/index.ts において、runAllInstances や直接の setSettings 呼び出しを廃止し、Manager経由の updateSettings フローに置き換え。
- src/completion.ts にて CSV パース時のエラーハンドリング (try/catch) を追加し、不正なデータによるクラッシュを防止。
- PromptEditor のDOM初期化プロセスを見直し、非同期でのレイアウトワークアラウンド適用により堅牢性を向上。
- テストコード (tests/) において、CSVパースエラー時のリカバリ確認テストの修正と、UI要素(チェックボックス等)のセレクタ指定を安定化。
2026-04-02 09:00:46 +09:00
Taremin 7b1ebac3ed refactor(e2e & core): E2Eテストの安定性向上およびMonaco初期化競合・コンテキスト追跡の修正
- src/:
  - Monaco言語サービス (CompletionItemProvider 等) をシングルトン構造として登録・管理し、設定変更時にインスタンス間でリスナーが重複・競合しないようにリファクタリング。
  - 非同期な初期化時のタイミング問題を回避するため、コンテキストキーの保持方法や再接続ロジックを最適化。
- tests/:
  - Playwrightの固定待機 (wait_for_timeout) を削減し、動的な可視性チェック (wait_for(state="attached")) や evaluate を用いたDOM操作へ移行。
  - テスト間のコンフリクトを回避するため、テスト用CSVの動的生成 (UUID利用) を導入。
  - test_multitext_autocomplete.py 等で、設定ダイアログ操作やページリロードを含めた本来の永続化テストシナリオが安定稼働するよう再構築。
2026-03-27 13:30:51 +09:00
Taremin 11a01c41eb fix(comfyui): CSVトグル設定が即座にサジェストに反映されない不具合の修正とテスト追加
- addCSV内で無条件に有効化してタグリストに追加していた処理を削除し、loadedCSVへの キャッシュに専念するよう変更
- addLoadedCSVを改善し、現在有効なCSVリストを元に安全にタグを再構築するロジックに変更
- wordBasedSuggestionsは影響がなかったため元の設定に復元
- CSVオン・オフ時のサジェスト反映(表示/非表示)を検証するE2Eテストを追加
2026-03-21 13:49:17 +09:00
Taremin f84fea75b6 refactor: テストディレクトリの構成整理とプリセット機能のモジュール化
- テストファイルを e2e, unit, debug などのカテゴリ別ディレクトリに移動し、構成を整理
- 不要な一時デバッグ用スクリプトを削除し、テスト環境をクリーンアップ
- 言語機能やプリセット定義を src/languages/ ディレクトリに分離・モジュール化
- 言語プリセット管理ダイアログ (preset_dialog.ts) の追加と関連スタイルの更新
- __init__.py での MultiText ノード入力値パース処理を堅牢化 (リスト入力や不正JSONへの対応)
- .gitignore に .agents および debug_dumps の除外設定を追加
2026-03-18 19:37:00 +09:00