Describe the Bug
After running hermes update (pulled 639 new commits), several critical config fields were either reset to invalid values or became empty, causing terminal commands and auxiliary model calls to fail.
Affected Fields (config.yaml)
| Field |
Before Upgrade |
After Upgrade |
Impact |
terminal.cwd |
/home/super/Workspace |
Workspace (relative) |
All terminal commands fail with FileNotFoundError |
auxiliary.title_generation.model |
qwen3.6-plus |
"" (empty) |
Title generation fails: model "" is not supported |
auxiliary.approval.model |
qwen3.6-plus |
"" (empty) |
Approval flow broken |
auxiliary.flush_memories.model |
qwen3.6-plus |
"" (empty) |
Memory flush fails |
auxiliary.mcp.model |
(set) |
"" (empty) |
MCP tool calls broken |
auxiliary.session_search.model |
(set) |
"" (empty) |
Session summarization fails |
auxiliary.skills_hub.model |
(set) |
"" (empty) |
Skills hub operations broken |
auxiliary.vision.model |
(set) |
"" (empty) |
Vision tool broken |
auxiliary.web_extract.model |
(set) |
"" (empty) |
Web extract broken |
timezone |
Asia/Shanghai |
"" (empty) |
Timezone lost |
smart_model_routing.cheap_model |
{model: ..., provider: ...} |
{} (empty) |
Smart routing broken |
Config Version Migration
Config migrated 17 -> 21 then 21 -> 22 during the same update run. The migration scripts appear to be dropping user-set values for auxiliary model fields and resetting terminal.cwd from an absolute path back to a relative default.
Steps to Reproduce
- Have
config.yaml with terminal.cwd set to an absolute path
- Have auxiliary models explicitly configured
- Run
hermes update
- After update, check
config.yaml — fields are reset to empty/relative defaults
Expected Behavior
User-set config values should be preserved during migration. The migration script should:
- Only add new config keys that don't exist
- Never overwrite existing user values with defaults
- Preserve absolute paths in
terminal.cwd
Environment
- Hermes version: v2026.4.23-873-ga9efa46b6 (main branch)
- pyproject version: 0.11.0
- Config version: 22
- OS: WSL2 (Ubuntu)
- Provider: Alibaba (DashScope)
- Model: qwen3.6-plus
Error Logs
ERROR tools.terminal_tool: Execution failed after 3 retries - Error: FileNotFoundError: [Errno 2] No such file or directory: 'Workspace'
ERROR agent.title_generator: Title generation failed: model "" is not supported
WARNING root: Session summarization failed after 3 attempts: model "" is not supported
Workaround
Manually fix config.yaml and restart gateway. But this affects all users who upgrade — config migration needs to preserve existing values.
Describe the Bug
After running
hermes update(pulled 639 new commits), several critical config fields were either reset to invalid values or became empty, causing terminal commands and auxiliary model calls to fail.Affected Fields (config.yaml)
terminal.cwd/home/super/WorkspaceWorkspace(relative)FileNotFoundErrorauxiliary.title_generation.modelqwen3.6-plus""(empty)model "" is not supportedauxiliary.approval.modelqwen3.6-plus""(empty)auxiliary.flush_memories.modelqwen3.6-plus""(empty)auxiliary.mcp.model""(empty)auxiliary.session_search.model""(empty)auxiliary.skills_hub.model""(empty)auxiliary.vision.model""(empty)auxiliary.web_extract.model""(empty)timezoneAsia/Shanghai""(empty)smart_model_routing.cheap_model{model: ..., provider: ...}{}(empty)Config Version Migration
Config migrated
17 -> 21then21 -> 22during the same update run. The migration scripts appear to be dropping user-set values for auxiliary model fields and resettingterminal.cwdfrom an absolute path back to a relative default.Steps to Reproduce
config.yamlwithterminal.cwdset to an absolute pathhermes updateconfig.yaml— fields are reset to empty/relative defaultsExpected Behavior
User-set config values should be preserved during migration. The migration script should:
terminal.cwdEnvironment
Error Logs
Workaround
Manually fix
config.yamland restart gateway. But this affects all users who upgrade — config migration needs to preserve existing values.