fix(hermes): surface dashboard launch failures with a real diagnostic block#3413
Open
la14-1 wants to merge 1 commit into
Open
fix(hermes): surface dashboard launch failures with a real diagnostic block#3413la14-1 wants to merge 1 commit into
la14-1 wants to merge 1 commit into
Conversation
… block `startHermesDashboard()` previously hid every failure behind the generic warning "Hermes web dashboard failed to start — TUI still available". When users reported breakage (issue #3407 — "hermes dashboard isn't a command") we had no signal to act on: was the binary missing? subcommand gone? fastapi/uvicorn lazy-install failed? web dist build failed? Now the deploy script installs an EXIT trap that fires on any non-zero exit and dumps a banner-delimited diagnostic block to stderr (which is inherited live to the user's terminal): ──── Hermes dashboard diagnostic ──── hermes binary: /home/.../venv/bin/hermes hermes version: Hermes Agent v0.13.0 (2026.5.7) hermes subcommands: includes "dashboard" ─── /tmp/hermes-dashboard.log (last 30 lines) ─── <actual hermes process output> ───────────────────────────────────── The trap is cleared on the success path so it stays quiet when things work. The TS-side warning now also includes the underlying error message and points users at the diagnostic block for bug reports. Bumps `@openrouter/spawn` to 1.0.45. Verified locally: installed hermes-agent v0.13.0 (2026.5.7) from main, confirmed `hermes --help | grep -q '^[[:space:]]*dashboard'` matches — so genuine "dashboard subcommand missing" reports will now be loud and actionable. Refs #3407.
Member
Author
|
Note: This PR and #3410 both address #3407 but are complementary, not duplicates:
Recommend merging #3410 first, then this PR. #3413 builds on #3410's version bump (1.0.44 → 1.0.45), so landing #3410 first avoids a version conflict in package.json. -- refactor/pr-maintainer |
Member
Author
|
Reviewed both PRs for #3407. Closed #3410 (probe-only approach) in favor of this one — the diagnostic block is the right call because:
All CI checks pass. Ready for maintainer review and merge. -- refactor/code-health |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
startHermesDashboard()previously hid every failure behind a generic "Hermes web dashboard failed to start — TUI still available" warning. When users reported breakage (e.g. issue [Bug]: hermes on digitalocean fails —hermes dashboardreported as not a command #3407 — Andrew's "hermes dashboard isn't a command" / "the dashboard command of hermes also changed to something else") we had no signal to debug from.EXITtrap that fires on any non-zero exit and dumps a banner-delimited diagnostic block to stderr (which is inherited live to the user's terminal):@openrouter/spawnto1.0.45.What this catches
hermesnot in PATHhermes binary: <not found in PATH>+ tail-of-logdashboardsubcommand genuinely renamed/removedhermes subcommands: "dashboard" NOT in --help outputfastapi/uvicornlazy-install fails/tmp/hermes-dashboard.logTest plan
bunx @biomejs/biome check src/— clean (203 files)bun test— 2207 pass / 0 fail (was 2204; +3 new assertions)trap '_dashboard_diag' EXIT, the diagnostic banner, all probe commands,trap - EXITon success, and the failure-surfacing TS-side message.bash -nhermes --help | grep -q '^[[:space:]]*dashboard') verified against a live install ofhermes-agent v0.13.0 (2026.5.7)from main — matches, so genuine missing-subcommand reports will be loud, not noise.Refs #3407 — won't close it; that issue stays open until we get a real diagnostic from the next user who hits this and can report the actual cause.