hermes-agent/website/docs/user-guide
Ben Barclay 04d620d91f
fix(docker): run config migrations during container boot (salvage #35508) (#36627)
Salvage of #35508 (@dchenk), rebased onto current main. Resolved the
tests/tools/test_stage2_hook_puid_pgid.py conflict (kept both the
envdir-creation regression test on main and the new config-migration
tests).

Docker image upgrades replace code under $INSTALL_DIR but preserve
$HERMES_HOME on the mounted volume, so the persisted config.yaml never
received the schema migrations that non-Docker `hermes update` runs
(#35406). This adds scripts/docker_config_migrate.py, invoked from
stage2-hook after first-boot seeding and before gateway services start:
it backs up config.yaml + .env, runs migrate_config(interactive=False),
and honors HERMES_SKIP_CONFIG_MIGRATION=1 for manual control.

Also fixes a latent bug in check_config_version(): it called load_config()
which deep-merges DEFAULT_CONFIG, so a legacy config with no raw
_config_version falsely reported as already-current. It now reads the raw
on-disk file so legacy configs are correctly detected for migration.

Differs from #35508 as submitted (Option B cleanup): dropped the
`_config_version` line added to cli-config.yaml.example and removed the
accompanying test_cli_config_example_declares_latest_version change-detector
test. The example is a copy-template and has no business asserting a schema
version; check_config_version() reads the user's real config.yaml, not the
example. This removes a second sync point that drifts on every version bump.

Closes #35508. Fixes #35406.

Co-authored-by: Dmitriy Cherchenko <17372886+dchenk@users.noreply.github.com>
2026-06-04 11:11:27 +10:00
..
features docs(dashboard): document connecting Hermes Desktop to a remote backend (#38534) 2026-06-03 16:28:01 -07:00
messaging feat(matrix): support bang command aliases 2026-06-03 17:19:27 +05:30
secrets feat(secrets/bitwarden): EU Cloud + self-hosted server URL support (#31378) 2026-05-24 02:19:57 -07:00
skills fix(skills): document xurl X Article ingestion 2026-06-03 15:11:57 -07:00
_category_.json feat: add documentation website (Docusaurus) 2026-03-05 05:24:55 -08:00
checkpoints-and-rollback.md feat(checkpoints): v2 single-store rewrite with real pruning + disk guardrails (#20709) 2026-05-06 05:44:35 -07:00
cli.md fix(docs): add baseUrl prefix to SVG image paths in sessions and CLI pages 2026-05-29 12:06:22 -07:00
configuration.md fix(docs): align fallback provider config examples 2026-05-29 12:06:22 -07:00
configuring-models.md feat(cli): make hermes portal the human-readable Portal onboarding alias 2026-06-04 01:19:28 +05:30
desktop.md docs(desktop): point Chat section to remote-backend + dashboard doc (#38545) 2026-06-03 16:40:47 -07:00
docker.md fix(docker): run config migrations during container boot (salvage #35508) (#36627) 2026-06-04 11:11:27 +10:00
git-worktrees.md docs(config): deprecate MESSAGING_CWD guidance 2026-05-29 12:06:22 -07:00
multi-profile-gateways.md docs(gateway): add multi-profile gateways operations guide 2026-05-29 04:11:10 -07:00
profile-distributions.md docs(profiles): full user guide for profile distributions (#22017) 2026-05-08 11:13:45 -07:00
profiles.md docs: 30-day overhaul — correctness audit, PR coverage, Nous Portal weave, sidebar reorg (#33782) 2026-05-28 02:41:36 -07:00
security.md docs(config): deprecate MESSAGING_CWD guidance 2026-05-29 12:06:22 -07:00
sessions.md docs: fix session recap image baseUrl 2026-05-29 12:06:22 -07:00
tui.md feat(cli): configurable default interface (cli vs tui) 2026-06-02 20:49:44 -05:00
windows-native.md docs: drop early-beta framing for native Windows support (#36093) 2026-05-31 15:33:18 -07:00
windows-wsl-quickstart.md docs(windows): add WSL desktop shortcut guide 2026-05-29 04:00:57 -07:00