Relationships
#2851 CEL: an expression naming the identifier cel returns {} instead of the context value
Opened by stack72 · 9/30/2026· Shipped 10/1/2026
Found while verifying swamp-club#2830. The property test 'CelEvaluator.evaluate: embedded interpolation yields the literal text with values substituted, stably' in src/infrastructure/cel/cel_evaluator_property_test.ts fails intermittently. Verify-build run 5b21192a reproduced it with seed -860845398, path [IP-1]:7:7:8. Counterexample: pieces [['','cel',''],['','a','']], last literal 'a'. The result is '{}a', where 'a' was expected.
Minimal reproduction: new CelEvaluator().evaluate('cel', { cel: '' }) returns {} (an object), while evaluate('a', { a: '' }) returns ''. The identifier cel resolves to something built in rather than the context variable, so a workflow input or context key named cel cannot be read in a CEL expression.
Expected: a context variable named cel shadows any built-in, or the name is rejected with a clear error. The test's identifier generator should also avoid reserved names, or the test should assert the chosen behaviour. The test is flaky on main today, because it depends on the random seed generating cel as an identifier.
Shipped
Click a lifecycle step above to view its details.
Sign in to post a ripple.