Skip to main content

Module runner

Module runner 

Source
Expand description

Application entrypoint and pipeline orchestration.

This module is the CLI layer operating before the repository root is known. It uses [AppEffect][effect::AppEffect] for side effects, which is distinct from Effect used after repo root discovery.

§Two Effect Layers

Ralph has two distinct effect types (see also crate documentation):

LayerWhenFilesystem Access
AppEffect (this module)Before repo root knownstd::fs directly
Effect (crate::reducer)After repo root knownVia Workspace

These layers must never mix: AppEffect handlers cannot use Workspace.

§Responsibilities

  • CLI/config parsing and plumbing commands
  • Agent registry loading
  • Repo root discovery
  • Resume support and checkpoint management
  • Transition to pipeline execution via crate::phases

§Module Structure

  • [config_init]: Configuration loading and agent registry initialization
  • [effect]: AppEffect definitions for pre-repo-root operations
  • [effect_handler]: Production handler for AppEffect execution
  • [plumbing]: Low-level git operations (show/apply commit messages)
  • [validation]: Agent validation and chain validation
  • [resume]: Checkpoint resume functionality
  • [detection]: Project stack detection
  • [finalization]: Pipeline cleanup and finalization

Re-exports§

pub use pipeline_execution::run;
pub use pipeline_execution::CommandExitCleanupGuard;
pub use pipeline_execution::PipelinePreparationParams;
pub use setup_helpers::validate_and_setup_agents;
pub use setup_helpers::AgentSetupParams;

Modules§

command_handlers
pipeline_execution
setup_helpers