# NousResearch/hermes-agent · Dashboard reverse-proxy subpath and base-path URL handling

## Open now

- Nothing open on GitHub.

These issues and pull requests address problems with the dashboard when served under a URL prefix via reverse proxies, covering login page URLs, WebSocket paths, auth routes, and X-Forwarded-Prefix header support.

## TL;DR

- 9 member(s): 0 open issue(s), 3 closed issue(s), 0 open PR(s), 2 merged PR(s), 4 PR(s) closed without merging.
- A fix was merged to main in PR #27550. Verify it addresses your case.
- **Recommended:** read PR #27550 (and any competing PRs below) before filing. Confirm the merged change covers your symptom.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `partially_resolved` · deciding PR(s): `pr-133903`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_PARTIAL`): some members are connected by structural evidence (shared changed files, or a closing/superseded reference); the rest are joined by an automated relevance judgement over their text.
- Members outside that structural core may belong to a different underlying problem.
- Pairwise link density `0.21`: the share of member pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. `1.00` means every pair is linked.

## Closed / duplicate issues

- #25547: Dashboard path-prefix proxy support misses some absolute /api WebSocket/plugin paths
- #48623: \[Bug\]: Dashboard login page is not compatible with path-prefix reverse proxies
- #50889: Dashboard auth under reverse-proxy subpath is broken (404 on /auth/login)

## Prior & competing PRs

- **#27550: Batch salvage group 6 (final): streaming timeout config + docker exit-75 restart + dashboard loopback/base-path**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`; implication `superseded`
  - files: `agent/chat_completion_helpers.py`, `gateway/run.py`, `hermes_cli/web_server.py`, `scripts/release.py`, `web/src/components/ChatSidebar.tsx`, `web/src/lib/gatewayClient.ts`, `web/src/pages/ChatPage.tsx`
- **#133903: fix(dashboard): auth URLs honour X-Forwarded-Prefix behind reverse-proxy subpath**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`; implication `superseded`
  - files: `hermes_cli/dashboard_auth/login_page.py`, `hermes_cli/dashboard_auth/middleware.py`, `hermes_cli/dashboard_auth/routes.py`, `tests/hermes_cli/test_dashboard_auth_401_reauth.py`, `tests/hermes_cli/test_dashboard_auth_prefix.py`, `web/src/lib/api.ts`
- **#25764: fix(dashboard): respect HERMES_BASE_PATH in WebSocket URLs (#25547)**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`; refs `#27550`, `#25547`
- **#48625: fix(dashboard): respect X-Forwarded-Prefix in server-rendered login page**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`
- **#48698: fix(dashboard): prefix login page URLs for reverse proxies (#48623)**. closed without merge
  - maintainer direction: category `duplicate_of`; implication `duplicate`; refs `#33311`, `#33311`, `#48625`
- **#50931: fix(dashboard): use relative auth paths for reverse-proxy subpath compatibility (#50889)**. closed without merge
  - maintainer direction: category `superseded_by_pr`; implication `superseded`

## Fix status

- Merged to main in PR #27550 (cited above). No release data is tracked. Verify downstream.
- Fix last verified (merged) `2026-10-06`.
- Subsystem: `dashboard`
