Self Checks
Describe your problem
VariableAggregator accepts variable selectors in two forms. VariableAggregatorParam.param_refs (used by the canvas for dependency ordering) handles both:
[selector.get("value") if isinstance(selector, dict) else selector for ...]
But _invoke indexes selector["value"] unconditionally:
for selector in group.get("variables", []):
val = self._canvas.get_variable_value(selector["value"])
A canvas built through the SDK/API with plain string selectors ("variables": ["a@x"]) parses and orders correctly, then crashes at runtime:
TypeError: string indices must be integers
Reproduction
param.groups = [{"group_name": "G", "variables": ["a@x"]}]
component._invoke()
# TypeError: string indices must be integers
Expected behavior
Both selector forms resolve at runtime, consistent with param_refs.
Version
current main (commit d5ebaf6)
Self Checks
Describe your problem
VariableAggregatoraccepts variable selectors in two forms.VariableAggregatorParam.param_refs(used by the canvas for dependency ordering) handles both:But
_invokeindexesselector["value"]unconditionally:A canvas built through the SDK/API with plain string selectors (
"variables": ["a@x"]) parses and orders correctly, then crashes at runtime:Reproduction
Expected behavior
Both selector forms resolve at runtime, consistent with
param_refs.Version
current
main(commit d5ebaf6)