feat(web): add installable dashboard metadata - #60873
Closed
seagpt wants to merge 1 commit into
Closed
Conversation
33 tasks
seagpt
force-pushed
the
fix/dashboard-pwa-metadata
branch
from
July 8, 2026 12:51
82f1558 to
b5b30b7
Compare
teknium1
reviewed
Jul 10, 2026
teknium1
left a comment
Contributor
There was a problem hiding this comment.
Thanks for the focused PWA metadata and prefix-aware coverage. Current main has no dashboard manifest or install icons, and the changes extend the existing prefix rewrite in hermes_cli/web_server.py:15695-15704 cleanly.
Problems
web/index.html:8adds a root-level manifest, but the OAuth gate's public static allowlist inhermes_cli/dashboard_auth/middleware.py:43-55does not include the manifest or either new icon. Withauth_required, requests outside the allowlist enter the cookie gate atmiddleware.py:274-290. The new server test setsauth_required = False, so it does not cover that deployment mode. This overlaps the static-asset issue described in related PR #58532.
Suggested changes
- Allowlist
/manifest.webmanifest,/icon-192.png, and/icon-512.png, and add a gated regression test that fetches them without a session cookie.
Automated hermes-sweeper review.
| <link rel="icon" type="image/x-icon" href="/favicon.ico" /> | ||
| <link rel="icon" type="image/png" sizes="192x192" href="/icon-192.png" /> | ||
| <link rel="apple-touch-icon" href="/icon-192.png" /> | ||
| <link rel="manifest" href="/manifest.webmanifest" /> |
Contributor
There was a problem hiding this comment.
For OAuth-gated dashboards, this root-level manifest (and the two new root-level icons) is not in _GATE_PUBLIC_PREFIXES at hermes_cli/dashboard_auth/middleware.py:43-55; unauthenticated static requests enter the cookie gate. Please allowlist these three paths and add a gated regression test.
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.
What
Adds focused installability metadata for the dashboard so the Hermes web UI can be saved/launched as a standalone browser app on desktop and mobile devices:
manifest.webmanifestweb/index.htmlstart_url,scope, and icon paths relative so installs work under a path-prefix reverse proxy/VPN URLindex.htmlX-Forwarded-PrefixsafetyRelated Issue
No issue. Follow-up from dashboard/desktop-as-webapp QA.
Related / overlap checked:
Skillsrow overflow + PWA). This PR is intentionally smaller and adds explicit path-prefix/VPN proxy coverage.Type of Change
Verification
npm --workspace web run test -- src/lib/pwa-metadata.test.tsnpm --workspace web exec eslint -- src/lib/pwa-metadata.test.ts --max-warnings=0npm --workspace web run typechecknpm --workspace web run buildpython -m py_compile hermes_cli/web_server.pyuv run --with pytest --with httpx --with starlette --with fastapi pytest -q tests/hermes_cli/test_web_server_spa_pwa_prefix.pypython scripts/check-windows-footguns.py $(git diff --cached --name-only)before commitgit diff --cached --checkbefore commitChecklist
manifest.webmanifest,icon-192.png,icon-512.png, and the metadata in builtindex.html.X-Forwarded-Prefix.