diff --git a/proxmox/lxc171-claude-agent/discord-bridge/dashboard/api.py b/proxmox/lxc171-claude-agent/discord-bridge/dashboard/api.py
index 52b5004..b629f69 100644
--- a/proxmox/lxc171-claude-agent/discord-bridge/dashboard/api.py
+++ b/proxmox/lxc171-claude-agent/discord-bridge/dashboard/api.py
@@ -426,9 +426,43 @@ class Handler(SimpleHTTPRequestHandler):
self.send_header("Content-Length", "0")
self.end_headers()
return
- self.path = "/index.html" if path == "/" else path
+ if path in ("/", "/index.html"):
+ return self.send_html("index.html")
+ if path == "/login.html":
+ return self.send_html("login.html")
+ self.path = path
return super().do_GET()
+ def send_html(self, name: str):
+ """Trimite o pagina, cu `` pus la servire.
+
+ De ce e nevoie: `tailscale serve --set-path /claude` TAIE prefixul, deci
+ serverul nu poate sti daca browserul e la `/claude` sau la `/claude/` —
+ ambele ajung aici ca `/`. Fara slash final, un URL relativ (`api/status`)
+ se rezolva la radacina hostului, unde proxy-ul nu mai trimite nimic
+ incoace: pagina se incarca si ramane goala, fara nicio eroare vizibila.
+ `` fixeaza rezolvarea indiferent de forma adresei.
+ """
+ try:
+ body = (_DASH / name).read_text(encoding="utf-8")
+ except OSError:
+ return self.send_error(404)
+ pfx = mount_prefix()
+ if pfx:
+ body = body.replace("
", f'\n', 1)
+ data = body.encode("utf-8")
+ self.send_response(200)
+ self.send_header("Content-Type", "text/html; charset=utf-8")
+ self.send_header("Content-Length", str(len(data)))
+ # no-store: paginile poarta acum si configuratia (base href), deci o
+ # copie veche din cache ar trimite cererile in alta parte.
+ self.send_header("Cache-Control", "no-store")
+ self.end_headers()
+ try:
+ self.wfile.write(data)
+ except (BrokenPipeError, ConnectionResetError):
+ pass
+
def route_get(self, path: str):
qs = parse_qs(urlparse(self.path).query)
if path == "/api/status":
diff --git a/proxmox/lxc171-claude-agent/discord-bridge/tests/test_dashboard.py b/proxmox/lxc171-claude-agent/discord-bridge/tests/test_dashboard.py
index e3638fb..fe7fe60 100644
--- a/proxmox/lxc171-claude-agent/discord-bridge/tests/test_dashboard.py
+++ b/proxmox/lxc171-claude-agent/discord-bridge/tests/test_dashboard.py
@@ -381,3 +381,29 @@ def test_static_servit_si_sub_prefix(server_cu_prefix):
server_cu_prefix.login()
status, data, _ = server_cu_prefix.call("/claude/static/app.css")
assert status == 200 and ".card" in data["_html"]
+
+
+def test_base_href_pus_cand_exista_prefix(server_cu_prefix):
+ """Proxy-ul taie prefixul, deci serverul nu poate sti daca browserul e la
+ `/claude` sau `/claude/`. `` face rezolvarea determinista."""
+ server_cu_prefix.login()
+ _, data, _ = server_cu_prefix.call("/")
+ assert '' in data["_html"]
+
+
+def test_base_href_si_pe_pagina_de_login(server_cu_prefix):
+ _, data, _ = server_cu_prefix.call("/login.html")
+ assert '' in data["_html"]
+
+
+def test_fara_prefix_nu_se_pune_base(server):
+ server.login()
+ _, data, _ = server.call("/")
+ assert "