Skip to content

Feature: explicit cross-platform execution modes for script steps (exec/shell/auto) #19

@e-s-gh

Description

@e-s-gh

Summary

Script execution semantics need a clear, cross-platform contract for exec vs shell behavior.

Today, workflows can implicitly depend on shell builtins/expansion on some environments, while others rely on direct executable invocation. This leads to portability confusion and brittle behavior across Windows/macOS/Linux.

Why this is platform-level

This is not specific to one workflow. Any script step can be affected by differences in:

  • shell builtins (echo, true, false, etc.)
  • argument quoting/escaping
  • command-not-found signaling differences (127, 9009, platform stderr text)

Requested feature

Add an explicit script execution mode in workflow schema and executor behavior:

  • execution_mode: exec | shell | auto (or equivalent)
    • exec: direct create_subprocess_exec
    • shell: explicit shell execution
    • auto: deterministic fallback policy documented by platform

Also define a unified command-not-found detection strategy and error surface that is stable across OSes.

Acceptance criteria

  • Mode is explicit and documented in workflow syntax docs.
  • auto behavior is deterministic and tested on Windows + Unix.
  • Command-not-found errors map to a consistent Conductor error contract.
  • Tests include shell builtins and quoting-sensitive cases in all supported modes.
  • Backward compatibility strategy is documented (default mode choice and migration notes).

Notes

Recent improvements addressed real failures by resolving executables more robustly, but this issue tracks the broader long-term platform contract for script-step execution semantics.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions