P0: Verify Config Structure Validation at Startup #116

Closed
opened 2026-04-06 14:06:54 +00:00 by Timmy · 0 comments
Owner

Context

Commit dce5f51c adds config structure validation at startup — detects malformed YAML before it breaks things.

Acceptance Criteria

  • Verify valid config passes: Run hermes doctor or start a session with current config.yaml — confirm it starts without validation errors
  • Verify invalid config is caught: Introduce a deliberate YAML syntax error (e.g., duplicate key, wrong type), restart Hermes, confirm startup fails with a clear error message pointing to the exact line and field
  • Verify type mismatch detection: Change a numeric field to a string (e.g., max_turns: "thirty"), confirm the validator catches the type error with specific guidance
  • Verify the validator rejects completely broken YAML: Put {{{{not_yaml}}}} in config.yaml — confirm Hermes exits with a helpful error, not a Python stacktrace
  • Restore valid config: Ensure our production config.yaml passes validation after testing

Why This Matters

A broken config.yaml silently disables features or crashes at runtime. With validation, we catch config errors at startup before users or gateway sessions are affected. For fleet-wide deployments, this prevents cascading failures.

Hints

  • Validator is in hermes_cli/config.py — look for the config validation logic
  • Run hermes doctor as part of the verification

Parent: #111

## Context Commit `dce5f51c` adds config structure validation at startup — detects malformed YAML before it breaks things. ## Acceptance Criteria - [ ] **Verify valid config passes**: Run `hermes doctor` or start a session with current config.yaml — confirm it starts without validation errors - [ ] **Verify invalid config is caught**: Introduce a deliberate YAML syntax error (e.g., duplicate key, wrong type), restart Hermes, confirm startup fails with a clear error message pointing to the exact line and field - [ ] **Verify type mismatch detection**: Change a numeric field to a string (e.g., `max_turns: "thirty"`), confirm the validator catches the type error with specific guidance - [ ] **Verify the validator rejects completely broken YAML**: Put `{{{{not_yaml}}}}` in config.yaml — confirm Hermes exits with a helpful error, not a Python stacktrace - [ ] **Restore valid config**: Ensure our production config.yaml passes validation after testing ## Why This Matters A broken config.yaml silently disables features or crashes at runtime. With validation, we catch config errors at startup before users or gateway sessions are affected. For fleet-wide deployments, this prevents cascading failures. ## Hints - Validator is in `hermes_cli/config.py` — look for the config validation logic - Run `hermes doctor` as part of the verification Parent: #111
Timmy closed this issue 2026-04-06 14:25:07 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Timmy_Foundation/hermes-agent#116