Skip to content

Maestro compat: numeric option fields accept ${VAR} lookup interpolation (extendedWaitUntil.timeout, tapOn.index, siblings) #1293

Description

@thymikee

Context

Numeric option fields on advertised commands currently demand a literal and reject ${VAR} — so an idiomatic env-driven flow dies on a command we support. The engine resolves ${VAR} lookups everywhere else (config/env/runFlow env/runScript output.*); this extends the same lookup to numeric fields, validating the resolved value with the existing rules (integer, range) and failing loud with the source line when the resolved value isn't a valid number.

Scope: variable lookup only. ${0 + 1}-style JS expressions are NOT this issue — that's the #1292 decision. After this lands, upstream/032_element_index still diverges (its corpus value is an expression), but the lookup half of the class is closed and flow 042 goes green.

Fields

  • extendedWaitUntil.timeout (corpus upstream/042_extended_wait: ${TIMEOUT} from a flow env block)
  • tapOn.index
  • audit for siblings while there: waitForAnimationToEnd.timeout, swipe.duration, eraseText.charactersToErase, repeat.times, retry.maxRetries — same lookup rule everywhere, one shared helper, not per-field branches.

Repro

  • FLOW_DIVERGENCES['upstream/042_extended_wait'] in scripts/maestro-conformance/expected-divergence.ts

Acceptance

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions