Add runtime safety guardrails #29

Merged
JackFrostbyte merged 1 commit from feature/v0.4-issue-13 into main 2026-05-09 01:11:51 -04:00

Summary

Completes issue #13 for milestone v0.4.

Adds runtime safety guardrails for invalid or unsafe runtime options before OpenRGB hardware control begins.

Changes

  • Added centralized runtime guardrail validation in runtime.py.
  • Rejects invalid combinations of --cycles and --duration.
  • Rejects non-positive --cycles.
  • Rejects non-positive, nan, or inf duration values.
  • Rejects non-positive, nan, or inf scheduler delay values.
  • Rejects delay min values greater than delay max values.
  • Keeps CLI-side validation for clear argparse errors.
  • Keeps runtime-side validation as a second safety layer for future non-CLI callers.

Validation

Passed:

ruff format src/rgb_aura
ruff check src/rgb_aura scripts tests
rgb-aura --cycles 0
rgb-aura --duration 0
rgb-aura --duration nan
rgb-aura --duration inf
rgb-aura --primary-delay-min 0
rgb-aura --primary-delay-min 8 --primary-delay-max 2
rgb-aura --support-delay-min 0
rgb-aura --support-delay-min 8 --support-delay-max 2
PYTHONPATH=src python scripts/validate_device_mapping.py
rgb-aura --duration 10 --leave-dark-blue --seed 12345
## Summary Completes issue #13 for milestone v0.4. Adds runtime safety guardrails for invalid or unsafe runtime options before OpenRGB hardware control begins. ## Changes - Added centralized runtime guardrail validation in `runtime.py`. - Rejects invalid combinations of `--cycles` and `--duration`. - Rejects non-positive `--cycles`. - Rejects non-positive, `nan`, or `inf` duration values. - Rejects non-positive, `nan`, or `inf` scheduler delay values. - Rejects delay min values greater than delay max values. - Keeps CLI-side validation for clear `argparse` errors. - Keeps runtime-side validation as a second safety layer for future non-CLI callers. ## Validation Passed: ```zsh ruff format src/rgb_aura ruff check src/rgb_aura scripts tests rgb-aura --cycles 0 rgb-aura --duration 0 rgb-aura --duration nan rgb-aura --duration inf rgb-aura --primary-delay-min 0 rgb-aura --primary-delay-min 8 --primary-delay-max 2 rgb-aura --support-delay-min 0 rgb-aura --support-delay-min 8 --support-delay-max 2 PYTHONPATH=src python scripts/validate_device_mapping.py rgb-aura --duration 10 --leave-dark-blue --seed 12345
JackFrostbyte deleted branch feature/v0.4-issue-13 2026-05-09 01:11:51 -04:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
JackFrostbyte/rgb-aura!29
No description provided.