Skip to content

feat: nightly hardening - configuration validation guardrails - #6

Closed
mouse-value-add wants to merge 1 commit into
brainsparker:mainfrom
mouse-value-add:chore/nightly-hardening-20260414-config-validation-guardrails
Closed

feat: nightly hardening - configuration validation guardrails#6
mouse-value-add wants to merge 1 commit into
brainsparker:mainfrom
mouse-value-add:chore/nightly-hardening-20260414-config-validation-guardrails

Conversation

@mouse-value-add

Copy link
Copy Markdown
Contributor

Problem

PromptLens accepted several invalid configuration values (e.g., out-of-range temperatures, non-positive token limits, empty model lists, unsupported output formats), which could cause runtime failures or silently skipped exports.

Approach

  • Added strict Pydantic validators for:
    • ModelConfig.temperature (0..2)
    • ModelConfig.max_tokens (>0)
    • ExecutionConfig numeric bounds (parallel_requests, retry_attempts, retry_delay_seconds, timeout_seconds)
    • RunConfig.models non-empty requirement
  • Hardened OutputConfig.formats by normalizing to lowercase, deduplicating, and rejecting unknown formats.
  • Added focused test coverage in tests/test_config_validation.py.

Verification

  • Ran: python3 -m pytest tests/test_config_validation.py
  • Result: 5 tests passed.

Risks

  • Existing configs that relied on invalid values (or unknown output format names) will now fail fast during validation.

Rollback Plan

  • Revert this PR commit to restore previous permissive validation behavior.

Copy link
Copy Markdown
Owner

Closing as superseded by #31, the most complete version of the config validation guardrails. It lands via the consolidation in #40.

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.

2 participants