17 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 d892109784 feat(multitext): Selection Mode (選択モード) の追加
- MultiTextノードのツリー上でファイル・フォルダ単位でOutput出力対象から除外できる「選択モード」を追加
- UIのツールバーに選択モード切り替えボタンを追加し、チェックボックスで状態を切り替え可能にした
- バックエンドのJSONパース処理(traverse)にて、selectionModeとoutputプロパティに基づき対象ファイルを除外するよう改修
- ユニットテストおよび状態維持(Persistence)のE2Eテストを追加し、保存・リロード時の動作を保証
2026-04-03 16:38:28 +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 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
Taremin ee924a29c0 feat: JsonFilter ノードにルールの個別無効化機能を追加
- 各ルールに「無効化」トグルボタンを追加し、一時的に適用対象外にできる機能を追加
- バックエンド (__init__.py) で無効化されたルールをスキップするロジックを実装
- フロントエンド (filter_widget.ts) で無効化ボタンの UI と状態管理を実装
- 無効化された行の視覚的なスタイル (index.css) を追加
- 単体テスト (test_filter_logic.py) を更新し、無効化機能の動作を検証
2026-03-05 11:08:46 +09:00
Taremin fb90f523dd fix: JsonFilter ノードの rules ウィジェットが正しくシリアライズされない問題を修正
JsonFilter ノードにおいて、ルール設定用の rules ウィジェット(hiddenタイプ)の値が
ComfyUI のプロンプト送信時にバックエンドへ正しく送信されない問題を修正しました。

- src/comfyui/index.ts: rules ウィジェットに serializeValue および beforeQueued を実装
  - シリアライズ直前に node.properties.rules から最新の値を同期するように改善
  - 二重シリアライズ(ダブルクォートのエスケープ)を防止するため、生のオブジェクト/配列を渡すように修正
- src/comfyui/widget/filter_widget.ts: 値の保存時に明示的に widget.callback を呼ぶガードを追加
  - デバッグ用のログ出力を追加
- __init__.py: バックエンドでの受信確認用ログを追加

この修正により、フロントエンドで設定したフィルタリングルールが確実にバックエンドに到達し、
JSONDecodeError やデータの欠落が発生しないことを確認済みです。
2026-03-05 02:40:25 +09:00
Taremin 508707cd15 fix: E2Eテストの安定化および初期化時のTypeError修正
- src/completion.ts, src/index.ts, src/comfyui/index.ts: 未定義値に対する操作や不適切なプロパティアクセスによる TypeError を防ぐガードを追加
- __init__.py: MultiText ノードに非JSON入力があった際のフォールバック処理を追加し、JsonFilter でのパースエラー時に詳細ログを出力するように改善
- tests/test_multitext_output.py: フロントエンドの同期遅延問題を回避するため、ノード内部のデータ構造を操作して標準の app.queuePrompt() を呼び出す堅牢な実装に刷新
- tests/conftest.py, tests/test_multitext_features.py: テスト実行の安定性と一貫性を高めるための微調整
- 全27件のE2Eテストが正常にパスすることを確認済み
2026-03-04 16:31:58 +09:00
Taremin d55a851b4f feat: WebuiMonacoPromptJsonFilter ノードと専用 UI ウィジェットの新規実装
- 動的なフィルタールール設定を可能にする専用 UI ウィジェット (FilterWidget) を実装
- フィルタリング中核を担う WebuiMonacoPromptJsonFilter ノードを追加
- MultiText ノードの出力 JSON にパス情報 (path) を追加し、階層構造でのフィルタリングに対応
- 実行エラーの可視化を目的とした早期失敗 (Fail-fast) 設計の導入
- PreviewAny ノードを用いた実行結果の検証を含む包括的な E2E/ユニットテストを追加
2026-03-01 22:08:55 +09:00
Taremin 258298ee54 feat: MultiTextノードの出力拡張とレイアウトの安定性向上
- 出力を「contents」と「json」の2系統に拡張し、ファイルごとの詳細データ(JSON)を取得可能に改善
- ウィジェットがノード下部の出力ピンエリアとはみ出さないよう、動的なマージン計算を導入
- ノードを極小サイズにした際の表示崩れを防ぐため、サイドバー幅の動的な制限とcomputeSizeの最小値計算を改善
- 修正内容を検証するための各種E2Eテストおよびユニットテストを追加
2026-03-01 05:00:22 +09:00
Taremin fa9abb3d13 feat: MultiTextウィジェットの実装およびE2Eテストの安定化(リロード対応含む)
- __init__.py: WebuiMonacoPromptMultiTextノードのデータ処理ロジックを改善
- src/comfyui/widget/multitext_widget.ts: 新規ウィジェット実装。Monaco Editorの初期化とリロード時の自動復旧に対応
- src/comfyui/widget/index.ts: MultiTextWidgetをエクスポート
- src/comfyui/widget/find_widget.ts: 検索UIの調整
- tests/conftest.py: ComfyUI起動待ちなどの共通ヘルパーをフィクスチャ化
- tests/pytest.ini: ログレベル出力を調整
- tests/test_e2e.py: ページリロード時のMonaco Editorの状態復元を検証するテストを追加
- tests/test_multitext_search*.py, test_multitext_tab.py: MultiTextウィジェット向けの新規テスト群を追加
2026-02-22 22:52:27 +09:00
Taremin 3c250672ca add: snippet 2025-02-24 19:47:54 +09:00
Taremin bc9f15ad2e add: snippet機能の追加(Ctrl-M -> Ctrl-S) 2025-02-06 12:52:31 +09:00
Taremin 959c6e4a3c fix: python coding style 2024-05-18 18:15:05 +09:00
Taremin d1d33283b0 ComfyUI / A1111
- オートコンプリートの on/off 追加

ComfyUI

- ソースコードの構成変更
- カスタムノードの適用方法を変更
  - 起動後読み込みに時間がかかると反映されないノードが出る現象の修正
- 描画関連の修正
  - コンテキストメニューやオートコンプリートの候補が他のUIで一部隠れてしまう事があるのを改善
- すべてのノードから検索する WebuiMonacoPromptFind ノードの追加
- すべてのノードで置換する WebuiMonacoPromptReplace ノードの追加
2024-05-18 18:04:27 +09:00
Taremin 711378d53a fix: ComfyUI Import Failed (動作はするけどノードの指定がないのでFailedになっていた) 2024-01-17 02:27:24 +09:00
Taremin 86d36c1f03 change: ComfyUI対応を拡張機能からカスタムノードに変更 2024-01-16 21:20:00 +09:00