Skip to content

feat: add shell step type for running commands in flows#5

Open
ChicK00o wants to merge 13 commits into
BlackBeltTechnology:developfrom
ChicK00o:feature/shell-step
Open

feat: add shell step type for running commands in flows#5
ChicK00o wants to merge 13 commits into
BlackBeltTechnology:developfrom
ChicK00o:feature/shell-step

Conversation

@ChicK00o

@ChicK00o ChicK00o commented Apr 24, 2026

Copy link
Copy Markdown

Problem

Flows had no way to run arbitrary shell commands as steps. Every step required an AI agent, even for simple operations like running a build, executing a test suite, or calling a CLI tool. This forced users to wrap trivial shell commands in agent prompts, wasting model calls and adding latency.

What was fixed

  • Added shell step type that runs a command via sh -c with configurable timeout and on_complete/on_error routing
  • Added 3-layer config resolution (.pi/flows/config.yaml → flow-level config: → per-step config:) so commands can reference ${{config.key}} without hardcoding values
  • Added ${{config.key}} template variable support to expandTemplateVariables
  • Fixed ${{result.STEP.output}} — stdout was stored only as fullOutput, so the documented variable resolved to empty string; now stored as typed output output (and stderr) so downstream steps can read shell output correctly
  • Fixed SIGKILL timer leaking after a process already exited cleanly following SIGTERM; the escalation timer is now cancelled in the close handler

@ChicK00o ChicK00o changed the title feat: shell step type with 3-layer config and timeout feat: add shell step type for running commands in flows May 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant