From 2f2f654486f95e74d9a6d63670e01df324bcf590 Mon Sep 17 00:00:00 2001 From: luoyuctl Date: Sun, 3 May 2026 23:05:13 +0800 Subject: [PATCH] fix: add dashboard to CLI help epilogue and Docker CI smoke test - Add hermes dashboard examples to the CLI help epilogue so users can discover the web UI command from 'hermes --help' output - Add an independent 'Test dashboard subcommand' CI step that verifies 'hermes dashboard --help' works in the Docker image, with its own mkdir/chown setup to remain independent of the prior smoke test step - Prevents regressions like #9153 where the dashboard subcommand was present in source but missing from the published Docker image Closes #9153 --- .github/workflows/docker-publish.yml | 16 ++++++++++++++-- hermes_cli/_parser.py | 3 +++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 7fb10b3dfb..b643ae12fc 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -65,19 +65,31 @@ jobs: - name: Test image starts run: | + mkdir -p /tmp/hermes-test + sudo chown -R 10000:10000 /tmp/hermes-test # The image runs as the hermes user (UID 10000). GitHub Actions # creates /tmp/hermes-test root-owned by default, which hermes # can't write to — chown it to match the in-container UID before # bind-mounting. Real users doing `docker run -v ~/.hermes:...` # with their own UID hit the same issue and have their own # remediations (HERMES_UID env var, or chown locally). - mkdir -p /tmp/hermes-test - sudo chown -R 10000:10000 /tmp/hermes-test docker run --rm \ -v /tmp/hermes-test:/opt/data \ --entrypoint /opt/hermes/docker/entrypoint.sh \ nousresearch/hermes-agent:test --help + - name: Test dashboard subcommand + run: | + mkdir -p /tmp/hermes-test + sudo chown -R 10000:10000 /tmp/hermes-test + # Verify the dashboard subcommand is included in the Docker image. + # This prevents regressions like #9153 where the dashboard command + # was present in source but missing from the published image. + docker run --rm \ + -v /tmp/hermes-test:/opt/data \ + --entrypoint /opt/hermes/docker/entrypoint.sh \ + nousresearch/hermes-agent:test dashboard --help + - name: Log in to Docker Hub if: github.event_name == 'push' && github.ref == 'refs/heads/main' || github.event_name == 'release' uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3 diff --git a/hermes_cli/_parser.py b/hermes_cli/_parser.py index 29ac96c97b..3ece411e75 100644 --- a/hermes_cli/_parser.py +++ b/hermes_cli/_parser.py @@ -70,6 +70,9 @@ Examples: hermes logs --since 1h Lines from the last hour hermes debug share Upload debug report for support hermes update Update to latest version + hermes dashboard Start web UI dashboard (port 9119) + hermes dashboard --stop Stop running dashboard processes + hermes dashboard --status List running dashboard processes For more help on a command: hermes --help