dashboard: hide forge links instead of guessing <hostname>:3000
Adds services.hyperhive.forge.publicUrl (defaults to the gateway vhost URL when behindGateway=true, null otherwise). HIVE_FORGE_PUBLIC_URL is now sourced from it instead of hardcoding https://${forge.domain} whenever behindGateway is on. The 4 frontend call sites that built a forge link from state.forge_public_url now hide the link when that's absent, rather than guessing http://<browser-hostname>:3000 — a guess that's only correct by accident once the operator isn't on plain localhost. Fixes the dashboard H0M3 tile, per-agent-row forge links + agent menu, the approval-queue PR link, and the per-agent page's own meta-nav forge link (found during this pass, same defect, not in the original 3-site inventory). Docs + doc-comments updated to match.
This commit is contained in:
parent
68560215bd
commit
3512e4b019
10 changed files with 96 additions and 42 deletions
|
|
@ -1230,10 +1230,13 @@ window.marked = marked;
|
|||
const metaLinks = $('meta-links');
|
||||
if (metaLinks && Array.isArray(s.links)) {
|
||||
metaLinks.replaceChildren();
|
||||
// Prefer forge_public_url from state (set when the gateway serves
|
||||
// forge at its sub-domain); fall back to :3000 for local-dev.
|
||||
const forgeBase = s.forge_public_url || `http://${window.location.hostname}:3000`;
|
||||
// s.forge_public_url (set from services.hyperhive.forge.publicUrl)
|
||||
// or falsy — never guessed from "<hostname>:3000". A forge-kind
|
||||
// link is skipped entirely below when there's no public URL to
|
||||
// point it at.
|
||||
const forgeBase = s.forge_public_url || null;
|
||||
s.links.forEach((lnk, i) => {
|
||||
if (lnk.kind === 'forge' && !forgeBase) return;
|
||||
const href = lnk.kind === 'forge' ? forgeBase + (lnk.url || '')
|
||||
: lnk.kind === 'external' ? (lnk.url || '')
|
||||
: /* container */ (lnk.url || '');
|
||||
|
|
|
|||
Loading…
Reference in a new issue