>_
.issue.db
/highway
Dashboard
Issues
Memory
Lessons
Audit Log
New Issue
Edit Issue #990
Update issue details
Title *
Description
EARS: If a ConditionOperator / While condition cannot be evaluated (syntax error after interpolation, unresolved reference), then the Highway engine shall fail the step with a non-retryable error naming the condition, and shall not select a branch. EVIDENCE (found during #974, 2026-10-20, live API tenant test): run b053943a-6a6f-430f-801d-836d329aa552 (scripts/verify_973_975_989/wf_974_condition_chain_flag_0.json): init 'echo 0' (stdout '0\n'), condition "{{flag.stdout}} == '1'" -> if_true branch t_first ran. Same in the deployed resolver inside highway-api: VariableResolver().evaluate_condition(ctx, "{{flag.stdout}} == '1'") returns True for stdout '0\n' AND '1\n'; interpolated text is "0\n == '1'"; log: "Syntax error in condition ... unexpected indent ... - falling back to truthy check". The DSL prompt's own example condition="{{status.stdout}} == '200'" hits this for every shell stdout (always newline-terminated), so the example always takes if_true. While loops with the same pattern are either infinite (to the cap) or never run depending on the fallback. CAUSE: engine/interpreters/variable_resolver (evaluate_condition / safe_eval) catches SyntaxError and returns bool(text). NOT FIXED in #974: the resolver is being edited by #972; the lead decides ownership. Fix shape: fail closed (raise a non-retryable condition error); separately decide whether {{x.stdout}} in a condition should be stripped.
Priority
Low
Medium
High
Critical
Status
Open
In Progress
Closed
Won't Do
Due Date (YYYY-MM-DD)
Tags (comma separated)
Related Issues (IDs)
Enter IDs of issues related to this one. They will be linked as 'related'.
Update Issue
Cancel