feat(cli): add --ephemeral CLI argument to prevent config.json updates #4589
+214
−1
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
Implements ephemeral mode as a CLI argument (
--ephemeral) to complement the existingKILO_EPHEMERAL_MODEenvironment variable. This helps prevent accidentally injecting org IDs or other settings into config.json during testing/development and prevents race conditions when running multiple CLI instances in parallel.Fixes
Closes #4541
Changes
Core Implementation
--ephemeral/-eCLI flag toindex.tsephemeralfield toCLIOptionstypesetEphemeralMode()function in env-config.tsisEphemeralMode()to check both CLI flag and env varTesting
ephemeral-mode.test.tsDocumentation
Usage Examples
Basic Usage
Parallel Testing (Prevents Race Conditions)
CI/CD Integration
Behavior
When ephemeral mode is enabled:
Testing
Run the new tests:
Related
This PR addresses the race condition issue described in #4541 by providing a CLI-based way to enable ephemeral mode, making it easier to run multiple CLI instances in parallel without config file conflicts.