Fix 4 bugs from third code review
- Fix delete_proj not persisting cleared current_project to config: page reload after deleting active project restored deleted name, silently breaking all DB sync - Fix sync_to_db crash on non-dict batch_data items: add isinstance guard matching import_json_file - Fix output_types ignored in load_dynamic: parse declared types and use to_int()/to_float() to coerce values, so downstream ComfyUI nodes receive correct types even when API returns strings - Fix backward-compat comma-split for types not trimming whitespace: legacy workflows with "STRING, INT" got types " INT" breaking ComfyUI connection type-matching Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -142,10 +142,24 @@ class ProjectLoaderDynamic:
|
||||
except (json.JSONDecodeError, TypeError):
|
||||
keys = [k.strip() for k in output_keys.split(",") if k.strip()]
|
||||
|
||||
# Parse types for coercion
|
||||
types = []
|
||||
if output_types:
|
||||
try:
|
||||
types = json.loads(output_types)
|
||||
except (json.JSONDecodeError, TypeError):
|
||||
types = [t.strip() for t in output_types.split(",")]
|
||||
|
||||
results = []
|
||||
for key in keys:
|
||||
for i, key in enumerate(keys):
|
||||
val = data.get(key, "")
|
||||
if isinstance(val, bool):
|
||||
declared_type = types[i] if i < len(types) else ""
|
||||
# Coerce based on declared output type when possible
|
||||
if declared_type == "INT":
|
||||
results.append(to_int(val))
|
||||
elif declared_type == "FLOAT":
|
||||
results.append(to_float(val))
|
||||
elif isinstance(val, bool):
|
||||
results.append(str(val).lower())
|
||||
elif isinstance(val, int):
|
||||
results.append(val)
|
||||
|
||||
Reference in New Issue
Block a user