Skip to content

Track: loop-nested flow conditions never convert to CEL (upstream objectstack#4347) #567

Description

@yinlianghui

Upstream: objectstack-ai/objectstack#4347 — that is the canonical report, with the reproduction. This issue exists only to track the hotcrm side; the details live upstream so the two cannot drift apart.

What it means for hotcrm

applyConversionsToFlow does not recurse into loop.config.body, so a bare string condition inside a loop is never converted to CEL and is string-compared instead — the gate silently never opens. Three flows shipped inert because of it (opportunity_stagnation, contract_renewal, campaign_enrollment).

Current state — worked around, not blocked

When objectstack#4347 ships

  1. Bump @objectstack/service-automation.
  2. The "engine still treats a bare string differently from an envelope" test will go red — that is the signal, not a regression.
  3. Decide whether to relax the loop-body guard from fail to warn. Keeping the explicit envelopes is harmless either way; the guard is what stops the class coming back.

Related: #495 (surfaced it), #563, #565, #566.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions