diff --git a/contributors/emails/williamchastain2005@gmail.com b/contributors/emails/williamchastain2005@gmail.com new file mode 100644 index 0000000000..d980e47d40 --- /dev/null +++ b/contributors/emails/williamchastain2005@gmail.com @@ -0,0 +1 @@ +CrazyWillBear diff --git a/skills/creative/comfyui/scripts/auto_fix_deps.py b/skills/creative/comfyui/scripts/auto_fix_deps.py index 58cce00c72..9c6bee96a3 100755 --- a/skills/creative/comfyui/scripts/auto_fix_deps.py +++ b/skills/creative/comfyui/scripts/auto_fix_deps.py @@ -102,7 +102,7 @@ def main(argv: list[str] | None = None) -> int: emit_json({"error": f"Workflow not found: {args.workflow}"}) return 1 try: - with wf_path.open() as f: + with wf_path.open(encoding="utf-8-sig") as f: workflow = unwrap_workflow(json.load(f)) except (ValueError, json.JSONDecodeError) as e: emit_json({"error": str(e)}) diff --git a/skills/creative/comfyui/scripts/check_deps.py b/skills/creative/comfyui/scripts/check_deps.py index 607e2c0a2d..599f977fb0 100755 --- a/skills/creative/comfyui/scripts/check_deps.py +++ b/skills/creative/comfyui/scripts/check_deps.py @@ -408,7 +408,7 @@ def main(argv: list[str] | None = None) -> int: emit_json({"error": f"Workflow file not found: {args.workflow}"}) return 1 try: - with wf_path.open() as f: + with wf_path.open(encoding="utf-8-sig") as f: payload = json.load(f) workflow = unwrap_workflow(payload) except ValueError as e: diff --git a/skills/creative/comfyui/scripts/extract_schema.py b/skills/creative/comfyui/scripts/extract_schema.py index 82f6eac704..185a8da0e9 100755 --- a/skills/creative/comfyui/scripts/extract_schema.py +++ b/skills/creative/comfyui/scripts/extract_schema.py @@ -285,7 +285,7 @@ def main(argv: list[str] | None = None) -> int: return 1 try: - with wf_path.open() as f: + with wf_path.open(encoding="utf-8-sig") as f: payload = json.load(f) workflow = unwrap_workflow(payload) except ValueError as e: diff --git a/skills/creative/comfyui/scripts/health_check.py b/skills/creative/comfyui/scripts/health_check.py index 63c5025ca9..9c0309f800 100755 --- a/skills/creative/comfyui/scripts/health_check.py +++ b/skills/creative/comfyui/scripts/health_check.py @@ -163,7 +163,7 @@ def main(argv: list[str] | None = None) -> int: workflow_check = {"error": "workflow file not found"} else: try: - with wf_path.open() as f: + with wf_path.open(encoding="utf-8-sig") as f: workflow = unwrap_workflow(json.load(f)) from check_deps import check_deps workflow_check = check_deps(workflow, host=args.host, api_key=api_key) diff --git a/skills/creative/comfyui/scripts/run_batch.py b/skills/creative/comfyui/scripts/run_batch.py index 7f5b159dbd..0c8460a35c 100755 --- a/skills/creative/comfyui/scripts/run_batch.py +++ b/skills/creative/comfyui/scripts/run_batch.py @@ -157,7 +157,7 @@ def main(argv: list[str] | None = None) -> int: emit_json({"error": f"Workflow not found: {args.workflow}"}) return 1 try: - with wf_path.open() as f: + with wf_path.open(encoding="utf-8-sig") as f: workflow = unwrap_workflow(json.load(f)) except (ValueError, json.JSONDecodeError) as e: emit_json({"error": str(e)}) diff --git a/tests/skills/test_comfyui_skill.py b/tests/skills/test_comfyui_skill.py index f9ef33709c..b1b3e74b55 100644 --- a/tests/skills/test_comfyui_skill.py +++ b/tests/skills/test_comfyui_skill.py @@ -28,6 +28,13 @@ _ENCODING_SENSITIVE_READS = [ ("hardware_check.py", 'with open("/proc/meminfo", "r", encoding="utf-8") as fh:'), ("run_workflow.py", 'with open(schema_path, encoding="utf-8-sig") as f:'), ("run_workflow.py", 'with wf_path.open(encoding="utf-8-sig") as f:'), + # Sibling call paths: every other script that parses a user-authored + # workflow JSON reads it the same BOM-tolerant way (same bug class). + ("auto_fix_deps.py", 'wf_path.open(encoding="utf-8-sig")'), + ("check_deps.py", 'wf_path.open(encoding="utf-8-sig")'), + ("extract_schema.py", 'wf_path.open(encoding="utf-8-sig")'), + ("health_check.py", 'wf_path.open(encoding="utf-8-sig")'), + ("run_batch.py", 'wf_path.open(encoding="utf-8-sig")'), ]