docs(discord-bridge): nota despre <base href> in README-ul dashboard-ului

Completeaza e0ea850: sectiunea despre montarea sub prefix descria inca vechea
solutie (URL-uri relative + 301), nu pe cea care a rezolvat de fapt problema.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B29CApsP1JkSdjYaGaHpE7
This commit is contained in:
Claude Agent
2026-08-30 14:11:46 +00:00
parent e0ea85005d
commit e203ee021d

View File

@@ -141,13 +141,17 @@ Configuratia e persistata de `tailscaled`, deci supravietuieste repornirilor.
**Montarea sub prefix**, cele doua capcane si cum sunt rezolvate: **Montarea sub prefix**, cele doua capcane si cum sunt rezolvate:
- `tailscale serve --set-path` **taie** prefixul inainte de a proxa, deci serverul - `tailscale serve --set-path` **taie** prefixul inainte de a proxa, deci serverul
vede `/api/status`, nu `/claude/api/status`. Toate URL-urile din pagini sunt vede `/api/status`, nu `/claude/api/status`. URL-urile din pagini sunt relative,
**relative**, deci merg la orice prefix, fara sa stie de el. `DASHBOARD_PREFIX` iar `<base href="/claude/">` se pune **la servire**, din `DASHBOARD_PREFIX`.
e nevoie doar pentru redirecturi si e acceptat si intact pe intrare (`curl` Prefixul e acceptat si intact pe intrare, deci `curl` direct pe localhost cu
direct pe localhost cu `/claude/...` functioneaza). `/claude/...` functioneaza la fel.
- adresa **fara slash final** (`/claude`) ar rezolva `api/status` la radacina - adresa **fara slash final** (`/claude`) ajunge la server tot ca `/`, exact ca
hostului, unde proxy-ul nu mai trimite nimic incoace; de aceea forma fara slash `/claude/`: proxy-ul taie prefixul si nu lasa nicio urma a formei originale.
primeste un 301 catre `/claude/`. Fara `<base href>`, `api/status` s-ar rezolva atunci la radacina hostului, unde
proxy-ul nu mai trimite nimic incoace — pagina se incarca si **ramane goala,
fara nicio eroare vizibila**. Exact asta s-a intamplat la prima folosire reala.
- paginile se servesc cu `Cache-Control: no-store`: poarta de acum configuratie
(`base href`), iar o copie veche din cache ar trimite cererile in alta parte.
### Prin tunel SSH ### Prin tunel SSH
@@ -165,7 +169,7 @@ cd proxmox/lxc171-claude-agent/discord-bridge
python3 -m pytest tests/test_dashboard.py -q python3 -m pytest tests/test_dashboard.py -q
``` ```
31 de teste, fara retea si fara `systemctl` real (dublura inregistreaza apelurile). 35 de teste, fara retea si fara `systemctl` real (dublura inregistreaza apelurile).
Acopera autentificarea, faptul ca unitatea nu poate fi aleasa din cerere, blocajul pe Acopera autentificarea, faptul ca unitatea nu poate fi aleasa din cerere, blocajul pe
tur in zbor si trecerea cu `force`, traversarea de cale in `request_id`, `state.json` tur in zbor si trecerea cu `force`, traversarea de cale in `request_id`, `state.json`
corupt, montarea sub prefix (cu si fara slash final) si verificarea de regresie corupt, montarea sub prefix (cu si fara slash final) si verificarea de regresie