{"repo":"NousResearch/hermes-agent","public_id":"25547","display_label":"Dashboard reverse-proxy subpath and base-path URL handling","summary":"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.","subsystem":"dashboard","counts":{"members":9,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":3,"merged_prs":2,"attempt_prs":4},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":27550},"resolution":{"state":"partially_resolved","by":"pr-133903"},"freshness":{"state":"verified","last_verified_at":"2026-10-06T15:17:12+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_PARTIAL","link_density":0.21444444444444444},"fix_edges":[{"issue_number":25218,"pr_number":27550,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":25249,"pr_number":27550,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":25547,"pr_number":27550,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":48623,"pr_number":133903,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true},{"issue_number":50889,"pr_number":133903,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true},{"issue_number":99123,"pr_number":133903,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true},{"issue_number":118055,"pr_number":133903,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true},{"issue_number":118056,"pr_number":133903,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":119239,"pr_number":133903,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true}],"members":[{"kind":"issue","number":25547,"title":"Dashboard path-prefix proxy support misses some absolute /api WebSocket/plugin paths","url":null,"state":"closed"},{"kind":"issue","number":48623,"title":"[Bug]: Dashboard login page is not compatible with path-prefix reverse proxies","url":null,"state":"closed"},{"kind":"issue","number":50889,"title":"Dashboard auth under reverse-proxy subpath is broken (404 on /auth/login)","url":null,"state":"closed"},{"kind":"pr","number":25764,"title":"fix(dashboard): respect HERMES_BASE_PATH in WebSocket URLs (#25547)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#27550","number":27550},{"kind":"pr","value":"#25547","number":25547}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":27550,"title":"Batch salvage group 6 (final): streaming timeout config + docker exit-75 restart + dashboard loopback/base-path","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["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"]},{"kind":"pr","number":48625,"title":"fix(dashboard): respect X-Forwarded-Prefix in server-rendered login page","url":null,"state":"closed","close_reason":{"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":48698,"title":"fix(dashboard): prefix login page URLs for reverse proxies (#48623)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#33311","number":33311},{"kind":"pr","value":"#33311","number":33311},{"kind":"pr","value":"#48625","number":48625}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":50931,"title":"fix(dashboard): use relative auth paths for reverse-proxy subpath compatibility (#50889)","url":null,"state":"closed","close_reason":{"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":133903,"title":"fix(dashboard): auth URLs honour X-Forwarded-Prefix behind reverse-proxy subpath","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["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"]}],"trust":{"default_tier":"verified","includes_suggested":false}}