This repository was archived by the owner on Mar 10, 2026. It is now read-only.
Conversation
…ts with conversion implementations
…aling configuration
…mization settings
…ion and validation
…ons for configuration handling
25 tasks
Contributor
There was a problem hiding this comment.
Pull Request Overview
Introduces a major refactoring of the CLI's configuration system to enable zero-config execution through a layered, hierarchical configuration approach. This allows users to run the place command with minimal flags while maintaining full configurability through optional TOML files and CLI overrides.
- Implemented a three-tier configuration hierarchy: built-in defaults → optional file config → CLI arguments
- Made the
--configflag optional to enable zero-config execution with sensible defaults - Refactored the monolithic configuration logic into a dedicated modular
configpackage with clear separation of concerns
Reviewed Changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
crates/scream-cli/src/config/models.rs |
Defines the AppConfig struct that holds the final merged configuration |
crates/scream-cli/src/config/mod.rs |
Module declarations for the new config package structure |
crates/scream-cli/src/config/file.rs |
Handles TOML file configuration parsing with optional fields |
crates/scream-cli/src/config/defaults.rs |
Provides sensible default values for all configuration parameters |
crates/scream-cli/src/config/builder.rs |
Core logic for merging the three configuration layers and path resolution |
crates/scream-cli/src/config.rs |
Removes the old monolithic configuration implementation |
crates/scream-cli/src/commands/place.rs |
Updates to use the new layered configuration system |
crates/scream-cli/src/cli.rs |
Makes the --config flag optional to enable zero-config execution |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
TKanX
added a commit
that referenced
this pull request
Sep 28, 2025
…ion-system-for-usability-and-zero-config-execution refactor(cli): Implement Layered Configuration for Zero-Config Execution
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary:
Introduces a major refactoring of the CLI's configuration system to significantly improve usability and enable zero-config execution for common use cases. The previous monolithic configuration logic has been replaced with a layered, hierarchical system that merges settings from three sources: built-in defaults, an optional user-provided TOML file, and command-line arguments. This allows users to run the
placecommand with minimal flags, relying on sensible defaults, while still offering granular control through a config file or CLI overrides when needed.Changes:
Implemented a Layered Configuration Model:
configmodule was created with a three-tier hierarchy:defaults.rs: Defines aDefaultsConfigstruct with sensible, hard-coded default values for all core workflow parameters.file.rs: ImplementsFileConfigwithserdeto parse a user-provided TOML configuration file. All fields are optional.builder.rs: Contains thebuild_configfunction, which intelligently merges the three layers (Defaults -> File -> CLI) to produce a final, validatedAppConfig.Enabled Zero-Config Execution:
--configflag in theplacesubcommand is now optional. If omitted, the CLI will use the built-in defaults, allowing users to run a placement with only--inputand--output.Improved Data Path Resolution:
config::buildernow centralizes the logic for resolving logical data names (e.g.,amber@rmsd-1.0) into absolute file paths via theDataManager, simplifying the main command logic.Enhanced Code Organization:
commands::placemodule into its own dedicatedconfigmodule with submodules for each layer (builder,defaults,file,models).